Análise da Vacinação contra a COVID-19 em João Pessoa

Author

Samuel Alves e Pedro Augusto

1. Introdução

A vacinação contra a COVID-19 emergiu como uma das medidas mais cruciais na luta global contra a pandemia que assolou o mundo desde o seu surgimento. A disseminação do vírus, sua rápida mutação e os impactos devastadores na saúde pública, na economia e na sociedade como um todo enfatizaram a urgência de encontrar soluções eficazes para conter sua propagação. Nesse contexto, as vacinas representam uma ferramenta fundamental para mitigar os efeitos da doença, reduzir a transmissão e proteger as populações vulneráveis.

A eficácia da vacinação contra a COVID-19 depende não apenas da disponibilidade das vacinas, mas também de uma estratégia abrangente e equitativa de distribuição e administração. Compreender os padrões de vacinação em diferentes contextos geográficos e demográficos é essencial para garantir que as campanhas de imunização atinjam seu máximo potencial e alcancem todos os segmentos da população.

Neste contexto, o presente projeto se propõe a analisar os padrões de vacinação contra a COVID-19 na cidade de João Pessoa, capital do estado da Paraíba.

2. Objetivo Geral

Analisar os padrões de vacinação por idade, sexo, bairro e doses administradas na cidade de João Pessoa. Ao investigar esses aspectos, buscamos identificar possíveis disparidades na distribuição das vacinas, avaliar a eficácia das estratégias de vacinação adotadas .

3. Metodologia

A fonte principal de dados para este projeto será o portal da transparência do município de João Pessoa. Este portal fornece acesso público a uma variedade de informações relacionadas às atividades governamentais, incluindo dados sobre a vacinação contra a COVID-19. Os dados disponíveis no portal incluem informações sobre o número de doses de vacinas administradas, informações demográficas dos vacinados (como idade, sexo e bairro de residência) e o tipo de vacina administrada.

Critérios de Seleção e Tratamento dos Dados: Antes de realizar a análise, os dados serão submetidos a um processo de seleção e tratamento para garantir sua qualidade e relevância. Os critérios de seleção incluirão a verificação da integridade dos dados, identificação de possíveis erros ou inconsistências e exclusão de registros duplicados ou incompletos.

Métodos de Análise Estatística e Visualização de Dados: A análise dos dados será realizada utilizando métodos estatísticos e técnicas de visualização de dados. Para analisar os padrões de vacinação por idade, sexo, bairro e doses administradas, serão utilizadas técnicas estatísticas descritivas, como média, mediana, moda e desvio padrão. Além disso, serão realizadas análises comparativas entre grupos demográficos para identificar possíveis disparidades na vacinação.

A visualização dos dados será realizada por meio de gráficos e tabelas, que ajudaram a apresentar de forma clara e compreensível os padrões e tendências identificados na análise. Será utilizados gráficos de barras, gráficos de dispersão, mapas de calor e outras ferramentas de visualização adequadas para representar os diferentes aspectos da vacinação em João Pessoa.

A combinação de análise estatística e visualização de dados permitirá uma compreensão abrangente dos padrões de vacinação na cidade, facilitando a identificação de áreas de melhoria e orientando a formulação de políticas de saúde pública mais eficazes e equitativas.

4. RStudio

4.1 Formatando a base de dados

4.1.1 Pacotes Utilizados

library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ ggplot2   3.4.3     ✔ tibble    3.2.1
✔ lubridate 1.9.3     ✔ tidyr     1.3.0
✔ purrr     1.0.2     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(readr)
library(dplyr)
library(forcats)
library(ggplot2)

4.1.2 Importando a base de dados

