Lección 5 del curso Pronósticos de Series de Tiempo con ARIMA.
En la lección anterior vimos qué son los modelos auto-regresivos integrados de media móvil (o ARIMA) y vimos también cómo usar las librerías StatsForecast y statsmodels de Python para implementar este tipo de modelos.
En la práctica, la elección de los parámetros p, d y q de estos modelos no resulta trivial y muchas veces es necesario llevar a cabo un ajuste de estos hiper-parámetros para de esta manera lograr construir el modelo ARIMA que genere los mejores pronósticos sobre la Serie de Tiempo.
Así que en esta lección veremos en detalle y de forma práctica el procedimiento paso a paso que sugiero llevar a cabo para construir un modelo ARIMA para generación de pronósticos de Series de Tiempo, pasando desde la construcción de un modelo base hasta el entrenamiento y selección del mejor modelo ARIMA incorporando el ajuste de los hiper-parámetros p, d y q.
Comencemos entonces entendiendo el problema a resolver e implementando las primeras fases de este procedimiento paso a paso:
Contenido exclusivo para suscriptores
Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.
En este caso particular intentaremos construir un modelo para pronosticar el valor que tendrá el índice S&P 500 a futuro (durante los próximos 5 días laborales).
Y ya hemos visto las tres primeras fases de este procedimiento paso a paso:
- Definir claramente el problema de predicción
- Explorar y realizar la limpieza de los datos
- Entrenar y validar un simple modelo base (o de referencia), que en este caso es un modelo Näive
A continuación, veremos cómo implementar los pasos restantes:
4. Definir el tipo de modelo predictivo a implementar (teniendo en cuenta las características de la Serie)
5. Verificar si se cumplen los supuestos del modelo ARIMA
6. Seleccionar el mejor conjunto hiper-parámetros del modelo
7. Validar el modelo y comparar su desempeño con el del modelo base (3)
8. Generar pronósticos con el modelo seleccionado en el paso anterior
Veamos todo esto en detalle:
Contenido exclusivo para suscriptores
Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.
Como acabamos de ver, después de haber elegido ARIMA como el conjunto de modelos a usar, lo que nos resta es determinar los valores más adecuados de los parámetros p, d y q.
Y en este caso particular la tarea no es trivial, así que lo que debemos hacer es elegir una grilla de hiper-parámetros y para cada combinación de valores (p,d,q) en dicha grilla debemos entrenar y validar un modelo, midiendo y almacenando su desempeño RMSE y MAPE (promedio y desviación estándar). Y luego de esto debemos intentar elegir aquel modelo con el mejor desempeño (es decir con los menores valores de RMSE y MAPE).
Sin embargo, en este caso, el criterio de elección del modelo no resulta del todo claro pues tendremos un sub-conjunto de 3 diferentes modelos ARIMA que tendrán desempeños muy similares. Así que en este tipo de situaciones podemos usar como «criterio de desempate» el análisis estadístico de los parámetros de cada modelo, el cual podemos realizar fácilmente con ayuda de la librería «statsmodels».
Y una vez realizado este análisis resulta un poco más sencillo elegir el modelo predictivo más adecuado para este problema que en nuestro caso es simplemente un modelo ARIMA(0,1,0) que es exactamente igual al modelo Näive que usamos como base al comienzo de esta lección.
Así que en este punto hemos visto cómo construir paso a paso un modelo ARIMA para un problema real de generación de pronósticos de Series de Tiempo. De hecho, este procedimiento se puede extender a problemas donde hagamos uso de otros tipos de modelos predictivos.
Entonces, con lo visto en esta y en todas las lecciones anteriores, ya tenemos claro qué son y cómo implementar modelos ARIMA. Sin embargo, estos modelos tienen una limitación fundamental: no funcionan para series estacionales.
Así que en la próxima lección veremos cómo extender estas ideas de los modelos ARIMA para incluir la capacidad de modelar comportamientos estacionales. Así que veremos en detalle qué son y cómo implementar los modelos SARIMA (o ARIMA con estacionalidad).
Todas las lecciones del curso Pronósticos de Series de Tiempo con ARIMA
