12 Exploración
Para explicar todos los pasos que hay que seguir a la hora de construir un índice, utilizaremos de ejemplo el IDH, creado por las Naciones Unidas y que se ha convertido en uno de los índices más utilizados y conocidos en el ámbito del desarrollo. Los orígenes del IDH se remontan a los años ochenta, cuando economistas como Mahbub ul Haq y Amartya Sen empezaron a cuestionar el producto interior bruto (PIB) como medida del desarrollo (Sen, 1981, 1985; UNDP, 1990). Defendían que el desarrollo tenía que ir más allá de cuestiones estrictamente económicas y debía tener en cuenta otros aspectos fundamentales de las capacidades de una persona como la educación o la salud. De esta nueva manera de pensar el desarrollo de una forma más «humana», salió el IDH, que añadió otras dos dimensiones a la dimensión económica: el acceso a la educación y una vida larga y saludable. En este apartado haremos una exploración del índice. Estos son los paquetes de R que utilizaremos:
12.1 Las dimensiones del IDH
El IDH, pues, consta de tres dimensiones conceptuales. Su operacionalización se encuentra resumida en la Figura 12.1, que encontraréis también en las notas técnicas de la web del Programa de las Naciones Unidas para el Desarrollo (PNUD, conocido como UNDP en inglés).
Para medir la dimensión económica, utilizan la renta nacional bruta (RNB, GNI en inglés), una medida muy parecida al PIB.
El acceso a la educación se mide con dos indicadores: la media de años en la escuela para adultos de 25 años o más y los años esperados de educación para niños en edad de entrada a la escuela.
Finalmente, la vida larga y saludable se mide con la esperanza de vida al nacer.
Los datos que se recogen para crear el IDH los encontraréis en la página web del PNUD (UNDP, 2018). A lo largo de este módulo utilizaremos los datos de 2018, que pueden descargarse en formato Excel, aunque es posible que en la web del PNUD podáis encontrar datos más recientes. En el siguiente código hemos descargado el archivo y hemos creado un objeto de R mediante la función read_xlsx()
del paquete readxl. Le hemos dado el nombre de hddata
, cuyas primeras observaciones podemos ver a continuación.
Para descargar el archivo que necesitas, tienes dos opciones:
- Descargarlo con R mediante la función
download.file()
y acto seguido crear el objetohhdata
.
download.file("https://www.jordimas.cat/files/2018_all_indicators.xlsx",
"2018_all_indicators.xlsx")
hddata <- read_xlsx("2018_all_indicators.xlsx")
- Es possible que la función
download.file()
no funcione en algunos ordinadores. Si es tu caso, descarga el archivo manualmente y ubícalo en tu directorio de trabajo. A continuación, solo será necesario que transformes el archivo en objetohhdata
:
hddata <- read_xlsx("2018_all_indicators.xlsx")
Recuerda haber cargado los paquetes previamente antes de ejecutar el código.
# A tibble: 25,636 × 34
dimension indicator_id indicator_name iso3 country_name `1990` `1991` `1992`
<chr> <dbl> <chr> <chr> <chr> <dbl> <dbl> <dbl>
1 Composit… 146206 HDI rank AFG Afghanistan NA NA NA
2 Composit… 146206 HDI rank ALB Albania NA NA NA
3 Composit… 146206 HDI rank DZA Algeria NA NA NA
4 Composit… 146206 HDI rank AND Andorra NA NA NA
5 Composit… 146206 HDI rank AGO Angola NA NA NA
6 Composit… 146206 HDI rank ATG Antigua and… NA NA NA
7 Composit… 146206 HDI rank ARG Argentina NA NA NA
8 Composit… 146206 HDI rank ARM Armenia NA NA NA
9 Composit… 146206 HDI rank AUS Australia NA NA NA
10 Composit… 146206 HDI rank AUT Austria NA NA NA
# ℹ 25,626 more rows
# ℹ 26 more variables: `1993` <dbl>, `1994` <dbl>, `1995` <dbl>, `1996` <dbl>,
# `1997` <dbl>, `1998` <dbl>, `1999` <dbl>, `2000` <dbl>, `2001` <dbl>,
# `2002` <dbl>, `2003` <dbl>, `2004` <dbl>, `2005` <dbl>, `2006` <dbl>,
# `2007` <dbl>, `2008` <dbl>, `2009` <dbl>, `2010` <dbl>, `2011` <dbl>,
# `2012` <dbl>, `2013` <dbl>, `2014` <dbl>, `2015` <dbl>, `2016` <dbl>,
# `2017` <dbl>, `9999` <dbl>
12.2 Exploración inicial del marco de datos
El marco de datos hddata
contiene una columna por cada año de datos desde 1990 hasta 2017. Cuando trabajamos con R, nos es mucho más cómodo que cada columna sea una variable, puesto que así podemos manipular más fácilmente los datos. Como sabéis, los años (1990, 1991…) no son una variable, sino que son los valores que puede tomar la variable año. Todos los años, pues, tendrían que formar parte de una sola columna year que represente la variable año. También observamos que la variable indicator_name no contiene valores, sino nombres de variables. En el siguiente código hemos limpiado el marco de datos de forma que todas las columnas sean variables, y todas las hileras observaciones. De este proceso, ha salido el objeto hddata_tidy
, que observamos a continuació.
hddata_tidy <- hddata %>%
select(indicator_name:last_col()) %>% #eliminamos les primeras dos columnas
pivot_longer(`1990`:`9999`, names_to = "year",
values_to = "value", values_drop_na = TRUE) %>% #creamos la variable year
filter(year != 9999) %>% #eliminamos el valor 9999
spread(indicator_name, value) %>% #ponemos los valores de 'indicator_name' como variables
clean_names("snake") %>% #simplificamos los nombres de variables
mutate(year = as.numeric(year)) #pasamos los años a vector numérico
hddata_tidy
## # A tibble: 5,460 × 139
## iso3 country_name year adjusted_net_savings_percen…¹ adolescent_birth_rat…²
## <chr> <chr> <dbl> <dbl> <dbl>
## 1 AFG Afghanistan 1990 NA 161.
## 2 AFG Afghanistan 1991 NA NA
## 3 AFG Afghanistan 1992 NA NA
## 4 AFG Afghanistan 1993 NA NA
## 5 AFG Afghanistan 1994 NA NA
## 6 AFG Afghanistan 1995 NA 164.
## 7 AFG Afghanistan 1996 NA NA
## 8 AFG Afghanistan 1997 NA NA
## 9 AFG Afghanistan 1998 NA NA
## 10 AFG Afghanistan 1999 NA NA
## # ℹ 5,450 more rows
## # ℹ abbreviated names: ¹adjusted_net_savings_percent_of_gni,
## # ²adolescent_birth_rate_births_per_1_000_women_ages_15_19
## # ℹ 134 more variables:
## # antenatal_care_coverage_at_least_one_visit_percent <dbl>,
## # carbon_dioxide_emissions_kg_per_2011_ppp_of_gdp <dbl>,
## # carbon_dioxide_emissions_per_capita_tonnes <dbl>, …
Podéis ver que el marco de datos hddata_tidy
contiene muchas variables que no necesitamos. Una de las primeras cosas que tenemos que hacer es simplificarlo para que tenga unas dimensiones más reducidas a fin de poder trabajarlo mejor a la hora de construir el IDH. Para tal propósito, hemos creado el nuevo marco de datos hdi, que filtra los datos por el año más actual, mantiene solo algunas variables y ordena los países según su IDH en 2017, el último año del que tenemos datos disponibles. Hemos dejado dos variables principales: países (country
) e IDH (IDH
). Y a continuación también hemos conservado las variables que conforman el IDH. A todas les hemos dado un nombre más simple:
- Al ingreso nacional bruto per cápita (
gross_national_income_gni_por_capita_2011_ppp
) lo llamaremosGNI
. - A los años de escolarización esperados (
expected_years_of_schooling_years
) los llamaremosE1
. - A la media de años de escolarización (
mean_years_of_schooling_years
) la llamaremosE2
. - Y a la esperanza de vida al nacer (
life_expectancy_at_birth_years
) la llamaremosLE
.
Además, hemos usado el paquete countrycode
para poner los nombres del marco de datos en castellano.
#cambiad hdi por hdi_prueba cuando hagáis las modificaciones
#Nota: No os preocupéis por los warnings que aparecen en la consola
hdi <- hddata_tidy %>% #marco de datos
filter(year == max(year)) %>% #filtramos por el año más alto
arrange(desc(human_development_index_hdi)) %>% #ordenamos por la variable idh
transmute(P = 1:n(), #creamos una variable con la posición del país
country = countrycode(country_name, "country.name.en", "cldr.name.es"),
IDH = human_development_index_hdi,
GNI = gross_national_income_gni_per_capita_2011_ppp,
E1 = expected_years_of_schooling_years,
E2 = mean_years_of_schooling_years,
LE = life_expectancy_at_birth_years) %>%
filter(IDH != is.na(IDH)) #eliminamos las observaciones con NA
#Llenamos los NA. A partir de 1 de junio de 2018 Suazilandia pasa a llamarse Reino de Esuatini.
hdi$country[which(is.na(hdi$country))] <- c("Micronesia", "Reino de Esuatini")
12.3 El IDH: vista previa
En la Tabla 12.1, observamos el resultado de head(hdi, 10)
, que muestra los países mejor clasificados en el ranking del IDH en 2017. En primer lugar, encontramos Noruega, con un IDH de 0.953, seguida de Suiza, Australia y Irlanda. Todos estos países tienen cifras muy altas en sus indicadores: un GNI per cápita alto (columna GNI), unos años de educación esperada elevados (columna E1), una media de años en la escuela elevada (columna E2) y una esperanza de vida alta (columna LE).
P | country | IDH | GNI | E1 | E2 | LE |
---|---|---|---|---|---|---|
1 | Noruega | 0.953 | 68012 | 17.9 | 12.6 | 82.3 |
2 | Suiza | 0.944 | 57625 | 16.2 | 13.4 | 83.5 |
3 | Australia | 0.939 | 43560 | 22.9 | 12.9 | 83.1 |
4 | Irlanda | 0.938 | 53754 | 19.6 | 12.5 | 81.6 |
5 | Alemania | 0.936 | 46136 | 17.0 | 14.1 | 81.2 |
6 | Islandia | 0.935 | 45810 | 19.3 | 12.4 | 82.9 |
7 | RAE de Hong Kong (China) | 0.933 | 58420 | 16.3 | 12.0 | 84.1 |
8 | Suecia | 0.933 | 47766 | 17.6 | 12.4 | 82.6 |
9 | Singapur | 0.932 | 82503 | 16.2 | 11.5 | 83.2 |
10 | Países Bajos | 0.931 | 47900 | 18.0 | 12.2 | 82.0 |
En cambio, en la parte inferior de la tabla nos encontramos lo contrario, como vemos en la Tabla 12.2, mediante el código tail(hdi, 10)
. Todos los países con valores bajos en su IDH tienen un GNI bajo, unos niveles de educación inferiores y una esperanza de vida baja. Níger es el último país de la lista. Tiene un GNI inferior a los 1.000 dólares/año, los jóvenes del país pasan muy pocos años en la escuela y la población vive de media poco más de sesenta años.
P | country | IDH | GNI | E1 | E2 | LE |
---|---|---|---|---|---|---|
180 | Mozambique | 0.437 | 1093 | 9.7 | 3.5 | 58.9 |
181 | Liberia | 0.435 | 667 | 10.0 | 4.7 | 63.0 |
182 | Mali | 0.427 | 1953 | 7.7 | 2.3 | 58.5 |
183 | Burkina Faso | 0.423 | 1650 | 8.5 | 1.5 | 60.8 |
184 | Sierra Leona | 0.419 | 1240 | 9.8 | 3.5 | 52.2 |
185 | Burundi | 0.417 | 702 | 11.7 | 3.0 | 57.9 |
186 | Chad | 0.404 | 1750 | 8.0 | 2.3 | 53.2 |
187 | Sudán del Sur | 0.388 | 963 | 4.9 | 4.8 | 57.3 |
188 | República Centroafricana | 0.367 | 663 | 7.2 | 4.3 | 52.9 |
189 | Níger | 0.354 | 906 | 5.4 | 2.0 | 60.4 |