O objetivo deste tutorial é reproduzir o IDHM compreendendo as etapas de aglutinação presentes no índice.
Desenvolvimento humano é o processo de ampliação das liberdades das pessoas com relação às suas capacidades e oportunidades. Pode ser compreendido como o desenvolvimento das pessoas por meio da construção de capacidades humanas, com a participação ativa dos indivíduos no centro dos processos que possibilitam a valorização e a melhora da qualidade de suas vidas.
A abordagem do desenvolvimento humano coloca as pessoas no centro da análise do bem-estar, perspectiva oposta ao que sugere a ideia de desenvolvimento ancorada no crescimento econômico, redefinindo a maneira como pensamos e lidamos com o desenvolvimento em diferentes escalas territoriais. A popularização desta abordagem se deu com a criação e adoção do Índice de Desenvolvimento Humano (IDH) como medida do grau de desenvolvimento humano de um país, em alternativa ao Produto Interno Bruto (PIB), que à época era a principal medida de desenvolvimento.
O crescimento econômico de uma sociedade, de forma isolada, não se traduz automaticamente em qualidade de vida e, muitas vezes, o que se observa é um reforço das desigualdades. É preciso que este crescimento seja entendido como parte do processo de expansão das liberdades e transformado em conquistas concretas para as pessoas: crianças mais saudáveis, educação universal e de qualidade, ampliação da participação política dos cidadãos, preservação ambiental, equilíbrio da renda e oportunidades para todas as pessoas, maior liberdade de expressão, entre outras.
Fonte: Atlas do Desenvolvimento Humano
Defina o diretório para o local onde está a base de dados:
# setwd("insira o caminho")
Importe a de dados fornecida. Todos os dados estão disponíveis no Atlas do Desenvolvimento Humano: http://www.atlasbrasil.org.br/. Uma versão organizada dos dados está disponível aqui.
options(scipen = 999) # opção para não exibir números científicos
# leitura das bibliotecas
library(readxl)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
# leitura dos dados
atlas_mg <- read_excel("atlas_mg.xlsx")
O pacote DataMaid é uma ferramenta valiosa no ambiente R para a verificação, limpeza e organização eficiente de conjuntos de dados. Desenvolvido com o objetivo de aprimorar a qualidade e confiabilidade dos dados, o DataMaid oferece funcionalidades que auxiliam na identificação de valores ausentes, erros de digitação, inconsistências e outras anomalias nos dados. Além disso, permite a criação de relatórios detalhados, facilitando a compreensão das estruturas e conteúdo dos datasets, promovendo assim uma exploração mais assertiva. Com suas capacidades automatizadas de geração de sumários e gráficos descritivos, o DataMaid é uma ferramenta para cientistas de dados e analistas que desejam garantir a qualidade e integridade dos seus dados, tornando todo o processo de análise mais eficiente e confiável.
library(dataMaid)
##
## Attaching package: 'dataMaid'
## The following object is masked from 'package:dplyr':
##
## summarize
makeDataReport(atlas_mg,replace = TRUE)
## The default of 'doScale' is FALSE now for stability;
## set options(mc_doScale_quiet=TRUE) to suppress this (once per session) message
## Data report generation is finished. Please wait while your output file is being rendered.
##
## Is dataMaid_atlas_mg.docx open on your computer? Please close it as fast as possible to avoid problems!
atlas_mg$i.longev <- (atlas_mg$`Esperança de vida ao nascer 2010`-25)/(85-25)
# Apresentando ranking
arrange(atlas_mg,desc(atlas_mg$i.longev))[1:10,c("Nome do Município","i.longev")]
## # A tibble: 10 × 2
## `Nome do Município` i.longev
## <chr> <dbl>
## 1 Passos 0.886
## 2 Nova Lima 0.885
## 3 Tiradentes 0.885
## 4 Uberlândia 0.885
## 5 Itajubá 0.884
## 6 Viçosa 0.883
## 7 Barbacena 0.881
## 8 Guaxupé 0.880
## 9 Lavras 0.88
## 10 Perdizes 0.88
arrange(atlas_mg,(atlas_mg$i.longev))[1:10,c("Nome do Município","i.longev")]
## # A tibble: 10 × 2
## `Nome do Município` i.longev
## <chr> <dbl>
## 1 Santa Helena de Minas 0.723
## 2 Divisa Alegre 0.723
## 3 Palmópolis 0.738
## 4 Pedra Bonita 0.740
## 5 Setubinha 0.743
## 6 Pingo-d'Água 0.744
## 7 Felisburgo 0.744
## 8 Imbé de Minas 0.744
## 9 Congonhas do Norte 0.746
## 10 Mata Verde 0.749
Fazendo um mapa dessa dimensão.
library(geobr)
mun <- read_municipality(code_muni = "MG", year = 2010,showProgress = FALSE)
#Juntar coordenadas para criar o mapa
base_mapa<- left_join(atlas_mg, mun , by = 'code_muni')
Agora, vamos plotar os resultados em um mapa estático.
# Carregar bibliotecas
library(ggplot2)
library(plotly)
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library(ggspatial)
# Criar o gráfico ggplot
ggplot_obj_1 <- base_mapa %>%
ggplot() +
geom_sf(data = base_mapa$geom, aes(fill = base_mapa$i.longev,
text = paste("Município: ", base_mapa$nome_mun, "<br>IDHM Longevidade: ", base_mapa$i.longev))) +
scale_fill_viridis_c(option = 15, begin = 0.2, end = 0.8, name = 'IDHM Longevidade', direction = -1) +
annotation_scale(location = "bl", width_hint = 0.3) +
annotation_north_arrow(location = "bl", which_north = "true",
pad_x = unit(0.3, "in"), pad_y = unit(0.3, "in"),
style = north_arrow_fancy_orienteering) +
theme(panel.grid = element_line(colour = "transparent"),panel.background = element_blank(),axis.text = element_blank(),axis.ticks = element_blank()) +
labs(title = "IDHM - Longevidade - municípios de Minas Gerais - 2010", subtitle = "",caption = 'Fonte: FJP/IPEA/PNUD. Elaboração própria', size = 8)
ggplot_obj_1
# Construindo o primeiro sub-índice
atlas_mg$si.escol <- (atlas_mg$`% de 18 anos ou mais de idade com ensino fundamental completo 2010`-0)/(100-0)
# Calculando o segundo sub-índice com uma média aritmética
atlas_mg$si.fluxo <- rowMeans(atlas_mg[,9:12])/100
# Aglutinando os dois sub-índices com uma média geométrica (peso 2 para o indicador de fluxo 1 para o de escolaridade)
atlas_mg$i.educ <- (atlas_mg$si.escol * atlas_mg$si.fluxo^2)^(1/3)
# Apresentando ranking
arrange(atlas_mg,desc(atlas_mg$i.educ))[1:10,c("Nome do Município","i.educ")]
## # A tibble: 10 × 2
## `Nome do Município` i.educ
## <chr> <dbl>
## 1 Timóteo 0.779
## 2 Belo Horizonte 0.774
## 3 Montes Claros 0.773
## 4 Itajubá 0.762
## 5 Varginha 0.756
## 6 Nova Lima 0.755
## 7 Uberlândia 0.754
## 8 Lavras 0.753
## 9 Juiz de Fora 0.751
## 10 João Monlevade 0.746
arrange(atlas_mg,(atlas_mg$i.educ))[1:10,c("Nome do Município","i.educ")]
## # A tibble: 10 × 2
## `Nome do Município` i.educ
## <chr> <dbl>
## 1 Araponga 0.398
## 2 Sericita 0.430
## 3 Fruta de Leite 0.437
## 4 Senhora do Porto 0.438
## 5 Nacip Raydan 0.447
## 6 Catuji 0.449
## 7 Setubinha 0.451
## 8 Itaipé 0.452
## 9 Ladainha 0.454
## 10 Novo Oriente de Minas 0.459
#Juntar coordenadas para criar o mapa
library(dplyr)
base_mapa2<- left_join(atlas_mg, mun , by = 'code_muni')
# Criar o gráfico ggplot
ggplot_obj_2 <- base_mapa2 %>%
ggplot() +
geom_sf(data = base_mapa2$geom, aes(fill = base_mapa2$i.educ,
text = paste("Município: ", base_mapa2$nome_mun, "<br>IDHM Educação: ", base_mapa2$i.educ))) +
scale_fill_viridis_c(option = 15, begin = 0.2, end = 0.8, name = 'IDHM Educação', direction = -1) +
annotation_scale(location = "bl", width_hint = 0.3) +
annotation_north_arrow(location = "bl", which_north = "true",
pad_x = unit(0.3, "in"), pad_y = unit(0.3, "in"),
style = north_arrow_fancy_orienteering) +
theme(panel.grid = element_line(colour = "transparent"),panel.background = element_blank(),axis.text = element_blank(),axis.ticks = element_blank()) +
labs(title = "IDHM - Educação - municípios de Minas Gerais - 2010", subtitle = "",caption = 'Fonte: FJP/IPEA/PNUD. Elaboração própria', size = 8)
ggplot_obj_2
atlas_mg$i.renda <- (log(atlas_mg$`Renda per capita 2010`)-log(8))/(log(4033)-(log(8))) # usa o logaritmo!!!
# Apresentando ranking
arrange(atlas_mg,desc(atlas_mg$i.renda))[1:10,c("Nome do Município","i.renda")]
## # A tibble: 10 × 2
## `Nome do Município` i.renda
## <chr> <dbl>
## 1 Nova Lima 0.864
## 2 Belo Horizonte 0.841
## 3 Juruaia 0.794
## 4 Lagoa Santa 0.790
## 5 Juiz de Fora 0.784
## 6 Jequitibá 0.777
## 7 Uberlândia 0.776
## 8 Uberaba 0.772
## 9 Caxambu 0.770
## 10 Poços de Caldas 0.768
arrange(atlas_mg,(atlas_mg$i.renda))[1:10,c("Nome do Município","i.renda")]
## # A tibble: 10 × 2
## `Nome do Município` i.renda
## <chr> <dbl>
## 1 São João das Missões 0.502
## 2 Santo Antônio do Retiro 0.504
## 3 Bonito de Minas 0.514
## 4 Cristália 0.518
## 5 Frei Lagonegro 0.519
## 6 Pai Pedro 0.520
## 7 Monte Formoso 0.523
## 8 Ninheira 0.525
## 9 Santa Helena de Minas 0.531
## 10 Catuji 0.534
#Juntar coordenadas para criar o mapa
library(dplyr)
base_mapa3<- left_join(atlas_mg, mun , by = 'code_muni')
# Criar o gráfico ggplot
ggplot_obj_3 <- base_mapa3 %>%
ggplot() +
geom_sf(data = base_mapa3$geom, aes(fill = base_mapa3$i.renda ,
text = paste("Município: ", base_mapa3$nome_mun, "<br>IDHM Renda: ", base_mapa3$i.renda ))) +
scale_fill_viridis_c(option = 15, begin = 0.2, end = 0.8, name = 'IDHM Renda', direction = -1) +
annotation_scale(location = "bl", width_hint = 0.3) +
annotation_north_arrow(location = "bl", which_north = "true",
pad_x = unit(0.3, "in"), pad_y = unit(0.3, "in"),
style = north_arrow_fancy_orienteering) +
theme(panel.grid = element_line(colour = "transparent"),panel.background = element_blank(),axis.text = element_blank(),axis.ticks = element_blank()) +
labs(title = "IDHM - Renda - municípios de Minas Gerais - 2010", subtitle = "",caption = 'Fonte: FJP/IPEA/PNUD. Elaboração própria', size = 8)
ggplot_obj_3
atlas_mg$idhm <- (atlas_mg$i.longev * atlas_mg$i.educ * atlas_mg$i.renda)^(1/3)
# Apresentando ranking
arrange(atlas_mg,desc(atlas_mg$idhm))[1:10,c("Nome do Município","idhm")]
## # A tibble: 10 × 2
## `Nome do Município` idhm
## <chr> <dbl>
## 1 Nova Lima 0.833
## 2 Belo Horizonte 0.823
## 3 Uberlândia 0.803
## 4 Itajubá 0.803
## 5 Varginha 0.795
## 6 Lagoa Santa 0.795
## 7 Lavras 0.794
## 8 Poços de Caldas 0.793
## 9 Juiz de Fora 0.792
## 10 Pouso Alegre 0.789
arrange(atlas_mg,(atlas_mg$idhm))[1:10,c("Nome do Município","idhm")]
## # A tibble: 10 × 2
## `Nome do Município` idhm
## <chr> <dbl>
## 1 São João das Missões 0.564
## 2 Setubinha 0.564
## 3 Araponga 0.565
## 4 Frei Lagonegro 0.566
## 5 Monte Formoso 0.568
## 6 Ladainha 0.569
## 7 Bonito de Minas 0.569
## 8 Catuji 0.569
## 9 Fruta de Leite 0.574
## 10 Itaipé 0.580
#Juntar coordenadas para criar o mapa
library(dplyr)
base_mapa4<- left_join(atlas_mg, mun , by = 'code_muni')
# Criar o gráfico ggplot
ggplot_obj_4 <- base_mapa4 %>%
ggplot() +
geom_sf(data = base_mapa4$geom, aes(fill = base_mapa4$idhm ,
text = paste("Município: ", base_mapa4$nome_mun, "<br>IDHM: ", base_mapa4$idhm ))) +
scale_fill_viridis_c(option = 15, begin = 0.2, end = 0.8, name = 'IDHM', direction = -1) +
annotation_scale(location = "bl", width_hint = 0.3) +
annotation_north_arrow(location = "bl", which_north = "true",
pad_x = unit(0.3, "in"), pad_y = unit(0.3, "in"),
style = north_arrow_fancy_orienteering) +
theme(panel.grid = element_line(colour = "transparent"),panel.background = element_blank(),axis.text = element_blank(),axis.ticks = element_blank()) +
labs(title = "IDHM - municípios de Minas Gerais - 2010", subtitle = "",caption = 'Fonte: FJP/IPEA/PNUD. Elaboração própria', size = 8)
ggplot_obj_4