vacinajp <- read_delim("C:/Users/Samuel/Downloads/vacinajpa.csv")
Rows: 1048575 Columns: 16
── Column specification ────────────────────────────────────────────────────────
Delimiter: ";"
chr (12): Sistema de Origem, Sexo, Etnia, Data da aplicação, Vacina Aplicada...
dbl  (4): ID, Idade, Dose, CNES Local de Vacinação

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
vacinajp
# A tibble: 1,048,575 × 16
      ID `Sistema de Origem` Idade Sexo  Etnia          Dose `Data da aplicação`
   <dbl> <chr>               <dbl> <chr> <chr>         <dbl> <chr>              
 1     1 VACINA JOAO PESSOA     25 M     PARDA             3 24/01/2022         
 2     2 VACINA JOAO PESSOA     36 F     SEM INFORMAC…     3 24/01/2022         
 3     3 NOVO PNI               10 M     AMARELA           1 24/01/2022         
 4     4 VACINA JOAO PESSOA     57 M     BRANCA            3 24/01/2022         
 5     5 VACINA JOAO PESSOA     35 F     PARDA             3 24/01/2022         
 6     6 VACINA JOAO PESSOA     12 M     AMARELA           2 24/01/2022         
 7     7 VACINA JOAO PESSOA     47 M     AMARELA           3 24/01/2022         
 8     8 VACINA JOAO PESSOA     50 M     PARDA             3 24/01/2022         
 9     9 VACINA JOAO PESSOA     51 F     BRANCA            3 24/01/2022         
10    10 NOVO PNI               11 F     AMARELA           1 24/01/2022         
# ℹ 1,048,565 more rows
# ℹ 9 more variables: `Vacina Aplicada` <chr>, `Grupo Prioritário` <chr>,
#   Subgrupo <chr>, `Lote da Vacina` <chr>, Bairro <chr>, Cidade <chr>,
#   UF <chr>, `Local de Vacinação` <chr>, `CNES Local de Vacinação` <dbl>

4.1.3 Remover linhas com variáveis vazias

vacinajp[vacinajp == "SEM INFORMACAO"] <- NA
vacinajpa <- vacinajp %>% drop_na()

4.1.4 Visão Geral

glimpse(vacinajpa)
Rows: 844,981
Columns: 16
$ ID                        <dbl> 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, …
$ `Sistema de Origem`       <chr> "VACINA JOAO PESSOA", "NOVO PNI", "VACINA JO…
$ Idade                     <dbl> 25, 10, 57, 35, 12, 47, 50, 51, 11, 51, 21, …
$ Sexo                      <chr> "M", "M", "M", "F", "M", "M", "M", "F", "F",…
$ Etnia                     <chr> "PARDA", "AMARELA", "BRANCA", "PARDA", "AMAR…
$ Dose                      <dbl> 3, 1, 3, 3, 2, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3,…
$ `Data da aplicação`       <chr> "24/01/2022", "24/01/2022", "24/01/2022", "2…
$ `Vacina Aplicada`         <chr> "PFIZER", "PFIZER", "PFIZER", "PFIZER", "PFI…
$ `Grupo Prioritário`       <chr> "FAIXA ETARIA", "FAIXA ETARIA", "FAIXA ETARI…
$ Subgrupo                  <chr> "PESSOAS DE 18 A 64 ANOS", "PESSOAS DE 5 A 1…
$ `Lote da Vacina`          <chr> "FL4222", "FP1176", "FM3457", "Fl5729", "FL5…
$ Bairro                    <chr> "VARJAO", "MANGII", "ROGER", "ERNANI SATIRO"…
$ Cidade                    <chr> "JOAO PESSOA", "JOAO PESSOA", "JOAO PESSOA",…
$ UF                        <chr> "PB", "PB", "PB", "PB", "PB", "PB", "PB", "P…
$ `Local de Vacinação`      <chr> "CARTAO SUS DE JOAO PESSOA", "REDE FRIO CENT…
$ `CNES Local de Vacinação` <dbl> 7979436, 287660, 7979436, 7979436, 7979436, …

4.1.5 Classes das variáveis

O local de vacinação recebe a classe de caractere

local <- (vacinajpa$`Local de Vacinação`)
class(local)
[1] "character"

Enquanto a variável idade recebe a classe numérica.

