Curso: Doutorado Profissional em Economia
Disciplina: Introdução à Estatística e
Econometria
Professor: Alexandre Xavier Ywata de Carvalho
Tema: Análise Comparativa entre Unidades da Federação -
IDHM 2010
27 unidades da federação • Renda per capita • Expectativa de vida • Análise regional
# Calcular estatísticas por UF
estatisticas_uf <- dados %>%
group_by(uf, UF_nome, regiao) %>%
summarise(
# Renda per capita
Renda_Mediana = median(renda_per_capita, na.rm = TRUE),
Renda_Media = mean(renda_per_capita, na.rm = TRUE),
Renda_Q1 = quantile(renda_per_capita, 0.25, na.rm = TRUE),
Renda_Q3 = quantile(renda_per_capita, 0.75, na.rm = TRUE),
Renda_IQR = IQR(renda_per_capita, na.rm = TRUE),
# Expectativa de vida
Exp_Vida_Mediana = median(esperanca_vida_ao_nascer, na.rm = TRUE),
Exp_Vida_Media = mean(esperanca_vida_ao_nascer, na.rm = TRUE),
Exp_Vida_Q1 = quantile(esperanca_vida_ao_nascer, 0.25, na.rm = TRUE),
Exp_Vida_Q3 = quantile(esperanca_vida_ao_nascer, 0.75, na.rm = TRUE),
Exp_Vida_IQR = IQR(esperanca_vida_ao_nascer, na.rm = TRUE),
N_Municipios = n(),
.groups = 'drop'
) %>%
mutate(across(where(is.numeric), ~round(., 2)))# 1. UF com maior renda per capita mediana
maior_renda <- estatisticas_uf %>%
arrange(desc(Renda_Mediana)) %>%
slice(1)
# 2. UF com menor expectativa de vida
menor_exp_vida <- estatisticas_uf %>%
arrange(Exp_Vida_Mediana) %>%
slice(1)
# 3. UF com maior IQR para expectativa de vida
maior_iqr_exp_vida <- estatisticas_uf %>%
arrange(desc(Exp_Vida_IQR)) %>%
slice(1)
# Estatísticas por região
estatisticas_regiao <- dados %>%
group_by(regiao) %>%
summarise(
Renda_Mediana = median(renda_per_capita, na.rm = TRUE),
Exp_Vida_Mediana = median(esperanca_vida_ao_nascer, na.rm = TRUE),
N_Municipios = n(),
.groups = 'drop'
) %>%
mutate(across(where(is.numeric), ~round(., 2)))
# 4. Região com pior expectativa de vida
pior_exp_vida_regiao <- estatisticas_regiao %>%
arrange(Exp_Vida_Mediana) %>%
slice(1)
# 5. Região com pior renda per capita
pior_renda_regiao <- estatisticas_regiao %>%
arrange(Renda_Mediana) %>%
slice(1)
# 6. Região com melhor expectativa de vida
melhor_exp_vida_regiao <- estatisticas_regiao %>%
arrange(desc(Exp_Vida_Mediana)) %>%
slice(1)
# 7. Região com melhor renda per capita
melhor_renda_regiao <- estatisticas_regiao %>%
arrange(desc(Renda_Mediana)) %>%
slice(1)
# 8. Correlação entre renda e expectativa de vida
correlacao <- cor(dados$renda_per_capita, dados$esperanca_vida_ao_nascer,
use = "complete.obs") %>% round(3)Renda per capita mediana: R$ 1715.11
Expectativa de vida mediana: 69.48 anos
IQR da expectativa de vida: 3.16 anos
Expectativa de vida mediana: 70.44 anos
Renda per capita mediana: R$ 259.38
Expectativa de vida mediana: 75.15 anos
Renda per capita mediana: R$ 675.02
Espera-se uma correlação positiva pois municípios com maior renda per capita geralmente têm melhor acesso à saúde, saneamento básico, alimentação e educação, fatores que contribuem diretamente para o aumento da expectativa de vida.
# Função para criar boxplots por UF
criar_boxplot_uf <- function(dados, variavel, titulo, eixo_y) {
dados %>%
ggplot(aes(x = as.factor(uf), y = .data[[variavel]], fill = regiao)) +
geom_boxplot(alpha = 0.8, outlier.alpha = 0.6) +
stat_summary(fun = median, geom = "point", shape = 23, size = 2, fill = "white") +
labs(title = titulo,
x = "Unidade da Federação (Código IBGE)",
y = eixo_y,
fill = "Região") +
scale_fill_viridis(discrete = TRUE) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1, size = 9),
plot.title = element_text(face = "bold", size = 12),
legend.position = "bottom")
}
# Boxplot para renda per capita
boxplot_renda <- criar_boxplot_uf(dados, "renda_per_capita",
"Distribuição da Renda per Capita por UF",
"Renda per Capita (R$)")
# Boxplot para expectativa de vida
boxplot_exp_vida <- criar_boxplot_uf(dados, "esperanca_vida_ao_nascer",
"Distribuição da Expectativa de Vida por UF",
"Expectativa de Vida (anos)")
# Exibir os boxplots
grid.arrange(boxplot_renda, boxplot_exp_vida, ncol = 1,
top = "Análise Comparativa entre Unidades da Federação - IDHM 2010")estatisticas_regiao %>%
arrange(desc(Renda_Mediana)) %>%
kable(align = 'c',
col.names = c("Região", "Renda Mediana (R$)", "Exp Vida Mediana (anos)", "Nº Municípios")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),
full_width = FALSE) %>%
row_spec(1, background = "#e8f5e8") %>%
row_spec(2, background = "#f0f8ff") %>%
row_spec(3, background = "#fffacd") %>%
row_spec(4, background = "#ffe6e6") %>%
row_spec(5, background = "#f5f5f5")| Região | Renda Mediana (R$) | Exp Vida Mediana (anos) | Nº Municípios |
|---|---|---|---|
| Sul | 675.02 | 75.15 | 1188 |
| Sudeste | 576.52 | 74.72 | 1668 |
| Centro-Oeste | 571.14 | 74.34 | 466 |
| Norte | 320.54 | 71.76 | 449 |
| Nordeste | 259.38 | 70.44 | 1793 |
estatisticas_uf %>%
select(UF = UF_nome, Região = regiao, Renda_Mediana, Exp_Vida_Mediana) %>%
arrange(Região, desc(Renda_Mediana)) %>%
kable(align = 'c',
caption = "Todas as UFs por Região - Ordenadas por Renda per Capita") %>%
kable_styling(bootstrap_options = c("striped", "hover"),
full_width = FALSE) %>%
row_spec(which(estatisticas_uf$regiao == "Nordeste"), background = "#fff5f5") %>%
row_spec(which(estatisticas_uf$regiao == "Norte"), background = "#f0f8ff") %>%
row_spec(which(estatisticas_uf$regiao == "Sudeste"), background = "#f0fff0") %>%
row_spec(which(estatisticas_uf$regiao == "Sul"), background = "#fffaf0") %>%
row_spec(which(estatisticas_uf$regiao == "Centro-Oeste"), background = "#f8f8ff")| UF | Região | Renda_Mediana | Exp_Vida_Mediana |
|---|---|---|---|
| Distrito Federal | Centro-Oeste | 1715.11 | 77.35 |
| Mato Grosso do Sul | Centro-Oeste | 588.94 | 74.43 |
| Goiás | Centro-Oeste | 573.82 | 74.47 |
| Mato Grosso | Centro-Oeste | 550.29 | 73.99 |
| Rio Grande do Norte | Nordeste | 285.21 | 71.04 |
| Sergipe | Nordeste | 282.40 | 70.58 |
| Bahia | Nordeste | 272.86 | 70.77 |
| Pernambuco | Nordeste | 271.36 | 70.47 |
| Paraíba | Nordeste | 263.84 | 70.45 |
| Ceará | Nordeste | 256.84 | 70.62 |
| Alagoas | Nordeste | 233.44 | 69.56 |
| Piauí | Nordeste | 229.34 | 70.20 |
| Maranhão | Nordeste | 217.65 | 69.48 |
| Rondônia | Norte | 466.86 | 72.72 |
| Amapá | Norte | 402.44 | 71.92 |
| Tocantins | Norte | 347.03 | 72.81 |
| Roraima | Norte | 329.22 | 73.06 |
| Acre | Norte | 313.70 | 71.25 |
| Pará | Norte | 279.19 | 71.42 |
| Amazonas | Norte | 227.58 | 71.32 |
| São Paulo | Sudeste | 686.89 | 75.19 |
| Rio de Janeiro | Sudeste | 618.33 | 73.74 |
| Espírito Santo | Sudeste | 533.38 | 74.58 |
| Minas Gerais | Sudeste | 475.23 | 74.41 |
| Santa Catarina | Sul | 768.81 | 76.03 |
| Rio Grande do Sul | Sul | 714.12 | 75.52 |
| Paraná | Sul | 592.27 | 74.27 |
dados %>%
ggplot(aes(x = renda_per_capita, y = esperanca_vida_ao_nascer, color = regiao)) +
geom_point(alpha = 0.6, size = 2) +
geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 1) +
labs(title = "Relação entre Renda per Capita e Expectativa de Vida",
subtitle = paste("Correlação =", correlacao),
x = "Renda per Capita (R$)",
y = "Expectativa de Vida (anos)",
color = "Região") +
scale_color_viridis(discrete = TRUE) +
theme_minimal() +
theme(legend.position = "bottom")
FÁVERO, L. P.; BELFIORE, P. Manual de análise de dados. 2. ed. Rio de
Janeiro: LTC, 2025.
HOFFMANN, R. Estatística para Economistas.
3. ed. São Paulo: Editora Pioneira, 1998.
PNUD. Atlas do
Desenvolvimento Humano no Brasil 2010. Disponível em: http://www.atlasbrasil.org.br
VENABLES, W. N.;
SMITH, D. M. An Introduction to R. [S.l.]: R-Project, 2015.