Pirâmide etária da vacinação

A vacinação tem avançado de forma acelerada no país. Em muitos regiões, já estamos vacinando as pessoas na casa dos 30 anos. Apesar disso, ainda deve levar algum tempo até uma parcela considerável da população estar plenamente imunizada.

Inspirado em um tweet que vi a algum tempo, resolvi replicar essa visualização bastante interessante, que mostra a quantidade de vacinados em relação à população por meio de uma pirâmide etária.

Como os microdados da vacinação para todo o país geram um arquivo muito grande, optei por selecionar apenas dos dados do Paraná. Os dados de vacinação estão disponíveis aqui. Seguindo o código abaixo, é possível construir o mesmo gráfico para qualquer um dos estados.


library(tidyverse)
library(sidrar)

dados = read.csv2("vacina_PR.csv")

Os dados de população serão obtidos por meio da PNAD contínua anual de 2019, com o pacote *sidrar*. Para o gráfico ficar no formato de pirâmide, iremos alterar o valor das mulheres para ser negativo.

piramide = get_sidra(6706, 
variable = 606, 
geo = "State",
geo.filter = list("State" = 41)) %>%
filter(Sexo != "Total") %>%
mutate(`Grupo de idade` = ifelse(`Grupo de idade` == "5 a 9 anos",
"05 a 9 anos",
`Grupo de idade`),
Valor = ifelse(Sexo == "Mulheres",-Valor, Valor))

 

Primeiramente, iremos selecionar apenas as primeiras doses. A mesma visualização pode ser feita para a segunda dose, alterando essa linha. Como os dados de população estão disponíveis por faixas de renda, iremos colocar os dados de vacinação nestas faixas. Assim, agrupamos por faixa de idade e gênero para contar as pessoas. Da mesma forma que fizemos para a população, também iremos tornar a quantidade de mulheres negativa.


dados_g = dados %>%
filter(str_replace_all(vacina_descricao_dose, "[^[:alnum:]]", " ") == "1ª Dose") %>%
mutate(`Grupo de idade` = case_when(paciente_idade < 5 ~ "0 a 4 anos",
paciente_idade > 4 & paciente_idade < 10 ~ "05 a 9 anos",
paciente_idade > 9 & paciente_idade < 15 ~ "10 a 14 anos",
paciente_idade > 14 & paciente_idade < 20 ~ "15 a 19 anos",
paciente_idade > 19 & paciente_idade < 25 ~ "20 a 24 anos",
paciente_idade > 24 & paciente_idade < 30 ~ "25 a 29 anos",
paciente_idade > 29 & paciente_idade < 35 ~ "30 a 34 anos",
paciente_idade > 34 & paciente_idade < 40 ~ "35 a 39 anos",
paciente_idade > 39 & paciente_idade < 45 ~ "40 a 44 anos",
paciente_idade > 44 & paciente_idade < 50 ~ "45 a 49 anos",
paciente_idade > 49 & paciente_idade < 55 ~ "50 a 54 anos",
paciente_idade > 54 & paciente_idade < 60 ~ "55 a 59 anos",
paciente_idade > 59 & paciente_idade < 65 ~ "60 a 64 anos",
paciente_idade > 64 & paciente_idade < 70 ~ "65 a 69 anos",
paciente_idade > 69 & paciente_idade < 75 ~ "70 a 74 anos",
paciente_idade > 74 & paciente_idade < 80 ~ "75 a 79 anos",
paciente_idade > 79 ~ "80 anos ou mais")) %>%
group_by(`Grupo de idade`, paciente_enumsexobiologico) %>%
tally() %>%
filter(paciente_enumsexobiologico %in% c("M", "F")) %>%
mutate(n = ifelse(paciente_enumsexobiologico == "F", -n, n),
paciente_enumsexobiologico = ifelse(paciente_enumsexobiologico == "F",
"Mulheres",
"Homens"))

Assim, basta fazer o gráfico de pirâmide etária com dois "geom_bar". O primeiro é o de população, que fica no fundo. Já o segundo é o de dados da vacinação.

ggplot() +
geom_bar(data=piramide, 
aes(y=Valor*1000, x = `Grupo de idade`, fill = Sexo), 
stat="identity", alpha = 0.4, width=1) +
geom_bar(data=dados_g, 
aes(y=n, x = `Grupo de idade`, fill = paciente_enumsexobiologico),
stat="identity", width=1) +
scale_fill_manual(values = c("#c23c3c", "#276f9c", "#276f9c", "#c23c3c")) +
coord_flip() +
theme_classic() +
ggtitle("Pirâmide etária de vacinados com a primeira dose no Paraná",
subtitle="Com dados do dia 14/07/2021") +
scale_y_continuous(labels = abs) +
ylab("Número de pessoas") 

 

________________________
(*) Para entender mais sobre a linguagem R e como analisar dados, confira nosso Curso de Introdução ao R para análise de dados.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como usar LangGraph e LLMs para prever a inflação no Brasil

Este post apresenta um estudo de caso sobre como utilizar o LangGraph e modelos de linguagem para estruturar um sistema multiagente voltado à previsão do IPCA. O exercício cria um sistema que utiliza-se de personas analíticas que trabalham em paralelo, permitindo validar previsões, calcular métricas de erro e consolidar relatórios automatizados. A abordagem demonstra como fluxos multiagentes podem apoiar a análise econômica, oferecendo múltiplas perspectivas e maior consistência nos resultados.

O que é GraphRAG e implementar usando LangChain

GraphRAG é uma técnica de recuperação de informação para LLMs que utiliza grafos de conhecimento para conectar entidades e relações, permitindo estruturar informações complexas presentes em textos. Neste exercício, mostramos como transformar as atas do Copom em um grafo capaz de compreender essas entidades e relações, respondendo a perguntas complexas de forma contextualizada. Com Python e LangChain, todo o processo se torna automatizado, simples e altamente explorável.

Shiny + Agentes de IA: como criar aplicativos web inteligentes

A combinação de interfaces de usuário interativas com o poder dos grandes modelos de linguagem (LLMs) está abrindo um universo de possibilidades. Imagine criar um aplicativo web que não apenas exibe dados, mas também conversa com o usuário, respondendo a perguntas complexas com base em uma base de conhecimento específica. Usando Shiny para Python e ferramentas de IA como as do Google, isso é mais acessível do que nunca.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.