idade <- (vacinajpa$Idade)
class(idade)
[1] "numeric"
summary(idade)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   2.00   23.00   37.00   38.31   51.00  120.00 
length(idade)
[1] 844981

4.2 Análise da base de dados

4.2.1 Especificação de caso

Os dados obtidos abaixo são para uma análise mais objetiva.

Mulheres vacinadas

vacinaMulher <- subset(vacinajpa, Sexo == "F")
vacinaMulher
# A tibble: 468,579 × 16
      ID `Sistema de Origem` Idade Sexo  Etnia    Dose `Data da aplicação`
   <dbl> <chr>               <dbl> <chr> <chr>   <dbl> <chr>              
 1     5 VACINA JOAO PESSOA     35 F     PARDA       3 24/01/2022         
 2     9 VACINA JOAO PESSOA     51 F     BRANCA      3 24/01/2022         
 3    10 NOVO PNI               11 F     AMARELA     1 24/01/2022         
 4    11 VACINA JOAO PESSOA     51 F     PARDA       3 24/01/2022         
 5    12 VACINA JOAO PESSOA     21 F     PARDA       3 24/01/2022         
 6    14 VACINA JOAO PESSOA     52 F     BRANCA      3 24/01/2022         
 7    15 NOVO PNI               19 F     AMARELA     3 24/01/2022         
 8    17 VACINA JOAO PESSOA     31 F     AMARELA     3 24/01/2022         
 9    18 VACINA JOAO PESSOA     56 F     BRANCA      3 24/01/2022         
10    19 VACINA JOAO PESSOA     56 F     BRANCA      3 24/01/2022         
# ℹ 468,569 more rows
# ℹ 9 more variables: `Vacina Aplicada` <chr>, `Grupo Prioritário` <chr>,
#   Subgrupo <chr>, `Lote da Vacina` <chr>, Bairro <chr>, Cidade <chr>,
#   UF <chr>, `Local de Vacinação` <chr>, `CNES Local de Vacinação` <dbl>

Mulheres vacinas com idade maior que 50 anos

vacinaM50anos <- subset(vacinaMulher, Idade > 50)
vacinaM50anos
# A tibble: 132,473 × 16
      ID `Sistema de Origem` Idade Sexo  Etnia    Dose `Data da aplicação`
   <dbl> <chr>               <dbl> <chr> <chr>   <dbl> <chr>              
 1     9 VACINA JOAO PESSOA     51 F     BRANCA      3 24/01/2022         
 2    11 VACINA JOAO PESSOA     51 F     PARDA       3 24/01/2022         
 3    14 VACINA JOAO PESSOA     52 F     BRANCA      3 24/01/2022         
 4    18 VACINA JOAO PESSOA     56 F     BRANCA      3 24/01/2022         
 5    19 VACINA JOAO PESSOA     56 F     BRANCA      3 24/01/2022         
 6    24 VACINA JOAO PESSOA     56 F     AMARELA     3 24/01/2022         
 7    35 VACINA JOAO PESSOA     56 F     AMARELA     3 24/01/2022         
 8    54 VACINA JOAO PESSOA     54 F     PARDA       3 24/01/2022         
 9    57 VACINA JOAO PESSOA     60 F     PARDA       3 24/01/2022         
10    65 VACINA JOAO PESSOA     67 F     PARDA       3 24/01/2022         
# ℹ 132,463 more rows
# ℹ 9 more variables: `Vacina Aplicada` <chr>, `Grupo Prioritário` <chr>,
#   Subgrupo <chr>, `Lote da Vacina` <chr>, Bairro <chr>, Cidade <chr>,
#   UF <chr>, `Local de Vacinação` <chr>, `CNES Local de Vacinação` <dbl>

Mulheres vacinas com idade maior que 50 anos que auto se declaram pardas

