library(tidyverse)
library(gt)
base_amostra_pessoa_201812 <- read_csv2("base_amostra_cad_201812/base_amostra_pessoa_201812.csv")
### base de pessoas
base_amostra_pessoa_201812 <- base_amostra_pessoa_201812 %>%
mutate(cd_uf = substr(cd_ibge, 1, 2)) %>% filter(cd_uf==15)
### base de familias
base_amostra_familia_201812 <- read_csv2("base_amostra_cad_201812/base_amostra_familia_201812.csv")
base_amostra_familia_201812 <- base_amostra_familia_201812 %>%
mutate(cd_uf = substr(cd_ibge, 1, 2)) %>% filter(cd_uf==15)
df <- left_join(base_amostra_pessoa_201812, base_amostra_familia_201812)Cadastro Unico
1 Introdução
Este relatório analisa dados do Cadastro Único, focando no estado do Pará. Serão exploradas informações sobre renda, acesso a serviços básicos como água e esgotamento sanitário, e educação, com ênfase em grupos vulneráveis como mulheres e meninas negras.
1.1 Juntando Bases de Dados e Foco no Pará
1.1.1 Análise da Renda Média por Faixas
Exploramos a renda média das famílias, categorizando-as em faixas de extrema pobreza e pobreza.
extrema probeza <=70
pobre >70 & <141
df <- df %>%
mutate(renda_extrema_pobreza = ifelse(vlr_renda_media_fam <= 70, vlr_renda_media_fam, NA),
renda_pobreza = ifelse(vlr_renda_media_fam > 70 & vlr_renda_media_fam < 141, vlr_renda_media_fam, NA)
)1.2 Pobreza e Extrema Pobreza no Pará
Calcular quantas pessoas estão em situação de pobreza e extrema pobreza no Pará e a proporção delas em relação ao total de inscritos no Cadastro Único.
total_faixas <- df %>%
summarise(
total_extrema_pobreza = sum(!is.na(renda_extrema_pobreza)),
total_pobreza = sum(!is.na(renda_pobreza)),
total_familias = n()
)
total_faixas <- total_faixas %>%
mutate(
proporcao_extrema_pobreza = total_extrema_pobreza / total_familias,
proporcao_pobreza = total_pobreza / total_familias
)
total_faixas <- df %>%
summarise(
total_extrema_pobreza = sum(!is.na(renda_extrema_pobreza)),
total_pobreza = sum(!is.na(renda_pobreza)),
total_familias = n()
) %>%
mutate(
proporcao_extrema_pobreza = total_extrema_pobreza / total_familias,
proporcao_pobreza = total_pobreza / total_familias
)
# Transformar para formato longo para facilitar a visualização
dados_longos <- total_faixas %>%
pivot_longer(cols = starts_with("proporcao"), names_to = "categoria", values_to = "valor")
# viz
ggplot(dados_longos, aes(x = categoria, y = valor, fill = categoria)) +
geom_bar(stat = "identity", position = position_dodge()) +
geom_text(aes(label = scales::percent(valor)), vjust = -0.5, color = "black") +
ylab("Proporção") +
xlab("") +
ggtitle("Proporção de Famílias em Extrema Pobreza e Pobreza") +
scale_fill_brewer(palette = "Pastel1") +
theme_minimal()1.3 Acesso a Água e Saneamento
Número de famílias sem acesso adequado a abastecimento de água e esgotamento sanitário e a proporção dessas famílias em relação ao total.
# Adicionar uma coluna para indicar falta de abastecimento de água adequado
df <- df %>%
mutate(
sem_abastecimento_agua = cod_abaste_agua_domic_fam %in% c(2, 3, 4)
)
# Calcular o total e a proporção
total_agua <- df %>%
summarise(
total_sem_agua = sum(sem_abastecimento_agua, na.rm = TRUE),
total_familias = n(),
proporcao_sem_agua = (total_sem_agua / total_familias*100)
)
# Visualizar os resultados
total_agua %>% gt| total_sem_agua | total_familias | proporcao_sem_agua |
|---|---|---|
| 417022 | 816419 | 51.07941 |
1.3.1 Pessoas sem abastecimento de agua em relação ao total de inscitros no CAD
# Adicionando uma coluna para indicar falta de abastecimento de água adequado
df <- df %>%
mutate(
sem_abastecimento_agua = cod_abaste_agua_domic_fam %in% c(2, 3, 4)
)
# Calcular o total e a proporção
total_agua <- df %>%
summarise(
total_sem_agua = sum(sem_abastecimento_agua, na.rm = TRUE),
total_inscritos = n(),
proporcao_sem_agua = total_sem_agua / total_inscritos
)
# Visualização
dados_viz_agua <- data.frame(
Categoria = "Sem Abastecimento de Água",
Valor = total_agua$proporcao_sem_agua
)
# Criando o gráfico
ggplot(dados_viz_agua, aes(x = Categoria, y = Valor, fill = Categoria)) +
geom_bar(stat = "identity") +
geom_text(aes(label = scales::percent(Valor, accuracy = 0.1)), vjust = -0.5, color = "black") +
ylab("Proporção") +
xlab("") +
ggtitle("Proporção de Pessoas sem Abastecimento de Água no CAD") +
scale_fill_brewer(palette = "Pastel1") +
theme_minimal()2 Situação das Mulheres e Meninas
Analisar especificamente a situação de mulheres e meninas, olhando para aspectos como pobreza, acesso a água e saneamento, e alfabetização.
2.0.0.1 Número de famílias sem esgotamento sanitário adequado e a proporção dessas famílias em relação ao total no Cadastro Único ( codigo 2 a 6)
# Adicionar uma coluna para indicar falta de esgotamento sanitário adequado
df <- df %>%
mutate(
sem_esgotamento_sanitario = cod_escoa_sanitario_domic_fam %in% 2:6
)
# Calcular o total e a proporção
total_esgotamento <- df %>%
summarise(
total_sem_esgotamento = sum(sem_esgotamento_sanitario, na.rm = TRUE),
total_familias = n(),
proporcao_sem_esgotamento = total_sem_esgotamento / total_familias
)
# Visualizar os resultados
total_esgotamento %>% gt| total_sem_esgotamento | total_familias | proporcao_sem_esgotamento |
|---|---|---|
| 658460 | 816419 | 0.8065221 |
2.0.0.2 Mulheres pobre e extramente pobras (faixa de renda)
# Adicionando as colunas de pobreza e extrema pobreza
df <- df %>%
mutate(
em_extrema_pobreza = vlr_renda_media_fam <= 70,
em_pobreza = vlr_renda_media_fam > 70 & vlr_renda_media_fam < 141,
e_mulher = cod_sexo_pessoa == 2
)
# Calculando total e proporções
total_mulheres <- df %>%
filter(e_mulher) %>%
summarise(
total_mulheres = n(),
total_mulheres_extrema_pobreza = sum(em_extrema_pobreza, na.rm = TRUE),
total_mulheres_pobreza = sum(em_pobreza, na.rm = TRUE),
proporcao_mulheres_extrema_pobreza = total_mulheres_extrema_pobreza / total_mulheres,
proporcao_mulheres_pobreza = total_mulheres_pobreza / total_mulheres
)
# Visualizar os resultados
total_mulheres %>% gt| total_mulheres | total_mulheres_extrema_pobreza | total_mulheres_pobreza | proporcao_mulheres_extrema_pobreza | proporcao_mulheres_pobreza |
|---|---|---|---|---|
| 452866 | 259376 | 79893 | 0.5727434 | 0.1764164 |
# Transformando para o formato longo
dados_viz_mulheres <- total_mulheres %>%
select(contains("proporcao_mulheres")) %>%
pivot_longer(cols = everything(), names_to = "categoria", values_to = "valor")
# Criando o gráfico
ggplot(dados_viz_mulheres, aes(x = categoria, y = valor, fill = categoria)) +
geom_bar(stat = "identity") +
geom_text(aes(label = scales::percent(valor, accuracy = .1)), vjust = -0.5, color = "black") +
ylab("Proporção") +
xlab("Categoria") +
ggtitle("Proporção de Mulheres em Pobreza e Extrema Pobreza") +
scale_fill_brewer(palette = "Pastel1") +
theme_minimal()2.0.0.3 Mulheres sem abastecimento de agua e sem saneamento
# Adicionando a coluna de gênero e indicadores de falta de abastecimento de água e saneamento
df <- df %>%
mutate(
e_mulher = cod_sexo_pessoa == 2,
sem_abastecimento_agua = cod_abaste_agua_domic_fam %in% c(2, 3, 4),
sem_esgotamento_sanitario = cod_escoa_sanitario_domic_fam %in% 2:6
)
# Calculando total e proporções para mulheres sem abastecimento de água
total_mulheres_agua <- df %>%
filter(e_mulher & sem_abastecimento_agua) %>%
summarise(
total_mulheres_sem_agua = n()
)
# Calculando total e proporções para mulheres sem esgotamento sanitário
total_mulheres_esgotamento <- df %>%
filter(e_mulher & sem_esgotamento_sanitario) %>%
summarise(
total_mulheres_sem_esgotamento = n()
)
# Visualização
dados_viz_mulheres <- rbind(
data.frame(categoria = "Sem Água", valor = total_mulheres_agua$total_mulheres_sem_agua),
data.frame(categoria = "Sem Saneamento", valor = total_mulheres_esgotamento$total_mulheres_sem_esgotamento)
)
ggplot(dados_viz_mulheres, aes(x = categoria, y = valor, fill = categoria)) +
geom_bar(stat = "identity") +
geom_text(aes(label = valor), vjust = -0.5, color = "black") +
ylab("Total de Mulheres") +
xlab("Categoria") +
ggtitle("Total de Mulheres sem Abastecimento de Água e sem Saneamento") +
scale_fill_brewer(palette = "Pastel1") +
theme_minimal()2.0.0.4 Mulheres negras que não saber ler e escrever
# Adicionando colunas e identificando mulheres negras que não sabem ler e escrever
df <- df %>%
mutate(
e_mulher_negra_analfabeta = cod_sexo_pessoa == 2 &
cod_raca_cor_pessoa %in% c(2, 4) &
cod_sabe_ler_escrever_memb == 2
)
# Calculando total
total_mulheres_negras_analfabetas <- df %>%
summarise(
total = sum(e_mulher_negra_analfabeta, na.rm = TRUE)
)
# Preparando dados para visualização
dados_viz <- data.frame(
categoria = "Mulheres Negras Analfabetas",
valor = total_mulheres_negras_analfabetas$total
)
# Criando o gráfico
ggplot(dados_viz, aes(x = categoria, y = valor, fill = categoria)) +
geom_bar(stat = "identity") +
geom_text(aes(label = valor), vjust = -0.5, color = "black") +
ylab("Total") +
xlab("") +
ggtitle("Total de Mulheres Negras Analfabetas") +
scale_fill_brewer(palette = "Pastel1") +
theme_minimal()2.0.0.5 Proporção de mulheres negras analfabetas em relação ao total de inscritos no Cadastro Único e ao total de mulheres
# Adicionando colunas e identificando mulheres negras que não sabem ler e escrever
df <- df %>%
mutate(
e_mulher_negra_analfabeta = cod_sexo_pessoa == 2 &
cod_raca_cor_pessoa %in% c(2, 4) &
cod_sabe_ler_escrever_memb == 2,
e_mulher = cod_sexo_pessoa == 2
)
# Calculando totais e proporções
total_e_proporcoes <- df %>%
summarise(
total_mulheres_negras_analfabetas = sum(e_mulher_negra_analfabeta, na.rm = TRUE),
total_mulheres = sum(e_mulher, na.rm = TRUE),
total_inscritos = n(),
proporcao_mulheres_negras_analfabetas_total = total_mulheres_negras_analfabetas / total_inscritos,
proporcao_mulheres_negras_analfabetas_mulheres = total_mulheres_negras_analfabetas / total_mulheres
)
# Visualizar os resultados
total_e_proporcoes %>% gt| total_mulheres_negras_analfabetas | total_mulheres | total_inscritos | proporcao_mulheres_negras_analfabetas_total | proporcao_mulheres_negras_analfabetas_mulheres |
|---|---|---|---|---|
| 99108 | 452866 | 816419 | 0.1213935 | 0.2188462 |
# Transformar para formato longo para facilitar a visualização
dados_viz_proporcao <- total_e_proporcoes %>%
select(contains("proporcao")) %>%
pivot_longer(cols = everything(), names_to = "categoria", values_to = "valor")
# Ajustando nomes das categorias para o gráfico
dados_viz_proporcao$categoria <- recode(dados_viz_proporcao$categoria,
proporcao_mulheres_negras_analfabetas_total = "Proporção em Relação ao Total",
proporcao_mulheres_negras_analfabetas_mulheres = "Proporção entre Mulheres")
# Criar o gráfico
ggplot(dados_viz_proporcao, aes(x = categoria, y = valor, fill = categoria)) +
geom_bar(stat = "identity") +
geom_text(aes(label = scales::percent(valor, accuracy = .1)), vjust = -0.5, color = "black") +
ylab("Proporção") +
xlab("Categoria") +
ggtitle("Proporção de Mulheres Negras Analfabetas no Cadastro Único") +
scale_fill_brewer(palette = "Pastel1") +
theme_minimal()2.0.0.6 Meninas Negras 7 a 12 Anos que não sabem ler e escrever
# Adicionando a coluna e identificando meninas negras de 7 a 12 anos que não sabem ler e escrever
df <- df %>%
mutate(
e_menina_negra_analfabeta = cod_sexo_pessoa == 2 &
cod_raca_cor_pessoa %in% c(2, 4) &
cod_sabe_ler_escrever_memb == 2 &
idade >= 7 & idade <= 12
)
# Calculando o total
total_meninas_negras_analfabetas <- df %>%
summarise(
total = sum(e_menina_negra_analfabeta, na.rm = TRUE)
)
# Visualizar o total
total_meninas_negras_analfabetas# A tibble: 1 × 1
total
<int>
1 18333
# Preparando dados para visualização
dados_viz <- data.frame(
categoria = "Meninas Negras Analfabetas 7-12",
valor = total_meninas_negras_analfabetas$total
)
# Criando o gráfico
ggplot(dados_viz, aes(x = categoria, y = valor, fill = categoria)) +
geom_bar(stat = "identity") +
geom_text(aes(label = valor), vjust = -0.5, color = "black") +
ylab("Total") +
xlab("") +
ggtitle("Total de Meninas Negras Analfabetas de 7 a 12 Anos") +
scale_fill_brewer(palette = "Pastel1") +
theme_minimal()2.1 Criar um df e exportar os resultados
# Criando colunas para as estatísticas necessárias
df_estatisticas <- df %>%
mutate(
e_mulher_negra_analfabeta = cod_sexo_pessoa == 2 &
cod_raca_cor_pessoa %in% c(2, 4) &
cod_sabe_ler_escrever_memb == 2,
e_menina_negra_analfabeta_7_12 = cod_sexo_pessoa == 2 &
cod_raca_cor_pessoa %in% c(2, 4) &
cod_sabe_ler_escrever_memb == 2 &
idade >= 7 & idade <= 12,
sem_abastecimento_agua = cod_abaste_agua_domic_fam %in% c(2, 3, 4)
) %>%
summarise(
total_mulheres_negras_analfabetas = sum(e_mulher_negra_analfabeta, na.rm = TRUE),
total_meninas_negras_analfabetas_7_12 = sum(e_menina_negra_analfabeta_7_12, na.rm = TRUE),
total_sem_abastecimento_agua = sum(sem_abastecimento_agua, na.rm = TRUE),
total_inscritos = n()
) %>%
mutate(
proporcao_mulheres_negras_analfabetas = total_mulheres_negras_analfabetas / total_inscritos,
proporcao_meninas_negras_analfabetas_7_12 = total_meninas_negras_analfabetas_7_12 / total_inscritos,
proporcao_sem_abastecimento_agua = total_sem_abastecimento_agua / total_inscritos
)# Exibindo o dataframe criado
tabela_formatada <- gt(df_estatisticas) %>%
tab_header(
title = "Estatísticas do Cadastro Único"
) %>%
cols_label(
total_mulheres_negras_analfabetas = "Total de Mulheres Negras Analfabetas",
total_meninas_negras_analfabetas_7_12 = "Total de Meninas Negras Analfabetas (7-12 anos)",
total_sem_abastecimento_agua = "Total Sem Abastecimento de Água",
total_inscritos = "Total de Inscritos",
proporcao_mulheres_negras_analfabetas = "Proporção de Mulheres Negras Analfabetas",
proporcao_meninas_negras_analfabetas_7_12 = "Proporção de Meninas Negras Analfabetas (7-12 anos)",
proporcao_sem_abastecimento_agua = "Proporção Sem Abastecimento de Água"
) %>%
fmt_number(
columns = vars(contains("total")),
decimals = 0
) %>%
fmt_percent(
columns = vars(contains("proporcao")),
decimals = 2
)
# Exibir a tabela formatada
tabela_formatada| Estatísticas do Cadastro Único | ||||||
|---|---|---|---|---|---|---|
| Total de Mulheres Negras Analfabetas | Total de Meninas Negras Analfabetas (7-12 anos) | Total Sem Abastecimento de Água | Total de Inscritos | Proporção de Mulheres Negras Analfabetas | Proporção de Meninas Negras Analfabetas (7-12 anos) | Proporção Sem Abastecimento de Água |
| 99,108 | 18,333 | 417,022 | 816,419 | 12.14% | 2.25% | 51.08% |
Exportar
write.csv(df_estatisticas, "estatisticas_cadunico.csv", row.names = FALSE)