Curso: Doutorado Profissional em Economia
Disciplina: Introdução à Estatística e Econometria
Professor: Alexandre Xavier Ywata de Carvalho
Tema: Lista 1 - Análise Estatística do IDHM 2010


Análise do Índice de Desenvolvimento Humano Municipal

Índice de Desenvolvimento Humano Municipal - 2010

5.570 municípios brasileiros • Análise estatística descritiva • Representação Gráfica

Questão 1: Operações Básicas

Cálculos em R

# Programa de teste – Questão 1 (Lista 1 - IDHM 2010)

# Operações matemáticas
resultados <- tibble(
  Operação = c("Logaritmo de (20 + 50)", 
               "Exponencial de 2.267", 
               "Log(100) / Log(50)", 
               "Soma: 3 + 12 + 15 - 1.8 + 54"),
  Expressão = c("log(20 + 50)", "exp(2.267)", "log(100)/log(50)", "3 + 12 + 15 - 1.8 + 54"),
  Resultado = c(log(20 + 50), exp(2.267), log(100)/log(50), 3 + 12 + 15 - 1.8 + 54)
)

# Tabela
resultados %>%
  mutate(Resultado = round(Resultado, 4),
         Operação = paste("•", Operação)) %>%
  kable(align = c('l', 'l', 'c'), 
        col.names = c("Operação", "Expressão em R", "Resultado"),
        escape = FALSE) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), 
                full_width = FALSE,
                position = "center",
                font_size = 14) %>%
  row_spec(1:4, bold = FALSE, color = "black") %>%
  column_spec(1, width = "35%") %>%
  column_spec(2, width = "35%") %>%
  column_spec(3, width = "30%", bold = TRUE, color = "#000000") %>%
  footnote(general = "Operações para familiarização com o ambiente R, arquivo salvo na Lista 1 completa",
           general_title = "Nota:")
Operação Expressão em R Resultado
• Logaritmo de (20 + 50) log(20 + 50) 4.2485
• Exponencial de 2.267 exp(2.267) 9.6504
• Log(100) / Log(50) log(100)/log(50) 1.1772
• Soma: 3 + 12 + 15 - 1.8 + 54 3 + 12 + 15 - 1.8 + 54 82.2000
Nota:
Operações para familiarização com o ambiente R, arquivo salvo na Lista 1 completa

Questão 2: Estatísticas Descritivas

Métricas das Variáveis Principais

# Análise descritiva
analisar_variavel <- function(dados, variavel, nome_legivel) {
  valores <- na.omit(dados[[variavel]])
  
  tibble(
    Variável = nome_legivel,
    Média = round(mean(valores), 3),
    Mediana = round(median(valores), 3),
    `Desvio Padrão` = round(sd(valores), 3),
    Mínimo = round(min(valores), 3),
    Máximo = round(max(valores), 3),
    Variância = round(var(valores), 3),
    Assimetria = round(moments::skewness(valores), 3),
    Curtose = round(moments::kurtosis(valores), 3),
    Q1 = round(quantile(valores, 0.25), 3),
    Q3 = round(quantile(valores, 0.75), 3),
    IIQ = round(IQR(valores), 3)
  )
}

# Aplicar análise
variaveis_principais <- list(
  c("esperanca_vida_ao_nascer", "Expectativa de Vida (anos)"),
  c("renda_per_capita", "Renda per Capita (R$)"),
  c("IDHM", "IDHM Geral")
)

estatisticas <- map_df(variaveis_principais, ~ analisar_variavel(dados, .[1], .[2]))