vacinaM50Pardas <- subset(vacinaM50anos, Etnia == "PARDA")
vacinaM50Pardas
# A tibble: 69,099 × 16
      ID `Sistema de Origem` Idade Sexo  Etnia  Dose `Data da aplicação`
   <dbl> <chr>               <dbl> <chr> <chr> <dbl> <chr>              
 1    11 VACINA JOAO PESSOA     51 F     PARDA     3 24/01/2022         
 2    54 VACINA JOAO PESSOA     54 F     PARDA     3 24/01/2022         
 3    57 VACINA JOAO PESSOA     60 F     PARDA     3 24/01/2022         
 4    65 VACINA JOAO PESSOA     67 F     PARDA     3 24/01/2022         
 5    87 VACINA JOAO PESSOA     54 F     PARDA     3 24/01/2022         
 6   172 VACINA JOAO PESSOA     58 F     PARDA     3 24/01/2022         
 7   199 VACINA JOAO PESSOA     57 F     PARDA     3 24/01/2022         
 8   204 VACINA JOAO PESSOA     52 F     PARDA     3 24/01/2022         
 9   216 VACINA JOAO PESSOA     57 F     PARDA     3 24/01/2022         
10   219 VACINA JOAO PESSOA     54 F     PARDA     3 24/01/2022         
# ℹ 69,089 more rows
# ℹ 9 more variables: `Vacina Aplicada` <chr>, `Grupo Prioritário` <chr>,
#   Subgrupo <chr>, `Lote da Vacina` <chr>, Bairro <chr>, Cidade <chr>,
#   UF <chr>, `Local de Vacinação` <chr>, `CNES Local de Vacinação` <dbl>

Gestantes

vacinajpa |> select(
  Idade, Subgrupo, `Vacina Aplicada`
  ) |> filter(
    Subgrupo == "GESTANTE", `Vacina Aplicada` == "PFIZER") 
# A tibble: 4,765 × 3
   Idade Subgrupo `Vacina Aplicada`
   <dbl> <chr>    <chr>            
 1    35 GESTANTE PFIZER           
 2    33 GESTANTE PFIZER           
 3    40 GESTANTE PFIZER           
 4    25 GESTANTE PFIZER           
 5    25 GESTANTE PFIZER           
 6    31 GESTANTE PFIZER           
 7    43 GESTANTE PFIZER           
 8    30 GESTANTE PFIZER           
 9    35 GESTANTE PFIZER           
10    28 GESTANTE PFIZER           
# ℹ 4,755 more rows
Local de vacinação
vacinajpa |> select(
  Idade, Subgrupo, Bairro
  ) |> filter(Bairro == "VALENTINA") 
# A tibble: 3,505 × 3
   Idade Subgrupo                                                         Bairro
   <dbl> <chr>                                                            <chr> 
 1    12 PESSOAS DE 12 A 17 ANOS                                          VALEN…
 2     7 PESSOAS DE 5 A 11 ANOS                                           VALEN…
 3    18 PESSOAS DE 18 A 64 ANOS                                          VALEN…
 4    18 PESSOAS DE 18 A 64 ANOS                                          VALEN…
 5    11 PESSOAS DE 5 A 11 ANOS                                           VALEN…
 6    85 PESSOAS DE 80 ANOS OU MAIS                                       VALEN…
 7    16 PESSOAS DE 12 A 17 ANOS                                          VALEN…
 8    50 HIPERTENSAO DE DIFICIL CONTROLE OU COM COMPLICACOES/LESAO DE OR… VALEN…
 9    12 PESSOAS DE 12 A 17 ANOS                                          VALEN…
10    62 PESSOAS DE 18 A 64 ANOS                                          VALEN…
# ℹ 3,495 more rows

Pessoas entre 5 e 11 anos

vacinajpa |> select(
  Idade, Subgrupo, `Vacina Aplicada`
  ) |> filter(Subgrupo == "PESSOAS DE 5 A 11 ANOS", Idade < 8) 
