Giter VIP home page Giter VIP logo

agregador-de-indicadores's Introduction


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

agregador-de-indicadores's People

Contributors

arcuellar88 avatar jldelda avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.