# Tabela principal
estatisticas %>%
  select(-IIQ) %>%
  kable(align = 'c') %>%
  kable_styling(
    bootstrap_options = c("striped", "hover"),
    full_width = TRUE,
    position = "center",
    font_size = 13
  ) %>%
  column_spec(1, bold = TRUE, width = "18%") %>%
  row_spec(1, background = "linear-gradient(135deg, #74b9ff 0%, #0984e3 100%)", color = "black") %>%
  row_spec(2, background = "#f8f9fa") %>%
  row_spec(3, background = "#d2d5d6", bold = TRUE) %>%
  add_header_above(c(" " = 1, "Medidas de Tendência Central" = 3, 
                     "Extremos" = 3, "Forma da Distribuição" = 2, 
                     "Quartis" = 2), background = "#0d154f", color = "white")
Medidas de Tendência Central
Extremos
Forma da Distribuição
Quartis
Variável Média Mediana Desvio Padrão Mínimo Máximo Variância Assimetria Curtose Q1 Q3
Expectativa de Vida (anos) 73.089 73.470 2.681 65.300 78.640 7.187 -0.409 2.512 71.150 75.160
Renda per Capita (R$) 493.651 467.740 243.267 96.250 2043.740 59178.986 0.959 4.650 281.135 650.633
IDHM Geral 0.659 0.665 0.072 0.418 0.862 0.005 -0.156 2.155 0.599 0.718

Distribuição por Percentis

# Percentis requeridos
probs <- c(0.01, 0.03, 0.05, 0.10, 0.90, 0.95, 0.97, 0.99)

# Tabela consolidada de percentis
tabela_percentis <- tibble(
  Percentil = paste0(probs * 100, "%"),
  `Expectativa de Vida (anos)` =
    round(quantile(na.omit(dados$esperanca_vida_ao_nascer), probs), 3),
  `Renda per Capita (R$)` =
    round(quantile(na.omit(dados$renda_per_capita), probs), 3),
  `IDHM Geral` =
    round(quantile(na.omit(dados$IDHM), probs), 3)
)

tabela_percentis %>%
  kable(
    caption   = "Distribuição percentílica das variáveis principais",
    align     = c("c", "c", "c", "c"),
    col.names = c("Percentil",
                  "Expectativa de Vida (anos)",
                  "Renda per Capita (R$)",
                  "IDHM Geral")
  ) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover"),
    full_width = FALSE,
    position   = "center",
    font_size  = 13
  )
Distribuição percentílica das variáveis principais
Percentil Expectativa de Vida (anos) Renda per Capita (R$) IDHM Geral
1% 66.583 159.151 0.507
3% 67.610 183.794 0.530
5% 68.252 198.913 0.544
10% 69.293 223.543 0.562
90% 76.310 814.357 0.750
95% 76.970 914.360 0.766
97% 77.350 989.703 0.776
99% 78.060 1158.673 0.795

Importante: A tabela apresenta os percentis 1, 3, 5, 10, 90, 95, 97 e 99 das três variáveis principais: expectativa de vida ao nascer, renda per capita e IDHM geral

Coeficiente de Assimetria

O coeficiente de assimetria positivo na renda per capita (0.891) indica concentração de renda, revelando poucos municípios com renda alta.

Questão 3: Visualização das Dimensões do IDH

Distribuição das Dimensões do Desenvolvimento Humano

# Criar visualizações modernas sem patchwork
p1 <- dados %>%
  ggplot(aes(x = IDHM_educacao)) +
  geom_histogram(aes(y = ..density..), bins = 35, fill = "#0874bd", alpha = 0.8) +
  geom_density(alpha = 0.4, fill = "#2980b9", color = "#2980b9", linewidth = 1) +
  labs(title = "IDHM Educação", 
       subtitle = "Distribuição do índice educacional",
       x = "Índice", y = "Densidade") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1)) +
  theme(plot.title = element_text(color = "#2980b9"))

p2 <- dados %>%
  ggplot(aes(x = IDHM_renda)) +
  geom_histogram(aes(y = ..density..), bins = 35, fill = "#e74c3c", alpha = 0.8) +
  geom_density(alpha = 0.4, fill = "#c0392b", color = "#c0392b", linewidth = 1) +
  labs(title = "IDHM Renda", 
       subtitle = "Distribuição do índice de renda",
       x = "Índice", y = "Densidade") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1)) +
  theme(plot.title = element_text(color = "#c0392b"))

