Atividade realizada nas instalações do Laboratório Hacker de Campinas, sob a organização do Base dos Dados

Carregar pacotes

#Pacotes necessários
pacman::p_load(
  janitor,
  tidyverse,
  gt,
  gtsummary,
  patchwork,
  sjPlot,
  scales,
  gridExtra,
  basedosdados) # pacote da Base dos dados para importar dados

Importar banco de dados (variáveis de interesse)

set_billing_id("enduring-hue-416714") # Identificador del proyecto en SQL

query <- "SELECT 
 dict_raca_cor.valor as raca_cor,
 idade_mae,
 dict_classificacao_pre_natal.valor as classific,
 peso,
 quantidade_filhos_vivos,
 dict_escolaridade_mae.valor as escolaridade_mae,
 dict_estado_civil_mae.valor as estado_civil_mae
FROM `basedosdados.br_ms_sinasc.microdados` as dados
LEFT JOIN `basedosdados.br_ms_sinasc.dicionario` as dict_raca_cor 
ON dict_raca_cor.chave = dados.raca_cor
LEFT JOIN `basedosdados.br_ms_sinasc.dicionario` as dict_escolaridade_mae 
ON dict_escolaridade_mae.chave = dados.escolaridade_mae
LEFT JOIN `basedosdados.br_ms_sinasc.dicionario` as dict_estado_civil_mae 
ON dict_estado_civil_mae.chave = dados.estado_civil_mae
LEFT JOIN `basedosdados.br_ms_sinasc.dicionario` as dict_classificacao_pre_natal
ON dict_classificacao_pre_natal.chave = dados.classificacao_pre_natal
WHERE ano = 2023
AND id_municipio_nascimento = '3509502'
AND dict_raca_cor.coluna = 'raca_cor'
AND dict_classificacao_pre_natal.coluna = 'classificacao_pre_natal'
AND dict_escolaridade_mae.coluna = 'escolaridade_mae'
AND dict_estado_civil_mae.coluna = 'estado_civil_mae'" #Gerar banco de dados no portal do Base dos dados.

data <- read_sql(query) # Importar dados
View(data)

Re-codificação das variáveis idade da mãe, atenção pre-natal, estado civil, peso criança ao nascer, escolaridade da mãe, e número de filhos vivos al nascer.

#Idade
data <- data %>% 
  mutate(idade_mae_cat = case_when(idade_mae < 21 ~ "10-20 anos",
                               idade_mae > 20 & idade_mae < 31 ~ "20-30 anos",
                               idade_mae > 30 & idade_mae < 41 ~ "30-40 anos",
                               idade_mae > 40 ~ "40-50 anos"))
#Classificação atenção pré-natal
data <- data %>% 
  mutate(atencao_pre = case_when(
    classific == "Inadequado" | classific == "Intermediário" | classific == "Não fez pré-natal" ~ "a. Inadequada",
    classific == "Adequado" | classific == "Mais que adequado" ~ "b. Adequada"
  ))
#Estado civil mãe

data <- data %>% 
  mutate(parceiro = case_when(
    estado_civil_mae == "Casada" | estado_civil_mae == "União estável" ~ "Com parceiro",
    estado_civil_mae == "Separada judicialmente/divorciada" | estado_civil_mae == "Solteira" | estado_civil_mae == "Viúva" ~ "Sem parceiro"))
#Peso
data <- data %>% 
  mutate(peso_cat = case_when(
    peso < 2500 ~ "Baixo",
    peso >=2500 & peso < 4001 ~ "Ideal",
    peso > 4000 ~ "Alto"
  ))
#Escolaridade

data <- data %>% 
  mutate(escolari = case_when(escolaridade_mae == "1 a 3 anos" | escolaridade_mae == "4 a 7 anos" | escolaridade_mae == "Nenhuma" ~ "a. 0 a 7 anos",
                              escolaridade_mae == "8 a 11 anos" ~ "b. 8 a 11 anos,",
                              escolaridade_mae == "12 e mais" ~ "c. 12 anos ou mais"))
#Paridade

data <- data %>% 
  mutate(paridade = case_when(quantidade_filhos_vivos == 0 ~ "a. Zero",
                              quantidade_filhos_vivos == 1 ~ "b. Um",
                              quantidade_filhos_vivos == 2 ~ "c. Dois",
                              quantidade_filhos_vivos > 2 ~ "d. Três ou mais"))

Tabelas combinadas

#Tabela 1: Tipo de atendimento pré-natal por idade, raça, escolaridade e estado civil da mãe
tabela_comb <- data %>% 
  select(raca_cor,
         idade_mae_cat,
         atencao_pre,
         parceiro,
         escolari,
         paridade)

tabela_comb %>%
  tbl_summary(by = atencao_pre, percent = "row", #missing = "no",
              label = c(idade_mae_cat ~ "Idade categorica da mãe",
                        raca_cor ~ "Raça ou cor da mãe",
                        escolari ~ "Escolaridade da mãe",
                        parceiro ~ "Tem parceiro estavel?",
                        paridade ~ "Paridade da mãe"))%>%
   modify_header(label ~ "**Caracteristicas**") %>% 
  modify_caption("Tabela 1: Tipo de atendimento pré-natal segundo características da mãe") %>% 
  add_n() %>%
  as_gt() %>% 
  gt::tab_source_note(gt::md("Dados obtidos no site Base dos Dados, iniciativa desenvolvida no Brasil para acesso gratuito e aberto aos dados."))
Tabela 1: Tipo de atendimento pré-natal segundo características da mãe
Caracteristicas N a. Inadequada, N = 9751 b. Adequada, N = 6,0021
Raça ou cor da mãe 6,977
    Amarela 3 (16%) 16 (84%)
    Branca 528 (12%) 3,968 (88%)
    Indígena 1 (33%) 2 (67%)
    Parda 356 (18%) 1,639 (82%)
    Preta 87 (19%) 377 (81%)
Idade categorica da mãe 6,977
    10-20 anos 122 (22%) 430 (78%)
    20-30 anos 500 (16%) 2,653 (84%)
    30-40 anos 316 (10%) 2,703 (90%)
    40-50 anos 37 (15%) 216 (85%)
Tem parceiro estavel? 6,965
    Com parceiro 545 (11%) 4,565 (89%)
    Sem parceiro 427 (23%) 1,428 (77%)
    Unknown 3 9
Escolaridade da mãe 6,974
    a. 0 a 7 anos 42 (44%) 54 (56%)
    b. 8 a 11 anos, 693 (17%) 3,462 (83%)
    c. 12 anos ou mais 238 (8.7%) 2,485 (91%)
    Unknown 2 1
Paridade da mãe 6,913
    a. Zero 370 (11%) 2,960 (89%)
    b. Um 296 (13%) 1,967 (87%)
    c. Dois 173 (20%) 686 (80%)
    d. Três ou mais 127 (28%) 334 (72%)
    Unknown 9 55
Dados obtidos no site Base dos Dados, iniciativa desenvolvida no Brasil para acesso gratuito e aberto aos dados.
1 n (%)
#Tabela2: Peso da criança ao nascer por tipo de atendimiento pre-natal
tabela_comb <- data %>% 
  select(atencao_pre,
         peso_cat,
         classific)

tabela_comb %>%
  tbl_summary(by = peso_cat, percent = "row", #missing = "no",
              label = c(atencao_pre ~ "Classificação da atenção pre-natal (dicotómica)",
                        classific ~ "Classificação da atenção pre-natal"))%>%
  modify_header(label ~ "**Tipo de atendimento**") %>% 
  modify_caption("Tabela 2: Peso ao nascer da criança pelo tipo de atendimento pré-natal") %>% 
  add_n() %>%
  as_gt() %>%
  gt::tab_source_note(gt::md("Dados obtidos no site Base dos Dados, iniciativa desenvolvida no Brasil para acesso gratuito e aberto aos dados."))
Tabela 2: Peso ao nascer da criança pelo tipo de atendimento pré-natal
Tipo de atendimento N Alto, N = 2511 Baixo, N = 8321 Ideal, N = 5,8941
Classificação da atenção pre-natal (dicotómica) 6,977
    a. Inadequada 19 (1.9%) 254 (26%) 702 (72%)
    b. Adequada 232 (3.9%) 578 (9.6%) 5,192 (87%)
Classificação da atenção pre-natal 6,977
    Adequado 14 (3.2%) 99 (23%) 321 (74%)
    Inadequado 10 (2.0%) 106 (21%) 380 (77%)
    Intermediário 8 (1.8%) 141 (31%) 305 (67%)
    Mais que adequado 218 (3.9%) 479 (8.6%) 4,871 (87%)
    Não fez pré-natal 1 (4.0%) 7 (28%) 17 (68%)
Dados obtidos no site Base dos Dados, iniciativa desenvolvida no Brasil para acesso gratuito e aberto aos dados.
1 n (%)
  #gt::gtsave(filename = here("tabelas/tabyl6.docx"))

Visualização gráfica

color <- c("#FE85AD", "#48144F")
bar_1 <- data %>%
  filter(!is.na(atencao_pre)) %>%
  filter(!is.na(raca_cor)) %>% 
  ggplot(aes(x = raca_cor,
             fill = atencao_pre)) + 
  geom_bar(position = "fill") +
  scale_fill_manual(values = color) +
  labs(title = "Gráfico de barras: Atenção pre-natal por raça ou cor da mae",
       x = "Raça ou cor da pele",
       y = "Proporção",
       fill = "") +
  theme_classic() +
  theme(legend.position = "bottom", plot.title = element_text(size = 11))

bar_3 <- data %>%
  filter(!is.na(atencao_pre)) %>%
  filter(!is.na(escolari)) %>% 
  ggplot(aes(x = escolari,
             fill = atencao_pre)) + 
  geom_bar(position = "fill") +
  scale_fill_manual(values = color) +
  labs(title = "Gráfico de barras: Atenção pre-natal por escolaridade da mae",
       x = "Escolaridade",
       y = "Proporção",
       fill = "") +
  theme_classic() +
  theme(legend.position = "bottom", plot.title = element_text(size = 11))

comb_bar3 <- bar_1 + bar_3
comb_bar3