Pronósticos

Estimando proyecciones de series de tiempo

Unsplash

Proyecto

Este proyecto tiene distintas fuentes. En mis clases de econometría me enseñaron diversas herramientas para hacer pronósticos, siendo la más importantes el clásico modelo ARIMA. Para correrlo, aprendí diferentes herramientas: EViews, Gretl, STATA e incluso Matlab. Sin embargo, nunca ví que se detuvieran analizar si estas herramentas podrían generar diferencias. Si corro el mismo modelo ¿generará diferencias entre herramientas?

Por otro lado, para evaluar los pronósticos, siempre me enseñaron medidas estadísticas intra muestra: suma cuadrada de los errores, raíz de la suma cuadrada de los errores, y la desviación cuadrada de los errores respecto del error medio cuadrado (la famosa $R^2$). O a veces evaluaban el modelo quitando la última observación, actualizando los resultados del modelo y viendo el comportamiento intra muestra. Ninguna de las 2 anteriores medidas me gusta porque creo que ese no es el objetivo de hacer un pronóstico: tener una estimación lo que va a pasar. Es decir, ¿por qué revisar el pasado si lo que me interesaba era el futuro?

Planteado de otra forma, el objetivo del análisis de series de tiempo es obtener una estimación de lo que va a pasar. Entonces, me parece que hay un problema de fondo al evaluar los modelos con las observaciones previas, cuando lo que quiero es evaluar los modelos en función de los pronósticos que generan. Por ello, decidí evaluar cómo le fue a cada pronóstico con las observaciones futuras.

En un primer ejercicio, utilicé 3 herramientas:

  • En la parte 1 abordé el tema “a la vieja escuela” usando Gretl.
  • En la parte 2 automaticé todo con una notebook en Python a “la nueva escuela”.
  • En la parte 3 utilicé una nueva herramienta que encontré llamada Prophet desarrollada por Facebook.

Sin embargo, en este primer ejercicio, no quedé conforme con los resultados, por lo que hice un segundo round con nuevos competidores:

  • En la parte 1 abordé el tema con el modelo SARIMAX automatizando todo con una notebook en Python.
  • En la parte 2 utilicé otro método estadístico para hacer predicciones, que consiste en descomponer la serie: el método Holt-Winters.
  • En la parte 3 repetí el análisis con Prophet que usa herramientas estadísticas.
  • En la parte 4 incluí una herramienta desarrollada por LinkedIn, llamada Greykite.
  • En la parte 5 incluí un hermano de Prophet llamado NeuralProphet similar a Prophet, pero que utiliza redes neuronales.

La primer evaluación de este segundo round, la pueden consultar aquí

El contenido de este proyecto se puede encontrar en mi repositorio de Github.

Omar Humberto González Ávila
Omar Humberto González Ávila
Economista, Matemático y Científico de Datos

Soy un economista, con intereses en ciencia de datos, finanzas públicas, elecciones, deportes y teoría de juegos.