p3 <- dados %>%
  ggplot(aes(x = IDHM_logenvidade)) +
  geom_histogram(aes(y = ..density..), bins = 35, fill = "#2ecc71", alpha = 0.8) +
  geom_density(alpha = 0.4, fill = "#27ae60", color = "#27ae60", linewidth = 1) +
  labs(title = "IDHM Longevidade", 
       subtitle = "Distribuição do índice de longevidade",
       x = "Índice", y = "Densidade") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1)) +
  theme(plot.title = element_text(color = "#27ae60"))

p4 <- dados %>%
  ggplot(aes(x = expec_anos_estudo)) +
  geom_histogram(aes(y = ..density..), bins = 35, fill = "#9b59b6", alpha = 0.8) +
  geom_density(alpha = 0.4, fill = "#8e44ad", color = "#8e44ad", linewidth = 1) +
  labs(title = "Expectativa de Anos de Estudo", 
       subtitle = "Distribuição da expectativa educacional",
       x = "Anos", y = "Densidade") +
  theme(plot.title = element_text(color = "#8e44ad"))

# Usar grid.arrange do gridExtra (mais robusto)
grid.arrange(p1, p2, p3, p4, ncol = 2, 
             top = "Distribuição das Dimensões do Desenvolvimento Humano nos Municípios Brasileiros")

Padrão Identificado

A heterogeneidade demonstrado pelos histogramas de educação, renda, longevidade e anos de estudos, onde temos uma distribuição bimodal (Renda), uma assimétrica a esquerda (Longevidade) e duas aproximadamente normais (Educação e Anos de Estudo), demonstram que os desafios de desenvolvimento municipal no país não são uniformes; a dimensão Renda particularmente, divide o país em dois “clubes” municipais distintos.

Questão 4: Características dos Domicílios

Análise das Condições Domiciliares nos Municípios

(a e b) 6 Histogramas em figura única

# Definir variáveis de características domiciliares
variaveis_domicilio <- tribble(
  ~variavel, ~nome, ~cor,
  "perc_pop_em_dom_agua_encanada", "Água Encanada", "#3498db",
  "perc_pop_em_dom_banheiro_e_agua_encanada", "Banheiro e Água", "#2ecc71",  
  "perc_pop_dom_com_coleta_lixo", "Coleta de Lixo", "#e74c3c", 
  "perc_pop_dom_energia_eletrica", "Energia Elétrica", "#f39c12",
  "perc_pessoas_dom_agua_estogo_inadequados", "Água/Esgoto Inadequados", "#95a5a6",
  "perc_pessoas_dom_paredes_inadequadas", "Paredes Inadequadas", "#34495e", )

# Criar histogramas
plots_domicilio <- variaveis_domicilio %>%
  pmap(function(variavel, nome, cor) {
    dados %>%
      ggplot(aes(x = .data[[variavel]])) +
      geom_histogram(aes(y = ..density..), bins = 30, fill = cor, alpha = 0.8) +
      geom_density(alpha = 0.4, fill = cor, color = cor, linewidth = 0.8) +
      labs(title = paste(nome),
           x = "Percentual da População (%)",
           y = "Densidade") +
      theme_minimal() +
      theme(plot.title = element_text(face = "bold", size = 12),
            axis.text = element_text(size = 10))
  })

# Organizar em grid 3x2
grid.arrange(grobs = plots_domicilio, ncol = 3, 
             top = "Distribuição das Condições Domiciliares nos Municípios Brasileiros")

(c e d) Boxplots por Unidade da Federação - Análise comparativa

