Desde o início da pandemia de COVID-19, a vacinação emergiu como uma ferramenta crucial para conter a propagação do vírus e reduzir a mortalidade. No entanto, o progresso da vacinação não ocorreu de forma uniforme ao longo do tempo ou entre diferentes grupos da população. Este relatório examina a evolução da campanha de vacinação na cidade do Recife durante diferentes fases da pandemia, explorando como a chegada de novas variantes, mudanças nas políticas públicas e crises de saúde impactaram as taxas de vacinação.
Além disso, foi investigado se houve desigualdades significativas na cobertura vacinal entre diferentes grupos raciais e de gênero ao longo do tempo, e como essas disparidades se manifestaram em resposta às dinâmicas da pandemia. Essa análise pode ajudar os formuladores de políticas públicas e profissionais de saúde a entender melhor os padrões de vacinação e as barreiras enfrentadas por certos grupos, permitindo intervenções mais direcionadas e eficazes em campanhas futuras. Além disso, ela pode servir como base para discussões mais amplas sobre como melhorar a equidade na saúde em tempos de crise.
A análise utiliza um conjunto de microdados dos perfis de pessoas vacinadas do Recife de todo o ano de 2021, que inclui informações sobre idade, sexo, raça/cor, fabricante da vacina, dose, e data de vacinação. Utilizando gráficos temporais e análises segmentadas, o relatório busca fornecer uma visão abrangente de como a vacinação avançou na cidade, enquanto destaca desigualdades que podem ter influenciado o acesso à vacina e a confiança na vacinação.
Foram usados os seguintes pacotes para executar o código:
| Nome | Uso |
|---|---|
| rmdformats | Poder usar o template para RMarkdown |
| DT | Criar tabelas interativas |
| knitr | Exibir o relatório em formato HTML |
| dplyr | Manipular e filtrar os dados |
| tidyr | Manipulação de tabelas |
| stringr | Manipulação de strings |
| ggplot2 | Visualizar os gráficos |
| lubridate | Facilitar o trabalho de manipular dados relacionados ao tempo |
O dataset com microdados dos perfis de vacinados contra a COVID-19 foi disponibilizado de forma pública em .csv pela prefeitura do Recife a partir dos dados da Secretaria de Saúde para promover o desenvolvimento de aplicações e/ou análise de dados.
A importação dos dados foi feita na seguinte linha de código:
dados <- read.csv("http://dados.recife.pe.gov.br/dataset/7ccb3816-0d62-49e1-b39a-3159870883b0/resource/bceb5759-5500-49db-bc86-b038892acc06/download/vacinados.csv", sep=";", stringsAsFactors = FALSE)Abaixo está o dicionário de dados desse conjunto:
| Nome | Tipo |
|---|---|
| faixa_etaria | text |
| idade | text |
| sexo | text |
| raca_cor | text |
| municipio | text |
| grupo | text |
| categoria | text |
| lote | text |
| vacina_fabricante | text |
| descricao_dose | text |
| cnes | text |
| sistema_origem | text |
| data_vacinacao | timestamp |
Antes de começar a análise desses dados, é preciso uma limpeza para remover informações irrelevantes, incorretas e/ou trocadas. Inicialmente o dataset possui 378250 registros.
datatable(head(dados, 25), options = list(pageLength = 5), caption = 'Amostra de dados importados antes da limpeza')Para essa limpeza, optei por remover as colunas
sistema_origem, cnes, lote e
categoria. O sistema_origem não me seria útil
por praticamente todas as entradas terem o mesmo valor, com exceção de
campos vazios; o cnes por conter informações específicas de
códigos do cadastro nacional de estabelecimento de saúde, que não seriam
relevantes para esse estudo; o lote por indicar informações
dos lotes específicos de vacinas, que poderiam ser relevantes em uma
análise de eficácia ou eventos adversos por lote, mas que não vai ser
abordado aqui; e por fim, a coluna categoria que iria ser
usada por ter informações relevantes, mas que ao ver nela uma variação
baixa de dados e a imensa maioria deles estar marcada como
OUTROS ou vazia, optei por removê-la.
#Remoção das colunas cnes, sistema_origem, lote, categoria
dados_limpos <- dados %>%
select(-c(cnes, sistema_origem, lote, categoria))
#Remoção de NAs e strings vazias
dados_limpos <- dados_limpos%>%
filter(across(everything(), ~ !is.na(.) & . != ""))Além disso, removi registros incorretos ou vazios, corrigi os valores
da coluna raca_cor de “ÍNDIGENAS” para
“INDÍGENAS”, alterei os dados que possuíam a
vacina_fabricante sendo da Janssen (Johnson & Johnson)
como sendo “DOSE ÚNICA”, e agrupei grupos relacionados
na coluna grupos, como os de trabalhadores essenciais, o de
crianças, público geral e grupos menores ou menos significativos foram
colocados em “OUTRAS PRIORIDADES”.
#Correção da coluna raca_cor
dados_limpos <- dados_limpos %>%
mutate(raca_cor = str_replace(raca_cor, 'ÍNDIGENAS', 'INDÍGENAS'))
# Atualizar os registros da Janssen em 'descricao_dose' para "dose única"
dados_limpos <- dados_limpos %>%
mutate(descricao_dose = ifelse(vacina_fabricante == "4 - JANSSEN COVID-19 VACCINE (JOHNSON & JOHNSON)", "DOSE ÚNICA", descricao_dose))
# Agrupar grupos semelhantes e categorizar o restante em 'Outras Prioridades'
dados_limpos <- dados_limpos %>%
mutate(grupo = case_when(
grupo %in% c("TRABALHADORES DA EDUCAÇÃO", "TRABALHADORES DA SAÚDE",
"TRABALHADORES DE TRANSPORTE COLETIVO RODOVIÁRIO",
"TRABALHADORES INDUSTRIAIS E BANCÁRIOS", "TRABALHADORES DE TRANSPORTE AÉREO",
"TRABALHADORES DA LIMPEZA URBANA", "TRABALHADORES PORTUÁRIOS",
"TRABALHADORES DE TRANSPORTE METROVIÁRIO E FERROVIÁRIO",
"TRABALHADORES DA ASSISTÊNCIA SOCIAL", "TRABALHADORES DE TRANSPORTE AQUAVIÁRIO",
"CAMINHONEIROS") ~ "TRABALHADORES ESSENCIAIS",
grupo %in% c("PÚBLICO EM GERAL (18 a 59 anos)", "PÚBLICO EM GERAL - MENOR DE 18 ANOS") ~ "PÚBLICO EM GERAL",
grupo %in% c("GESTANTES E PUÉRPERAS", "GESTANTES E PUÉRPERAS NÃO RESIDENTES EM RECIFE", "GESTANTES E PUÉRPERAS - 12 A 17 ANOS") ~ "GESTANTES E PUÉRPERAS",
grupo %in% c("CRIANÇAS DE 05 A 11 ANOS", "CRIANÇAS DE 05 A 11 ANOS - Prioritárias",
"CRIANÇAS DE 05 A 11 ANOS - Síndrome de Down") ~ "CRIANÇAS",
grupo %in% c("PESSOAS COM COMORBIDADES", "PESSOAS COM COMORBIDADES - 12 A 17 ANOS",
"PESSOAS COM DEFICIÊNCIA - 12 A 17 ANOS") ~ "COMORBIDADES/DEFICIÊNCIA",
grupo == "IDOSOS" ~ "IDOSOS",
TRUE ~ "OUTRAS PRIORIDADES" # Resto dos grupos
))Abaixo está uma visualização inicial para as vacinações durante o tempo
dados_limpos$data_vacinacao <- as.Date(ymd_hms(dados_limpos$data_vacinacao))
ggplot(dados_limpos, aes(x = data_vacinacao)) +
geom_line(stat = "count", color = "blue") +
labs(title = "Evolução da Vacinação ao Longo de 2021",
x = "Data de Vacinação", y = "Número de Pessoas Vacinadas") +
scale_x_date(date_labels = "%b", date_breaks = "1 month")Os valores baixos no início do ano correspondem ao início das campanhas de vacinação do Recife, em que estava mais restrita aos grupos prioritários, como idosos, e que foi aumentando e teve um pico em agosto quando as políticas públicas, campanhas de vacinação e demanda da população estavam em alta. Por fim, baixando ao final do ano a medida em que a população já estava vacinada.
Aqui é possivel ver as ondas de vacinação em diferentes categorias de doses (primeira, segunda, terceira dose e dose única) que ocorreram durante o ano. As ondas aconteceram por questões de disponibilidade, novas variantes e novos chamados da prefeitura para a população.
ggplot(dados_limpos, aes(x = data_vacinacao, fill = descricao_dose)) +
geom_histogram(binwidth = 7, position = "stack", color = "black") +
labs(title = "Vacinação em 2021 por Dose",
x = "Data de Vacinação", y = "Número de Pessoas Vacinadas",
fill = "Dose") +
scale_x_date(date_labels = "%b", date_breaks = "1 month") +
theme_minimal()Aqui vemos que o gráfico mostra a progressão da vacinação entre os grupos. Trabalhadores essenciais, pessoas com comorbidades ou deficiências e idosos tiveram prioridade nos primeiros lotes de vacina, refletindo as políticas de priorização de vacinação. Ambos os grupos se mantiveram com prioridade, e os picos desses grupos se sobrepõem com os meses que houveram uma aplicação de novas doses de reforço da vacina.
dados_grupo_agrupado <- dados_limpos %>%
group_by(data_vacinacao, grupo) %>%
summarise(total_vacinados = n(), .groups = 'drop')
ggplot(dados_grupo_agrupado, aes(x = data_vacinacao, y = total_vacinados, color = grupo)) +
geom_line() +
labs(title = "Evolução da Vacinação por Grupos Prioritários ao Longo do Tempo",
x = "Data de Vacinação",
y = "Número de Vacinas Aplicadas",
color = "Grupo Prioritário") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))É visível que a cidade do Recife teve preferência para as vacinas da Pfizer e Astrazeneca. Também dá para ver que, por conta da Janssen ser uma única dose, ela não foi significativa neste gráfico, que conta com diferentes doses da mesma fabricante.
# Ajustar a coluna descricao_dose para Janssen
dados_limpos <- dados_limpos %>%
mutate(descricao_dose = ifelse(vacina_fabricante == "4 - JANSSEN COVID-19 VACCINE (JOHNSON & JOHNSON)", "Dose Única", descricao_dose))
# Criar o mapeamento de nomes das fabricantes, pois o nome do jeito que estão no dataset não cabem no gráfico
dados_limpos <- dados_limpos %>%
mutate(vacina_fabricante = case_when(
vacina_fabricante %in% c("1 - CORONAVAC - SINOVAC (BUTANTAN)", "6 - CORONAVAC - SINOVAC (BUTANTAN) PEDIÁTRICA") ~ "SINOVAC (BUTANTAN)",
vacina_fabricante %in% c("3 - COMIRNATY (PFIZER)", "5 - COMIRNATY (PFIZER) - PEDIÁTRICA") ~ "COMIRNATY (PFIZER)",
vacina_fabricante == "2 - CHADOX1NCOV-19 - OXFORD/ASTRAZENECA (FIOCRUZ)" ~ "OXFORD/ASTRAZENECA (FIOCRUZ)",
vacina_fabricante == "4 - JANSSEN COVID-19 VACCINE (JOHNSON & JOHNSON)" ~ "JANSSEN",
TRUE ~ vacina_fabricante
))
# Contagem de doses por fabricante e tipo de dose
dados_doses_fabricantes <- dados_limpos %>%
group_by(vacina_fabricante, descricao_dose) %>%
summarise(total_doses = n(), .groups = 'drop')
# Criar o gráfico de barras para comparar doses administradas por fabricante
ggplot(dados_doses_fabricantes, aes(x = vacina_fabricante, y = total_doses, fill = descricao_dose)) +
geom_bar(stat = "identity", position = "stack") +
labs(title = "Comparação das Doses Administradas por Fabricante",
x = "Fabricante da Vacina",
y = "Número de Doses Administradas",
fill = "Tipo de Dose") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))Esse relatório analisou a evolução da vacinação contra a COVID-19 em Recife, considerando tanto o avanço temporal da vacinação quanto as diferenças entre fabricantes e doses. A análise temporal revelou que a vacinação progrediu significativamente ao longo de 2021, com picos associados a novas fases da campanha de vacinação e à introdução de novas vacinas. Observou-se um aumento na cobertura vacinal em períodos críticos, como a chegada de novas variantes e campanhas de vacinação intensificadas. Recomenda-se que futuras campanhas de vacinação melhore o acesso a grupos que tiveram menor cobertura.