Skip to content

Herramienta para agregar y analizar indicadores de desarrollo de diversas fuentes de datos

License

Notifications You must be signed in to change notification settings

EL-BID/Agregador-de-indicadores

Repository files navigation

Agregador-de-indicadores

Descripción y contexto


El “Agregador de Indicadores” permite a académicos, multilaterales y otras organizaciones con interés en analizar indicadores de desarrollo, analizar y comparar indicadores de diferentes fuentes y con diversas unidades de medida. Con el esta herramienta es posible buscar con una función los indicadores del Numbers for Development, N4D del Banco Interamericano de Desarrollo, Banco Mundial, y de No Ceilings

Guía de instalación


Para utilizar la librería en R se debe ejecutar el siguiente codigo:

install.packages('devtools')
library(devtools)
install_github('EL-BID/Libreria-R-Numeros-para-el-Desarrollo')
install_github("arcuellar88/govdata360R")
install_github('EL-BID/Agregador-de-indicadores')
library(agregadorindicadores)

Guía de usuario


1. Cargar la libreria

library(agregadorindicadores)

2. Buscar indicadores

En este caso buscaremos indicadores relacionados con desempleo.

df<-ind_search(pattern="unemployment")
df[1:5,1:3]

src_id_ind                                                             indicator        api
1220       SL.UEM.TOTL.ZS   Unemployment, total (% of total labor force) (modeled ILO estimate) World Bank
1221    SL.UEM.TOTL.NE.ZS      Unemployment, total (% of total labor force) (national estimate) World Bank
1222    SL.UEM.TOTL.MA.ZS     Unemployment, male (% of male labor force) (modeled ILO estimate) World Bank
1223 SL.UEM.TOTL.MA.NE.ZS        Unemployment, male (% of male labor force) (national estimate) World Bank
1224    SL.UEM.TOTL.FE.ZS Unemployment, female (% of female labor force) (modeled ILO estimate) World Bank

Verificar las distintas fuentes de informacion

unique(df$api)
[1] "World Bank"              "Numbers for Development" "No Ceilings"   

Con una misma funciono obtuvimos datos de 3 fuentes distintas de informacion.

Para mayor información sobre la buúsqueda de indicadores ejecuta en R:

?ind_search

3. Descargar informacion de los indicadores

En este ejemplo vamos a descargar los datos de dos indicadores para dos países entre el 2014 y el 2015

data<-ai(indicator = c("SL.UEM.TOTL.FE.ZS","SOC_6562"), country = c("CO","PE"),startdate = 2014, enddate=2015)
 
 data[1:8,1:6]
  iso2  country year        src_id_ind  value                                                             indicator
1   CO Colombia 2015 SL.UEM.TOTL.FE.ZS 11.843 Unemployment, female (% of female labor force) (modeled ILO estimate)
2   CO Colombia 2014 SL.UEM.TOTL.FE.ZS 11.971 Unemployment, female (% of female labor force) (modeled ILO estimate)
3   PE     Peru 2015 SL.UEM.TOTL.FE.ZS  5.004 Unemployment, female (% of female labor force) (modeled ILO estimate)
4   PE     Peru 2014 SL.UEM.TOTL.FE.ZS  4.731 Unemployment, female (% of female labor force) (modeled ILO estimate)
5   CO Colombia 2014          SOC_6562 10.253                  Unemployment Rate, Female, No quint data, 25-49 age 
6   CO Colombia 2015          SOC_6562 10.285                  Unemployment Rate, Female, No quint data, 25-49 age 
7   PE     Peru 2014          SOC_6562  2.845                  Unemployment Rate, Female, No quint data, 25-49 age 
8   PE     Peru 2015          SOC_6562  2.926                  Unemployment Rate, Female, No quint data, 25-49 age 

Para mayor información sobre la descarga de datos de los indicadores ejecuta en R:

?ai

4. Ejemplo de visualización:

Usaremos la librera plotly para los ejemplos

library(plotly)
Plot one indicator "Agricultural land (% of land area)" for 4 countries in 2014
df<-ai(indicator = "AG.LND.AGRI.ZS", country = c("CO", "PE","ZA","US"), startdate = 2014)
df$fCountry <- factor(df$country)
p <- ggplot(df, aes(x=fCountry, y=value,colour=fCountry,hover = indicator))  +
  geom_point(shape=1) 
p <- ggplotly(p)
p