# Criar boxplots para as variáveis domiciliares
criar_boxplot_uf <- function(dados, variavel, titulo, cor) {
  dados %>%
    ggplot(aes(x = as.factor(uf), y = .data[[variavel]])) +
    geom_boxplot(fill = cor, alpha = 0.7, outlier.color = "#e74c3c", outlier.alpha = 0.6) +
    stat_summary(fun = mean, geom = "point", shape = 23, size = 2, fill = "white") +
    labs(title = titulo,
         x = "Unidade da Federação (UF)",
         y = "Percentual (%)") +
    theme_minimal() +
    theme(axis.text.x = element_text(angle = 45, hjust = 1, size = 9),
          plot.title = element_text(face = "bold", size = 12))
}

# Criar boxplots para as 6 variáveis
boxplot1 <- criar_boxplot_uf(dados, "perc_pop_em_dom_agua_encanada", "Água Encanada", "#3498db")
boxplot2 <- criar_boxplot_uf(dados, "perc_pop_em_dom_banheiro_e_agua_encanada", "Banheiro e Água", "#2ecc71")
boxplot3 <- criar_boxplot_uf(dados, "perc_pop_dom_com_coleta_lixo", "Coleta de Lixo", "#e74c3c")
boxplot4 <- criar_boxplot_uf(dados, "perc_pop_dom_energia_eletrica", "Energia Elétrica", "#f39c12")
boxplot5 <- criar_boxplot_uf(dados, "perc_pessoas_dom_agua_estogo_inadequados", "Água/Esgoto Inadequados", "#95a5a6")
boxplot6 <- criar_boxplot_uf(dados, "perc_pessoas_dom_paredes_inadequadas", " Paredes Inadequadas", "#34495e")

Análise Visual por Unidade da Federação

Os boxplots abaixo mostram a distribuição das condições domiciliares em cada UF. Pontos brancos representam as médias estaduais.

Figura 1: Saneamento Básico

Figura 2: Infraestrutura e Serviços

Figura 3: Condições Inadequadas

(e) e (d) Análise Comparativa entre Unidades da Federação

# Calcular ranking de condições por UF
ranking_condicoes <- dados %>%
  group_by(uf) %>%
  summarise(
    `Água Encanada` = mean(perc_pop_em_dom_agua_encanada, na.rm = TRUE),
    `Banheiro e Água` = mean(perc_pop_em_dom_banheiro_e_agua_encanada, na.rm = TRUE),
    `Coleta de Lixo` = mean(perc_pop_dom_com_coleta_lixo, na.rm = TRUE),
    `Energia Elétrica` = mean(perc_pop_dom_energia_eletrica, na.rm = TRUE),
    `Água/Esgoto Inadequados` = mean(perc_pessoas_dom_agua_estogo_inadequados, na.rm = TRUE),
    `Paredes Inadequadas` = mean(perc_pessoas_dom_paredes_inadequadas, na.rm = TRUE)
  ) %>%
  mutate(
    `Índice de Condições Adequadas` = (`Água Encanada` + `Banheiro e Água` + `Coleta de Lixo` + `Energia Elétrica`) / 4,
    `Índice de Condições Inadequadas` = (`Água/Esgoto Inadequados` + `Paredes Inadequadas`) / 2
  ) %>%
  arrange(desc(`Índice de Condições Adequadas`))
ufs_nomes <- tibble::tribble(
  ~uf, ~UF_nome,
  11, "Rondônia",
  12, "Acre",
  13, "Amazonas",
  14, "Roraima",
  15, "Pará",
  16, "Amapá",
  17, "Tocantins",
  21, "Maranhão",
  22, "Piauí",
  23, "Ceará",
  24, "Rio Grande do Norte",
  25, "Paraíba",
  26, "Pernambuco",
  27, "Alagoas",
  28, "Sergipe",
  29, "Bahia",
  31, "Minas Gerais",
  32, "Espírito Santo",
  33, "Rio de Janeiro",
  35, "São Paulo",
  41, "Paraná",
  42, "Santa Catarina",
  43, "Rio Grande do Sul",
  50, "Mato Grosso do Sul",
  51, "Mato Grosso",
  52, "Goiás",
  53, "Distrito Federal"
)

