HDI)El Índice de Desarrollo Humano lo publica el Programa de las Naciones
Unidas para el Desarrollo (PNUD). Se basa en la idea de que
el desarrollo humano significa que las personas tienen una vida larga y
saludable, están bien informadas y gozan de un nivel de vida digno.
Más concretamente, estas tres dimensiones se miden con cuatro indicadores:
El índice se calcula normalizando y agregando estos tres indicadores.
En primer lugar, los indicadores se sitúan en la misma escala, de \(0\) a \(1\). Para ello, se fijan valores mínimos y máximos para cada indicador, y un país que se sitúe en el valor mínimo o por debajo de él recibe una puntuación de \(0\), y un país que se sitúe en el valor máximo o por encima de él recibe una puntuación de \(1\).
\[\mbox{Dimension index} = \frac{\mbox{actual value - minimum value}}{\mbox{maximum value - minimum value}}\]
En segundo lugar, se combinan los indicadores. Para ello, se calcula la media aritmética de los indicadores de conocimiento y, a continuación, se calcula la media geométrica de las tres dimensiones.
\[HDI = \frac{1}{3} IEV + \frac{1}{3} IE + \frac{1}{3} PIB\] donde,
El IDH resultante puntúa a cada país en un espectro de
\(0\) a \(1\). Abarca casi todos los países desde
1990. Además del índice en sí, también se utiliza para clasificar a los
países en grupos en función de su desarrollo.
«Our World in Data» es una plataforma integral que ofrece investigación y datos sobre una amplia gama de retos mundiales, como la salud, la educación, la pobreza, la violencia, el poder político, los derechos humanos y el impacto medioambiental. La plataforma es fruto de la colaboración entre investigadores de la Universidad de Oxford y el Global Change Data Lab, con el objetivo de presentar datos accesibles y comprensibles que ayuden a seguir las tendencias y progresos mundiales a largo plazo.
El sitio web presenta visualizaciones interactivas y artículos que
exploran cuestiones críticas como las causas de la muerte, la pobreza,
la educación y los Objetivos de Desarrollo Sostenible
(ODS). Los datos y la investigación están diseñados para
informar a la política, los medios de comunicación y el discurso
público, por lo que es un recurso valioso para cualquier persona
interesada en el desarrollo mundial y los cambios sociales a largo
plazo.
La plataforma hace hincapié en la transparencia, con todos los datos y códigos disponibles para uso público bajo licencias abiertas. También destaca la naturaleza interconectada de los retos mundiales, fomentando una perspectiva amplia de los factores que influyen en las condiciones de vida en el mundo.
Para más detalles, puede explorar el sitio directamente aquí.
Se toma como referencia, el año 2022.
| The Human Development Index (HDI) United Nations Development Programme (UNDP) |
|||
| Year: 2022 | |||
| Entity | Code | Year | Human.Development.Index |
|---|---|---|---|
| Source: https://ourworldindata.org/human-development-index | |||
Se filtra la base de datos y se remueven los casos agregados.
| The Human Development Index (HDI) United Nations Development Programme (UNDP) |
|||
| Aggregate data | |||
| Entity | Code | Year | Human.Development.Index |
|---|---|---|---|
| Source: https://ourworldindata.org/human-development-index | |||
Se genera un mapa geográfico interactivo utilizando la librería
plotly. Este mapa muestra el Índice de Desarrollo Humano
(HDI) de diferentes países.
# Se genera una escala de colores usando 'viridis'
colorscale <- scales::col_numeric(palette = viridis::inferno(204), domain = NULL)
map <- data %>%
plot_geo(locations = ~ Code,
color = ~ Human.Development.Index,
z = ~ Human.Development.Index,
text = ~ Entity,
colors = viridisLite::viridis(n = nrow(data), option = 'A', begin = 0, end = 1)) %>%
layout(title = "Countries by The Human Development Index in 2022",
geo = list(showland = FALSE,
showcountries = TRUE)) %>%
colorbar(title = 'HDI')
mapSiguiendo un enfoque similar al anterior, se genera un mapa geográfico interactivo que visualiza el Índice de Desarrollo Humano de 2022 para diferentes países. Utilizando algunas configuraciones adicionales como la proyección ortográfica, colores para lagos y ríos, y bordes personalizados para los países.
plot_geo() es la función que genera un mapa geográfico
interactivo.projection = list(type = 'orthographic', rotation = list(lon = -50, lat = 10, roll = 0)):
Configura la proyección del mapa como ortográfica (que da una apariencia
3D) y rota el mapa para centrarlo en una longitud de -50 y latitud de
10.# Se genera una escala de colores usando 'viridis'
colorscale <- scales::col_numeric(palette = viridis::inferno(204), domain = NULL)
map <- data %>%
plot_geo(locations = ~ Code,
color = ~ Human.Development.Index,
z = ~ Human.Development.Index,
text = ~ Entity,
marker = list(line = list(color = toRGB("#d1d1d1"),
width = 0.5)),
colors = viridisLite::viridis(n = nrow(data), option = 'A', begin = 0, end = 1)) %>%
layout(title = "Countries by The Human Development Index in 2022",
geo = list(showland = FALSE,
showcountries = TRUE,
showframe = TRUE,
showcoastlines = FALSE,
resolution = '300',
showlakes = TRUE,
lakecolor = '#c9d2e0',
showocean = TRUE,
oceancolor = "lightblue",
showrivers = TRUE,
rivercolor = '#99c0db',
projection = list(type = 'orthographic',
rotation = list(lon = -50,
lat = 10,
roll = 0))),
paper_bgcolor = "transparent") %>% # Color de fondo del área de trazado
colorbar(title = 'HDI')
mapEl Índice de Desarrollo Humano Ajustado (AIDH) o bien,
Augmented Human Development Index (AHDI); es una versión
ampliada del IDH que incluye dimensiones adicionales para
reflejar una evaluación más completa del desarrollo humano. Dependiendo
del contexto en que se utilice, puede incluir:
Desigualdad: El AHDI ajusta el IDH teniendo en
cuenta la desigualdad en la distribución de cada una de las tres
dimensiones originales (salud, educación e ingresos). Esto significa que
el índice refleja no solo el promedio de desarrollo en una sociedad,
sino también cómo se distribuye ese desarrollo entre diferentes grupos
dentro del país.
Factores ambientales: Algunas versiones del AHDI
incorporan dimensiones relacionadas con la sostenibilidad ambiental y el
acceso a recursos naturales.
Derechos y libertades: También se puede ampliar para
incluir aspectos relacionados con derechos humanos, libertades civiles y
participación política.
Se realiza una serie de transformaciones y filtrados sobre un
data.frame llamado idh_data. El resultado es una tabla que
contiene información sobre el Índice de Desarrollo Humano
(HDI), el Índice de Desarrollo Humano Ajustado
(AHDI), porcentaje de la población, y continente, para
varios países entre 1990 y 2022.
tidyr:::fill(Continent, .direction = "up"): rellena los
valores NA en la columna Continent hacia arriba, es decir,
copia el valor no vacío más cercano hacia los NA anteriores.filter(Code %nin% "" & Code %nin% 'OWID_WRL'):
elimina filas que no tienen un código válido o que corresponden a un
código global agregado (por ejemplo, ‘OWID_WRL’ podría representar datos
globales agregados, no específicos de un país).mutate(Labels = case_when(Entity %in% countries ~ Entity)):
crea una columna Labels que solo contiene el nombre de
la entidad si está en la lista de countries (los países
seleccionados).countries <- c("Vietnam", "China", "India", "Thailand", "Malaysia", "France", "Mexico", "Canada",
"Germany", "Japan", "Nigeria", "Indonesia", "Philippines", "United States", "Liechtenstein") # Some countries
tabla <- idh_data %>%
rename("HDI" = paste(names(.)[4]),
"AHDI" = paste(names(.)[5]),
"Population" = paste(names(.)[7])) %>%
arrange(Entity, Continent) %>%
#Se filtra a la población de 1990 - 2022
mutate(Continent = ifelse(nchar(.$Continent) > 0, .$Continent, NA)) %>%
# Se rellena la columna "Continent" hacia abajo
tidyr:::fill(Continent, .direction = "up") %>%
filter(Year >= 1990 & Year <= 2022) %>%
# Se quitan los datos agregados
filter(Code %nin% "" & Code %nin% 'OWID_WRL') %>%
group_by(Year) %>%
mutate(Percentage = Population / sum(.$Population, na.rm = TRUE) * 100) %>%
mutate(quant = ntile(HDI, 30),
NB = cut(HDI, breaks = getJenksBreaks(HDI, 5), include.lowest = TRUE, labels = FALSE)) %>%
mutate(Labels = case_when(Entity %in% countries ~ Entity),
Year = as.integer(Year)) %>%
ungroup() %>%
filter(!is.na(HDI) & !is.na(AHDI)) %>%
select(Entity, Code, Year, HDI, AHDI, Percentage, Continent, Labels)Se genera una visualización interactiva utilizando la librería
plotly. La gráfica muestra la relación entre el Índice de
Desarrollo Humano (HDI) y el Índice de Desarrollo Humano
Ajustado (AHDI) para diferentes países a lo largo del
tiempo (1990-2022). Los puntos en la gráfica son de diferentes tamaños,
colores y posiciones dependiendo de las variables seleccionadas, y se
incluyen etiquetas de texto para algunos países específicos. La
visualización es útil para analizar cómo han cambiado estos índices en
diferentes regiones y países a lo largo del tiempo.
group = ~ factor(Continent) y
legendgroup = ~ factor(Continent): Agrupan los puntos y las
leyendas por continente.frame = ~ Year: Se utiliza para crear una animación en
la que cada cuadro representa un año diferente.p <- plot_ly(tabla,
x = ~ AHDI,
y = ~ HDI,
size = ~ Percentage,
color = ~ factor(Continent),
group = ~ factor(Continent),
legendgroup = ~factor(Continent),
frame = ~ Year) %>%
add_trace(
text = ~ Entity,
hoverinfo = 'text',
type = 'scatter',
mode = 'markers',
marker = list(opacity = 0.5,
sizemode = 'diameter',
#Choosing the range of the bubbles' sizes:
#sizes = c(10, 50),
colors = viridisLite::viridis(n = 6, option = 'A', begin = 0.3, end = 0.8)
),
colors = viridisLite::viridis(n = 6, option = 'A', begin = 0.3, end = 0.8)
) %>%
layout(uniformtext = list(minsize = 5)) %>%
layout(margin = list(t = 100, l = 100, r = 100, b = 100),
title = list(text = md("Countries by The Human Development Index <br> United Nations Development Programme (UNDP) <br> Lag time: 1990 - 2022"),
font = list(size = 14,
xref = 'x',
yref = 'y',
x = 0.5,
y = 1.3)),
yaxis = list(title = "Human Development Index (HDI)"),
xaxis = list(title = "Augmented Human Development Index (AHDI)",
#range = c(0, 1),
type = "log"),
showlegend = TRUE) %>%
animation_opts(frame = 500, transition = 0, redraw = TRUE)
# Se anexan las etiquetas
p <- p %>%
add_text(text = ~ Labels,
showlegend = FALSE,
mode = 'text',
textposition = c('outside left'),
textfont = list(family = "sans serif",
colors = viridisLite::viridis(n = 5, option = 'A', begin = 0.3, end = 0.8))) Se cargan los datos desde archivos CSV y Excel:
idh_data: Carga los datos relacionados con el Índice de
Desarrollo Humano (HDI) y el Índice de Desarrollo Humano
Ajustado (AHDI) desde un archivo CSV.life_expextancy: Carga datos de esperanza de vida desde
otro archivo CSV.gdp: Carga datos del Producto Interno Bruto
(PIB) per cápita desde un archivo CSV adicional.regions: Carga datos de regiones desde un archivo Excel
utilizando la función read_xlsx() de la librería
readxl.idh_data <- read.csv(paste0(here::here(), "/Data/hdi-vs-augmented-hdi.csv"))
life_expextancy <- read.csv(paste0(here::here(), "/Data/life-expectancy-undp.csv"))
gdp <- read.csv(paste0(here::here(), "/Data/gross-national-income-per-capita-undp.csv"))
regions <- readxl::read_xlsx(paste0(here::here(), "/Data/Regions.xlsx"))Se cargan los datos para un análisis específico, filtrando por el año
2022 y combinando los diferentes conjuntos de datos en una
sola tabla (tabla). El resultado es un data frame que
contiene información sobre el HDI, el AHDI, la
población, la esperanza de vida, el PIB per cápita y la región de cada
país.
tabla <- idh_data %>%
rename("HDI" = paste(names(.)[4]),
"AHDI" = paste(names(.)[5]),
"Population" = paste(names(.)[7])) %>%
arrange(Entity, Continent) %>%
#Se filtra a la población de 1990 - 2022
mutate(Continent = ifelse(nchar(.$Continent) > 0, .$Continent, NA)) %>%
# Se rellena la columna "Continent" hacia abajo
tidyr:::fill(Continent, .direction = "up") %>%
filter(Year == "2022") %>%
# Se quitan los datos agregados
filter(Code %nin% "" & Code %nin% 'OWID_WRL') %>%
left_join(., regions %>% select(-c(Country, Entity)), by = c("Code" = "iso3c")) %>%
merge(., life_expextancy %>% select(-Entity), by = c("Code", "Year")) %>%
merge(., gdp %>% select(-Entity), by = c("Code", "Year")) La relación entre el PIB per cápita y la esperanza de vida al nacer es generalmente positiva, lo que significa que, en promedio, los países con un PIB per cápita más alto tienden a tener una mayor esperanza de vida al nacer.
Recursos Económicos: Un mayor PIB per cápita sugiere
que un país tiene más recursos económicos disponibles por persona. Esto
permite a los gobiernos y a los individuos invertir más en servicios
esenciales como la salud, la educación, la nutrición, y la
infraestructura, lo que contribuye a una vida más larga y
saludable.
Calidad de Vida: En países con mayores ingresos, las
personas suelen tener mejor acceso a atención médica de calidad, agua
potable, saneamiento, y una alimentación adecuada. Estos factores
reducen la mortalidad infantil y mejoran la salud general, lo que
prolonga la vida.
Inversión en Salud: Los países más ricos pueden
destinar más recursos en servicios de salud pública que tienen un
impacto directo en la longevidad.
Observaciones:
Curva Logarítmica: La relación no siempre es lineal,
especialmente en los países más ricos, donde incrementos adicionales en
el PIB per cápita tienen un impacto menor en la esperanza de vida. Esta
relación se suele representar mejor con una curva logarítmica, como se
indicó en el gráfico, donde la pendiente de la curva se aplana a medida
que el PIB per cápita aumenta.
Factores No Económicos: Aunque la relación es
fuerte, no es perfecta. Pueden existir diferentes factores como
culturales, sociales, ambientales y de política pública que también
juegan un papel importante en determinar la esperanza de vida, lo que
explica las variaciones entre países con niveles similares de PIB per
cápita.
A continuación, se analiza la relación entre el PIB per cápita y la esperanza de vida al nacer en el año 2022.
tabla %>%
ggplot(aes(x = Gross.national.income.per.capita,
y = Life.expectancy.at.birth,
size = Population,
color = region)) +
geom_point(alpha = 0.5, na.rm = TRUE) +
geom_smooth(method = "lm",
formula = y ~ log(x),
color = "orange",
alpha = 0.1,
se = FALSE) +
geom_text_repel(data = tabla %>% filter(Entity %in% countries),
aes(label = Entity),
color = "gray20",
size = 6,
direction = 'both',
nudge_x = 1,
min.segment.length = 0,
force_pull = 1,
force = 1) +
theme_minimal() +
theme(panel.grid.minor = element_blank(),
plot.background = element_rect(fill = "#e5e5e5", color = NA),
plot.margin = unit(c(1, 1, 1, 1), "cm"),
plot.title = element_text(size = 24, color = "gray10"),
plot.subtitle = element_text(size = 14, color = "gray40", vjust = -0.5),
plot.caption = element_text(size = 14, color = "gray40", face = "italic", hjust = 0),
legend.position = c(0.9, 0.4),
legend.key.size = unit(0.8, 'cm'),
legend.title = element_text(size = 18, face = "bold"),
legend.text = element_text(size = 16, color = "grey30"),
axis.text.y = element_text(size = 12, color = "gray30"),
axis.text.x = element_text(size = 12, color = "gray30", angle = 45),
axis.title = element_text(my_font, size = 16)
)+
scale_x_continuous(breaks = seq(0, max(tabla$Gross.national.income.per.capita), 10000), labels = dollar) +
scale_y_continuous(breaks = seq(50, 85, 5)) +
scale_size(range = c(1, 30)) +
scale_color_lancet(name = "Group:", na.translate = F) +
guides(size = FALSE) +
labs(x = "GDP per capital",
y = "Life expectancy",
title = "The relationship between Life Expectancy and GDP per capital in 2022",
subtitle = str_wrap("According to WHO definitions, Life Expectancy at reflects the overall mortality level of a population and it is defined as the average number of years that a newborn is expected to live if current mortality rates continue to apply."),
caption = "Data Source: https://ourworldindata.org") Bastian Herre and Pablo Arriagada (2023) - “The Human Development Index and related indices: what they are and what we can learn from them” Published online at OurWorldInData.org. Retrieved from: ‘https://ourworldindata.org/human-development-index’ [Online Resource]
Data, O. W. in, & Roser, M. (2024). OWID Homepage. Our World in Data. https://ourworldindata.org
| package | loadedversion | source |
|---|---|---|
| ape | 5.8-1 | CRAN (R 4.3.3) |
| BAMMtools | 2.1.12 | CRAN (R 4.3.3) |
| dplyr | 1.1.3 | CRAN (R 4.3.2) |
| DT | 0.33 | CRAN (R 4.3.3) |
| extrafont | 0.19 | CRAN (R 4.3.0) |
| forcats | 1.0.0 | CRAN (R 4.3.1) |
| ggplot2 | 3.4.3 | CRAN (R 4.3.1) |
| ggrepel | 0.9.3 | CRAN (R 4.3.1) |
| ggsci | 3.0.0 | CRAN (R 4.3.1) |
| googleVis | 0.7.3 | CRAN (R 4.3.3) |
| gt | 0.10.0 | CRAN (R 4.3.1) |
| Hmisc | 5.1-0 | CRAN (R 4.3.1) |
| htmltools | 0.5.8.9000 | Github (rstudio/htmltools@487aa0bed7313d7597b6edd5810e53cab0061198) |
| htmlwidgets | 1.6.4 | CRAN (R 4.3.3) |
| kableExtra | 1.3.4 | CRAN (R 4.3.1) |
| knitr | 1.45 | CRAN (R 4.3.2) |
| maptools | 1.1-9 | R-Forge (R 4.3.1) |
| mapview | 2.11.0 | CRAN (R 4.3.1) |
| pals | 1.8 | CRAN (R 4.3.2) |
| plotly | 4.10.2 | CRAN (R 4.3.1) |
| RColorBrewer | 1.1-3 | CRAN (R 4.3.0) |
| rgdal | 1.6-7 | CRAN (R 4.3.1) |
| scales | 1.3.0 | CRAN (R 4.3.2) |
| sf | 1.0-16 | CRAN (R 4.3.3) |
| showtext | 0.9-6 | CRAN (R 4.3.1) |
| showtextdb | 3.0 | CRAN (R 4.3.1) |
| sp | 2.2-0 | CRAN (R 4.3.3) |
| spdplyr | 0.4.0 | Github (mdsumner/spdplyr@e14dec9017a96c309065ab319da96c839cac6f58) |
| stringr | 1.5.0 | CRAN (R 4.3.1) |
| sysfonts | 0.8.8 | CRAN (R 4.3.1) |
| tibble | 3.2.1 | CRAN (R 4.3.1) |
| tidyr | 1.3.1 | CRAN (R 4.3.3) |
| WDI | 2.7.8 | CRAN (R 4.3.3) |
This
work by Diana Villasana
Ocampo is licensed under a
Creative
Commons Attribution 4.0 International License.