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:

#recordad que los paquetes tienen que estar previamente instalados
library(dplyr)
library(tidyr)
library(ggplot2)
library(countrycode)
library(readxl)
library(janitor)

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.

Figura 12.1: Metodología del IDH

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.

Descarga

Para descargar el archivo que necesitas, tienes dos opciones:

  1. Descargarlo con R mediante la función download.file() y acto seguido crear el objeto hhdata.
download.file("https://www.jordimas.cat/files/2018_all_indicators.xlsx", 
              "2018_all_indicators.xlsx")
hddata <- read_xlsx("2018_all_indicators.xlsx")
  1. 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 objeto hhdata:
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>, …

Exercise 12.1 (Exploración inicial) Examinad el marco de datos tecleando hddata_tidy y visualizad la estructura con glimpse(hddata_tidy).

  1. ¿Cuántas variables y cuántas observaciones contiene el marco de datos?
  2. ¿Cuál es la unidad de observación de los datos?
  3. Visualizad la lista de variables con la función names(hddata_tidy). ¿Sabríais intuir cuáles de estas variables conforman el IDH?
  4. Observad el resto de variables. ¿Qué otras podrían ilustrar el concepto de desarrollo humano?

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 llamaremos GNI.
  • A los años de escolarización esperados (expected_years_of_schooling_years) los llamaremos E1.
  • A la media de años de escolarización (mean_years_of_schooling_years) la llamaremos E2.
  • Y a la esperanza de vida al nacer (life_expectancy_at_birth_years) la llamaremos LE.

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).

Tabla 12.1: Primeros diez lugares del ranking del IDH en 2017
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.

Tabla 12.2: Últimos diez puestos del ranking del IDH en 2017
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