As melhores condições estaduais

ranking_condicoes %>%
  left_join(ufs_nomes, by = "uf") %>%
  head(5) %>%
  mutate(
    UF_label = paste0(uf, " - ", UF_nome)
  ) %>%
  select(
    UF = UF_label,
    `Índice Adequadas` = `Índice de Condições Adequadas`,
    `Água Encanada`,
    `Banheiro e Água`,
    `Coleta de Lixo`,
    `Energia Elétrica`,
    `Água/Esgoto Inadequados`,
    `Paredes Inadequadas`,
    `Índice Inadequadas` = `Índice de Condições Inadequadas`
     ) %>%
  mutate(across(where(is.numeric), ~round(., 1))) %>%
  kable(align = 'c') %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE) %>%
  row_spec(1:5, background = c("#edebeb"))
UF Índice Adequadas Água Encanada Banheiro e Água Coleta de Lixo Energia Elétrica Água/Esgoto Inadequados Paredes Inadequadas Índice Inadequadas
35 - São Paulo 98.4 96.6 97.7 99.5 99.8 0.8 0.8 0.8
53 - Distrito Federal 98.2 98.1 96.0 98.9 99.9 0.7 1.4 1.0
32 - Espírito Santo 96.6 92.6 96.4 97.9 99.7 1.4 1.0 1.2
41 - Paraná 96.5 92.9 95.5 98.5 99.3 1.6 2.4 2.0
43 - Rio Grande do Sul 96.2 91.8 95.3 98.2 99.6 1.6 1.9 1.8

As piores condições estaduais

ranking_condicoes %>%
  left_join(ufs_nomes, by = "uf")%>%
  tail(5) %>%
  mutate(
    UF_label = paste0(uf, " - ", UF_nome)
  ) %>%
  select(
    UF = UF_label,
    `Índice Adequadas` = `Índice de Condições Adequadas`,
    `Água Encanada`,
    `Banheiro e Água`,
    `Coleta de Lixo`,
    `Energia Elétrica`,
    `Água/Esgoto Inadequados`,
    `Paredes Inadequadas`,
    `Índice Inadequadas` = `Índice de Condições Inadequadas`
     ) %>%
  mutate(across(where(is.numeric), ~round(., 1))) %>%
  kable(align = 'c') %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE) %>%
  row_spec(1:5, background = c("#edebeb"))
UF Índice Adequadas Água Encanada Banheiro e Água Coleta de Lixo Energia Elétrica Água/Esgoto Inadequados Paredes Inadequadas Índice Inadequadas
15 - Pará 74.0 79.1 44.8 84.1 87.8 38.9 16.7 27.8
22 - Piauí 73.9 72.1 54.1 81.5 87.9 10.4 12.3 11.3
12 - Acre 71.1 77.4 35.1 89.6 82.4 34.9 13.2 24.0
21 - Maranhão 69.6 80.4 38.8 65.2 93.9 29.7 33.3 31.5
13 - Amazonas 64.4 58.2 36.2 80.3 82.9 37.6 12.2 24.9

(g) Análise das Macrorregiões

# Criar variável de região
regioes <- tibble(
  uf = c(11:17, 21:29, 31:35, 41:43, 50:53),
  Região = c(rep("Norte", 7), rep("Nordeste", 9), rep("Sudeste", 5), rep("Sul", 3), rep("Centro-Oeste", 4))
)

# Análise por região
analise_regioes <- dados %>%
  left_join(regioes, by = "uf") %>%
  group_by(Região) %>%
  summarise(
    `Água Encanada` = mean(perc_pop_em_dom_agua_encanada, na.rm = TRUE),
    `Banheiro e Água` = mean(perc_pop_em_dom_banheiro_e_agua_encanada, na.rm = TRUE),
    `Coleta de Lixo` = mean(perc_pop_dom_com_coleta_lixo, na.rm = TRUE),
    `Energia Elétrica` = mean(perc_pop_dom_energia_eletrica, na.rm = TRUE),
    `Índice Geral` = (`Água Encanada` + `Banheiro e Água` + `Coleta de Lixo` + `Energia Elétrica`) / 4,
    `Municípios` = n()
  ) %>%
  arrange(desc(`Índice Geral`))