Plot two indicators from two different sources for one country and five years
df<-ai(indicator = c("NV.AGR.TOTL.ZS","LMW_403"), country = c("PE"), startdate = 2010)

ay <- list(
    tickfont = list(color = "red"),
    overlaying = "y",
    side = "right",
    title = "% of GDP"
  )
  p <- plot_ly() %>%
    add_lines(x = df[df$src_id_ind=="LMW_403",]$year, y = df[df$src_id_ind=="LMW_403",]$value, name = "GDP: (US$ mill.) - Numbers for Development") %>%
    add_lines(x = df[df$src_id_ind=="NV.AGR.TOTL.ZS",]$year, y = df[df$src_id_ind=="NV.AGR.TOTL.ZS",]$value, name = "Agriculture, value added (% of GDP) -  World Bank", yaxis = "y2") %>%
    layout(
      title = "Comparación de dos indicadores", yaxis2 = ay,
      xaxis = list(title="Year")
    )
    
   p

 

5. Ranking de indicadores

El agregador de indicadores ofrece una funcionalidad adicional para normalizar los indicadores y hacer un raking por país y por año. La normalización consiste en comparar el valor del indicador de cada país contra la media y la desviación de ese mismo indicador para todos los países para cada año. Para cada indicador, país y año se calcula el zscore de la siguiente manera:

 

  Una de las aplicaciones de esta normalizacion es comparar un conjunto de indicadores en un mismo gráfico. En el siguiente ejemplo se gráfico se muestran más de 1500 indicadores relacionados con género para 8 países para el 2014. En el gráfico se puede ver que Somalia e iraq tienen muchos más indicadores debajo de la media que el resto de países.

   

Puedes ver una explicación más detallada de esta función en el /ejemplos/normalización El paso a paso de este ejemplo lo pueden ver en /ejemplos/ranking_plot.R

Para mayor información sobre la normalizacioón de datos ejecuta en R:

?ai_normalize

6. Cache

Para mejorar el desempeño de la herramienta, esta cuenta con una pequeña base de datos de los metadatos de los indicadores que llamamos caché. Esta fue actualizada por última vez el 1 de Noviembre del 2017. Para utilizar una versión más reciente se puede utilizar el siguiente código:

library(agregadorindicadores)

# Descargamos un nuevo cache en inglés
cache <- ai_cache(lang='en') 

# Buscamos indicadores utilizando el cache
df<-ind_search(pattern="poverty", cache=cache)

Para ver los datos disponibles en el caché se utiliza el siguiente código

library(agregadorindicadores)
str(ai_cachelist, max.level = 1)
List of 3
 $ countries_wb :'data.frame':	304 obs. of  14 variables:
 $ countries_idb:'data.frame':	26 obs. of  11 variables:
 $ indicators   :'data.frame':	19496 obs. of  11 variables:

Dependencias

El agregador de indicadores utiliza las siguientes librerias de R:

  • dplyr, tidyr , sqldf y gdata se utilizan para manipular los datos (merge, join, agregar columnas, filtrar, etc.)
  • wbstats , WDI se utilizan para conectarse con el API del Banco Mundial
  • httr , jsonlite se utilizan para leer los resultados del llamodo a los distintos APIs

Adicionalmente se utiliza otras librerias de github:

Cómo contribuir y Código de conducta

A este repositorio no se le está dando actualmente mantenimiento. Si estás interesado en contribuir al repositorio, ya sea agregando fuentes de datos nuevas, dando mantenimiento o solucionando bugs, escríbenos a code.iadb.org.

CONTRIBUTING link

Algunas áreas de mejora de esta librería son:

  1. Agregar filtros a la búsqueda de indicadores
  2. Verificar duplicados entre distintas fuentes de información
  3. Mejorar el tiempo de carga par World Bank (reduciendo el número de llamadas al api)link

Autor/es


Alejandro Rodríguez Cuéllar

Licencia


El software de este repositorio está licenciado bajo una licencia GNU General Public License v3.0.

La documentación de soporte y uso, incluyendo este archivo README.md y el contenido en la carpeta "docs" está licenciado bajo la licencia Creative Commons.

Referencias

Esta herramienta está basada en las siguientes dos herramientas:

  • wbstats de Jesse Piburn
  • WDI de Vincent Arel-Bundock

About

Herramienta para agregar y analizar indicadores de desarrollo de diversas fuentes de datos

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages