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."))
| 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."))
| 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