# A tibble: 21,020 × 3
   Idade Subgrupo               `Vacina Aplicada`
   <dbl> <chr>                  <chr>            
 1     5 PESSOAS DE 5 A 11 ANOS PFIZER           
 2     7 PESSOAS DE 5 A 11 ANOS PFIZER           
 3     6 PESSOAS DE 5 A 11 ANOS PFIZER           
 4     6 PESSOAS DE 5 A 11 ANOS PFIZER           
 5     7 PESSOAS DE 5 A 11 ANOS PFIZER           
 6     7 PESSOAS DE 5 A 11 ANOS PFIZER           
 7     7 PESSOAS DE 5 A 11 ANOS PFIZER           
 8     7 PESSOAS DE 5 A 11 ANOS PFIZER           
 9     7 PESSOAS DE 5 A 11 ANOS PFIZER           
10     7 PESSOAS DE 5 A 11 ANOS PFIZER           
# ℹ 21,010 more rows

4.2 Análise gráfica

4.2.1 Contagem de vacinas por idade

contagem_vacinasIdd <- count(vacinajp, Idade, `Vacina Aplicada`)

ggplot(data = contagem_vacinasIdd, aes(x = Idade, y = n, fill = `Vacina Aplicada`)) +
  geom_col(position = "dodge") +
  labs(x = "Idade", y = "Contagem", fill = "Vacina Aplicada", 
       title = "Contagem de Vacinas Aplicadas por Idade") +
  theme_minimal()

O gráfico demonstra a distribuição da vacinação por faixa etária na cidade. Observa-se uma alta concentração de vacinas aplicadas nas faixas etárias mais jovens, especialmente entre 0 e 30 anos. As vacinas Pfizer e Coronavac são as mais utilizadas nesses grupos etários mais jovens.

4.2.2 Contagem de vacinas aplicadas por sexo e tipo de vacina

contagem_vacinasVS <- vacinajp %>%
  count(Sexo, `Vacina Aplicada`)

ggplot(data = contagem_vacinasVS, aes(x = Sexo, y = n, fill = `Vacina Aplicada`)) +
  geom_col(position = "dodge") +
  labs(x = "Sexo", y = "Contagem", fill = "Tipo de Vacina", 
       title = "Contagem de Vacinas Aplicadas por Sexo e Tipo de Vacina") +
  theme_minimal()

Podemos observar que ambos os sexos demonstram uma distribuição semelhante na recepção das vacinas, com uma predominância das vacinas Pfizer e Astrazeneca. A vacina AstraZeneca também é utilizada, embora em menor proporção em comparação com as outras duas.

4.2.3 Contagem de vacinas por bairro e tipo de vacina

#Mangabeira

contagem_bairrosMang <- vacinajp %>%
  filter(Bairro == "MANGABEIRA") %>%
  count(`Vacina Aplicada`)

ggplot(data = contagem_bairrosMang, aes(x = `Vacina Aplicada`, y = n, fill = `Vacina Aplicada`)) +
  geom_bar(stat = "identity") + 
  labs(x = "Tipo de Vacina Aplicada", y = "Contagem", fill = "Tipo de Vacina Aplicada", 
       title = "Contagem de Vacinações por Tipo de Vacina (Bairro: MANGABEIRA)") +
  theme_minimal() 

#Manaíra

contagem_bairrosMan <- vacinajp %>%
  filter(Bairro == "MANAIRA") %>%
  count(`Vacina Aplicada`)

ggplot(data = contagem_bairrosMan, aes(x = `Vacina Aplicada`, y = n, fill = `Vacina Aplicada`)) +
  geom_bar(stat = "identity") + 
  labs(x = "Tipo de Vacina Aplicada", y = "Contagem",
       title = "Contagem de Vacinações por Tipo de Vacina (Bairro: MANAÍRA)") +
  theme_minimal()

Esse gráfico apresenta a distribuição da vacinação em dois bairros específicos: Mangabeira e Manaíra Ambos os bairros demonstram uma alta taxa de vacinação, com a Pfizer sendo a vacina predominante.

4.2.4 Contagem de vacinação por dose

