Series de Tiempo: datos como servicio

Agustín Benassi
Datos Argentina
Published in
7 min readDec 14, 2017

--

Ya publicamos en Datos Argentina la Base de Series de Tiempo de la Administración Pública Nacional. Ahora damos un paso más: lanzamos la API de Series de Tiempo y te contamos cómo utilizarla y por qué potencia el uso de series en todo tipo de aplicaciones.

¿Por qué un servicio web?

En septiembre de 2017, en conjunto con la Subsecretaría de Programación Macroeconómica del Ministerio de Hacienda, publicamos una base unificada de series de tiempo de distintos organismos de gobierno.

Desde entonces te podés descargar una gran tabla que se actualiza a diario, con todos los datos disponibles a la vez: este fue el primer paso para facilitar el acceso a una variedad de indicadores estructurados de la misma manera en un sólo lugar.

Sin embargo, hay otros casos de uso que la descarga completa no facilita:

  • Tener sólo un recorte de los datos, y mantenerlo actualizado fácilmente.
  • Contar con las series elegidas aplicando distintas transformaciones básicas y repetitivas (cambios de frecuencia temporal, variaciones porcentuales, etc).
  • Desarrollar todo tipo de aplicaciones sencillas que utilicen los datos sin contar con infraestructura propia más sofisticada.

Es decir, descargar la base completa no te deja responder fácil y rápidamente a preguntas puntuales, como por ejemplo: ¿Cuánto creció el PBI argentino entre el tercer trimestre de 2011 y el tercer trimestre de 2015?

Como respuesta a estos casos de uso, hoy lanzamos la primera versión de un servicio web de series de tiempo preparado para que cualquier organismo de la APN pueda publicar sus datos fácilmente, basado en el Perfil de Metadatos de la Política de Apertura de Datos de la Administración Pública Nacional (APN).

¿Qué es una API? Algo parecido a un enchufe eléctrico: una URL configurable que respeta determinada estructura y te permite “enchufarte” a un sistema.

Existen algunos casos de referencia en el mundo para la publicación de series de tiempo. La iniciativa pionera de la Reserva Federal de Estados Unidos (FRED) que las publica desde hace más de 50 años, la API de la Organización para la Cooperación y el Desarrollo Económicos (OECD) o las APIs del Banco Mundial. El desarrollo de la versión argentina tomó varios elementos de inspiración en estos casos.

Público objetivo

El público al que apunta el uso de la API se puede dividir, a grandes rasgos, en dos grupos:

  • Analistas: Usan planillas de cálculo y paquetes de software estadísticos. Buscan descargar o actualizar tablas en sus entornos de trabajo.
  • Desarrolladores: Crean aplicaciones web y de escritorio, y programan rutinas. Buscan integrar consultas a bases de datos en sus desarrollos.

¿Cómo se usa?

El uso de la API requiere:

1. Buscar los identificadores de las series deseadas en la tabla de metadatos de las series de la base.

2. Configurar la URL de consulta teniendo en cuenta:

  • El período de tiempo de la consulta (“desde” y “hasta”).
  • La frecuencia temporal en la que se desea consultar las series (diaria, mensual, trimestral, etc).
  • La función de agregación temporal de cada serie (promedio, suma, último valor del período, etc).
  • Las transformaciones que se deban aplicar a cada serie (variación, variación porcentual, variación porcentual anual).
  • El formato de la respuesta (CSV o JSON).

3. Integrar la URL en una planilla de cálculo, aplicación o rutina.

Buscar las series deseadas

Para explorar las series disponibles en la base se debe descargar la tabla “Metadatos Enriquecidos de las Series” en el formato deseado (CSV, XLSX, DTA o DB), que contiene la lista de las series disponibles, y aplicar filtros para recortar el espacio de búsqueda.

Para entender la información ofrecida por cada columna es necesario ver la documentación de los campos; estos son los más útiles para filtrar y buscar series:

  • serie_id: Identificador único y permanente de una serie (todos los metadatos que no son “ids” pueden modificarse en el futuro) dentro de toda la base de series de tiempo.
  • serie_descripcion: Descripción de una serie individual.
  • serie_actualizada: Estima si los valores de una serie están actualizados respecto de su frecuencia temporal o no.
  • distribucion_descripcion: Descripción de una tabla que contiene varias series relacionadas, de una misma frecuencia temporal.
  • dataset_tema: Categoría o categorías temática/s dentro de las cuales se clasificó al dataset.

Configurar la URL de consulta

Suponé que querés consultar el tipo de cambio y la inflación mensual interanual (el nivel general y la inflación núcleo) más reciente. Así usarías la API para conseguirlo:

  • “Pesos argentinos por dólar estadounidense”
  • “IPC Nivel General. Base abr 2016. Mensual” (en % de variación interanual)
  • “IPC Núcleo. Base abr 2016. Mensual” (en % de variación interanual)