Comparativo entre Macrorregiões

analise_regioes %>%
  mutate(across(where(is.numeric), ~round(., 1))) %>%
  kable(align = 'c') %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE) %>%
  row_spec(1, background = "white") %>%
  row_spec(2, background = "#e2e3e5") %>%
  row_spec(3, background = "white") %>%
  row_spec(4, background = "#e2e3ef") %>%
  row_spec(5, background = "white")
Região Água Encanada Banheiro e Água Coleta de Lixo Energia Elétrica Índice Geral Municípios
Sul 91.4 95.4 98.3 99.5 96.2 1188
Sudeste 91.9 94.5 97.3 99.2 95.8 1668
Centro-Oeste 93.2 91.5 97.5 97.7 95.0 466
Nordeste 74.8 62.0 89.0 95.8 80.4 1793
Norte 81.8 56.1 87.5 88.6 78.5 449

Considerações - Questão 4

Melhores condições: UFs do Sudeste e Sul lideram em infraestrutura domiciliar
Piores condições: UFs do Norte e Nordeste apresentam maiores déficits
Maior desigualdade: Energia elétrica tem cobertura quase universal, enquanto saneamento varia significativamente

Questão 5: Análise de Covariâncias e Correlações

Relações entre as Dimensões do Desenvolvimento

5(a) Matriz de covariâncias amostrais

# Preparar dados para análise de covariância e correlação
dados_cor <- dados %>%
  select(
    Educação     = IDHM_educacao,
    Renda        = IDHM_renda,
    Longevidade  = IDHM_logenvidade,
    `Anos Estudo` = expec_anos_estudo
  ) %>%
  na.omit()

# 5(a) Matriz de covariâncias amostrais
cov_matrix <- cov(dados_cor)

cov_matrix %>%
  round(4) %>%
  kable(
    caption = "Matriz de Covariâncias Amostrais entre as Dimensões do Desenvolvimento Humano",
    align   = 'c'
  ) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover"),
    full_width = FALSE
  )
Matriz de Covariâncias Amostrais entre as Dimensões do Desenvolvimento Humano
Educação Renda Longevidade Anos Estudo
Educação 0.0087 0.0062 0.0029 0.0728
Renda 0.0062 0.0065 0.0030 0.0482
Longevidade 0.0029 0.0030 0.0020 0.0216
Anos Estudo 0.0728 0.0482 0.0216 1.2063
# 5(a) Matriz de correlações amostrais
cor_matrix <- cor(dados_cor)

cor_matrix %>%
  round(3) %>%
  kable(
    caption = "Matriz de Correlações Amostrais entre as Dimensões do Desenvolvimento Humano",
    align   = 'c'
  ) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover"),
    full_width = FALSE
  )
Matriz de Correlações Amostrais entre as Dimensões do Desenvolvimento Humano
Educação Renda Longevidade Anos Estudo
Educação 1.000 0.820 0.704 0.711
Renda 0.820 1.000 0.834 0.544
Longevidade 0.704 0.834 1.000 0.441
Anos Estudo 0.711 0.544 0.441 1.000
# 5(a) Visualização gráfica da matriz de correlação
corrplot(
  cor_matrix, 
  method = "color",
  type   = "upper",
  order  = "original",
  tl.cex = 1.1,
  tl.col = "black",
  tl.srt = 45,
  addCoef.col = "white",
  number.cex = 1.1,
  col = colorRampPalette(c("#e74c3c", "white", "#3498db"))(200),
  mar = c(0, 0, 2, 0),
  title = "Matriz de Correlação entre Dimensões do Desenvolvimento Humano",
  cl.cex = 1.0
)