contagem_doses <- vacinajp %>%
  group_by(Dose, `Vacina Aplicada`) %>%
  summarise(Contagem = n()) %>%
  ungroup()
`summarise()` has grouped output by 'Dose'. You can override using the
`.groups` argument.
ggplot(data = contagem_doses, aes(x = Dose, y = Contagem, fill = `Vacina Aplicada`)) +
  geom_bar(stat = "identity") +
  labs(x = "Dose", y = "Contagem", fill = "Vacina Aplicada", 
       title = "Contagem de Vacinações por Dose e Tipo de Vacina") +
  theme_minimal()

Este gráfico mostra a contagem de vacinação por dose administrada na população de João Pessoa. A maioria da população recebeu três doses, sugerindo a conclusão do esquema vacinal padrão.

vacinajp |> select(
  Dose, Subgrupo,
  ) |> filter(Dose == 7)
# A tibble: 2,643 × 2
    Dose Subgrupo                  
   <dbl> <chr>                     
 1     7 PESSOAS DE 80 ANOS OU MAIS
 2     7 PESSOAS DE 80 ANOS OU MAIS
 3     7 PESSOAS DE 65 A 69 ANOS   
 4     7 PESSOAS DE 80 ANOS OU MAIS
 5     7 PESSOAS DE 80 ANOS OU MAIS
 6     7 PESSOAS DE 80 ANOS OU MAIS
 7     7 PESSOAS DE 80 ANOS OU MAIS
 8     7 PESSOAS DE 80 ANOS OU MAIS
 9     7 PESSOAS DE 80 ANOS OU MAIS
10     7 PESSOAS DE 18 A 64 ANOS   
# ℹ 2,633 more rows

Uma pequena parcela da população, incluindo pessoas com comorbidades e grupos prioritários, recebeu até sete doses (consideradas doses de reforço), com intervalos de 6 meses a 1 ano entre cada dose. Discussão dos Padrões Observados e Suas Implicações na Estratégia de Vacinação.

Os padrões observados na vacinação contra a COVID-19 em João Pessoa destacam a eficácia das campanhas de imunização, especialmente entre os grupos mais jovens e nos bairros selecionados para análise. A predominância das vacinas Pfizer e Coronavac reflete a disponibilidade e distribuição dessas vacinas na cidade. No entanto, é importante notar a necessidade de garantir uma distribuição equitativa das vacinas em todos os grupos demográficos e áreas geográficas, especialmente considerando as disparidades socioeconômicas e de acesso aos serviços de saúde.

A alta proporção de indivíduos que receberam três doses sugere uma boa adesão ao esquema vacinal completo. No entanto, a administração de doses de reforço para grupos prioritários demonstra um esforço contínuo para garantir a proteção adequada contra a doença, especialmente em meio a preocupações sobre a eficácia das vacinas ao longo do tempo e contra novas variantes do vírus.

5. Conclusão

Observou-se uma alta concentração de vacinas aplicadas em faixas etárias mais jovens, com as vacinas Pfizer e Coronavac sendo as mais utilizadas.

Não houve disparidades significativas na distribuição de vacinas entre os sexos, com ambos demonstrando uma preferência pelas vacinas Pfizer e Coronavac.

Os bairros selecionados para análise, Mangabeira e Manaíra, apresentaram uma alta taxa de vacinação, com a vacina Pfizer predominante.

A maioria da população recebeu três doses, indicando a conclusão do esquema vacinal padrão, enquanto uma pequena parcela recebeu doses de reforço.

Os resultados sugerem que a campanha de vacinação em João Pessoa tem sido eficaz em alcançar uma ampla parte da população, especialmente os grupos mais jovens. No entanto, é importante garantir uma distribuição equitativa das vacinas em todos os grupos demográficos e áreas geográficas, a fim de promover a equidade no acesso à imunização. A identificação de áreas com menor cobertura vacinal pode orientar a alocação de recursos e esforços adicionais para aumentar a adesão à vacinação nessas regiões.