http://apis.datos.gob.ar/series/api/series?ids=138.1_PAPDE_0_M_41,103.1_I2N_2016_M_19:percent_change_a_year_ago,103.1_I2N_2016_M_15:percent_change_a_year_ago&start_date=2017-08&format=csv

Esta URL es una llamada a la API, que te permite descargar una tabla en CSV con esos datos desde Agosto de 2017.

Para ver en detalle cómo armar tus llamadas a la API, revisá la documentación completa.

Integrar URL en una planilla de cálculo

A continuación se muestran algunos ejemplos sobre cómo integrar esta URL de consulta a la API en una planilla de cálculo:

En Google Drive

  1. Modificar la configuración regional. La API genera archivos CSV usando “.” como separador decimal. Para que Google Spreadsheet lea correctamente el archivo debe elegirse “Estados Unidos” o cualquier otra región compatible.
  2. Importar los datos a la planilla. La función IMPORTDATA() toma la URL de la consulta a la API y trae los datos a la planilla.
  3. Elegir el formato de fecha. El índice de tiempo puede verse como un número la primera vez que se importan los datos. Lo más conveniente es seleccionar toda la columna y elegir el formato en el que se desea visualizar la fecha.
  4. Modificar la URL de consulta a la API. Una vez importada la tabla por primera vez, se pueden modificar los distintos parámetros de la consulta según lo que se necesite. La tabla se actualizará con cada cambio.

Podés ver instrucciones más detalladas en la documentación completa.

En Excel

Estas instrucciones fueron probadas con la versión 2016 de Excel:

1. Generar una nueva consulta desde una URL. “Datos” > “Nueva consulta” > “Desde otras fuentes” > “Desde una web”

2. Editar codificación del archivo origen. La API genera los archivos CSV con codificación “Unicode UTF-8”, que no es el valor por defecto de Excel. Click en la rueda de “Origen” > “Origen de archivo” > Elegir “Unicode UTF-8”

3. Editar los tipos de las columnas. Excel puede no interpretar correctamente los tipos de las columnas de la tabla si tiene un separador decimal que no sea “.”. Se debe utilizar el “Editor avanzado” para corregir los tipos de las columnas.

  • El tipo de la columna “indice_tiempo” debe ser “type date”
  • El tipo del resto de las columnas (que contienen series) debe ser “type number”

4. Modificar la configuración regional. En el mismo editor avanzado, debe corregirse al final la configuración regional para que sea “en-US” y acepte “.” como separador decimal.

5. Guardar las modificaciones y cargar la consulta. Por último, haciendo click en “Cerrar y cargar” la consulta queda configurada en una tabla de Excel que se puede actualizar.

Podés ver instrucciones más detalladas en la documentación completa.

Hoja de ruta

Desarrollo de la API

La versión actual se publica en forma abierta y en etapa beta. A medida que crezcan las estadísticas de uso y devoluciones de los usuarios, esperamos optimizar la infraestructura que la soporta y añadir nuevas funcionalidades de valor.

Algunos de los pasos previstos en futuras versiones son:

  • Nuevos formatos y estructuras de respuesta de las consultas.
  • Mejoras en la consulta de metadatos vía API.
  • Cuotas diferenciadas (mayores) para uso autenticado de la API.
  • Nuevas transformaciones y operaciones.

Apertura del código

Siguiendo la filosofía general de trabajo del equipo de Datos, todo el código del proyecto de Series de Tiempo se desarrolló pensando en su posterior apertura. En las próximas semanas se irán abriendo los distintos repositorios que componen el proyecto, se publicará una explicación general de cómo se relacionan entre sí y cómo los desarrolladores interesados pueden utilizarlos.

Nuevos organismos

Como se comenta al comienzo del artículo, el perfil de metadatos que está detrás de la base de series fue especialmente diseñado para ser compatible con la Política de Apertura de Datos de la APN y, por lo tanto, facilitar al máximo la incorporación de nuevos organismos que deseen disponibilizar sus series de tiempo a través de la API.

En los próximos meses buscaremos acompañar el desarrollo de la API, sumando nuevos organismos de la Administración Pública Nacional como publicadores de series de tiempo.

¿Usás series de tiempo en la facultad o en tu trabajo diario? Nos encantaría que nos cuentes por Twitter o por mail para qué y de qué manera las usás, si esta API que publicamos te facilita tu trabajo y cómo podría facilitártelo aún más.

Si te sirvió este post, hacé clic en el ❤ acá abajo, así más personas se suman a #DatosArgentina.

--

--

Agustín Benassi
Datos Argentina

Economista, programador y activista de la apertura de datos. Director de Datos Públicos en la Secretaría de Modernización de la Nación Argentina.