pairs(dados_cor,
      main = "Gráficos de Dispersão - Função base pairs()",
      pch = 19,
      cex = 0.4)

Análise de Pares com Gráficos de Dispersão

# Gráfico de pares
pairs.panels(dados_cor,
             method = "pearson",
             hist.col = "#3498db",
             density = TRUE,
             ellipses = TRUE,
             smooth = TRUE,
             lm = TRUE,
             cor = TRUE,
             jiggle = FALSE,
             gap = 0,
             cex.cor = 1.2,
             main = "Relações entre Dimensões do Desenvolvimento Humano")

Resumo das Correlações

# Criar resumo das correlações
resumo_executivo <- as.data.frame(cor_matrix) %>%
  rownames_to_column("Variável") %>%
  pivot_longer(cols = -Variável, names_to = "Comparação", values_to = "Correlação") %>%
  filter(Variável != Comparação) %>%
  group_by(Variável) %>%
  summarise(
    `Maior Correlação` = max(Correlação),
    `Com` = Comparação[which.max(Correlação)],
    `Menor Correlação` = min(Correlação),
    `Média Correlações` = mean(Correlação)
  ) %>%
  arrange(desc(`Maior Correlação`))

# Tabela executiva
resumo_executivo %>%
  mutate(across(where(is.numeric), ~round(., 3))) %>%
  kable(align = c('l', 'c', 'l', 'c', 'c')) %>%
  kable_styling(bootstrap_options = c("striped", "hover"), 
                full_width = TRUE) %>%
  column_spec(1, bold = TRUE) %>%
  column_spec(2, color = "white", bold = TRUE,
              background = case_when(
                resumo_executivo$`Maior Correlação` > 0.8 ~ "#27ae60",
                resumo_executivo$`Maior Correlação` > 0.6 ~ "#f39c12",
                TRUE ~ "#e74c3c"
              )) %>%
  column_spec(4, color = "white", bold = TRUE,
              background = case_when(
                resumo_executivo$`Menor Correlação` > 0.5 ~ "#27ae60",
                resumo_executivo$`Menor Correlação` > 0.3 ~ "#f39c12",
                TRUE ~ "#e74c3c"
              )) %>%
  add_header_above(c(" " = 1, "Forte Relação" = 2, "Fraca Relação" = 1, "Média Geral" = 1), 
                   background = "#2c3e50", color = "white")
Forte Relação
Fraca Relação
Média Geral
Variável Maior Correlação Com Menor Correlação Média Correlações
Longevidade 0.834 Renda 0.441 0.660
Renda 0.834 Longevidade 0.544 0.733
Educação 0.820 Renda 0.704 0.745
Anos Estudo 0.711 Educação 0.441 0.565

Padrão de Correlação

Educação e Renda mostram forte correlação (0.820), indicando que municípios com melhor educação tendem a ter maior renda per capita.

Considerações

Síntese

Destaques

  • Alta correlação educação-renda (0.820)
  • Distribuições normais nas dimensões do IDH
  • Progresso consistente em múltiplas dimensões

Desafios

  • Desigualdade regional acentuada
  • Assimetria na renda (coef. 0.891)
  • Infraestrutura desigual entre regiões


Desafios Estratégicos

  1. Fortalecer políticas educacionais, notadamente do ensino fundamental
  2. Focalizar investimentos em infraestrutura básica nas regiões mais carentes
  3. Implementar programas (renda e investimentos empresariais) para reduzir assimetria regional e de renda

Referências Bibliográficas

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.

VENABLES, W. N.; SMITH, D. M.An Introduction to R. [S.l.]: R-Project, 2015. Disponível em: https://cran.r-project.org/doc/manuals/R-intro.pdf.

XIE, Yihui; DERVIEUX, Christophe; RIEDERER, Emily.R Markdown Cookbook>. [S.l.: s.n.], 2025. Disponível em: https://bookdown.org/yihui/rmarkdown-cookbook/. Acesso em: 30 out. 2025.