Lección 4 del curso Pronósticos de Series de Tiempo con ARIMA.
En la lección anterior vimos qué son los modelos de media móvil y cómo implementar esos modelos usando las librerías StatsForecast y statsmodels de Python.
Así que con lo visto en las tres primeras lecciones del curso ya tenemos todos los elementos que nos permitirán entender los modelos ARIMA, el tema central de este curso.
Entonces en esta lección veremos qué son los modelos ARIMA, que resultan de combinar los modelos auto-regresivos con los de media móvil y con un componente de integración. Y además de entender todo el componente matemático asociado a estos modelos, también veremos un ejemplo práctico de entrenamiento de un modelo ARIMA en Python, incluyendo la selección de los parámetros p, d y q del modelo.
Comencemos entonces viendo en detalle qué son los modelos ARIMA:
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 esencia un modelo ARIMA resulta de:
- Diferenciar la Serie de Tiempo en caso de que no sea estacionaria
- Y luego construir, a partir de la serie diferenciada, un modelo AR de orden «p» y un modelo MA de orden «q»
Y el orden de la diferenciación usada para lograr que la serie sea estacionaria («d») es también un hiper-parámetro de un modelo ARIMA.
Así que los modelos ARIMA son modelos mucho más robustos que los modelos auto-regresivos que vimos en la lección 2 y que los modelos de media móvil de la lección anterior, pues funcionan tanto para series estacionarias como no estacionarias.
Entonces, teniendo claro qué son los modelos ARIMA, veamos un ejemplo práctico de implementación de estos modelos haciendo uso de Python y de las librerías StatsForecast y statsmodels:
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, para construir un modelo ARIMA debemos:
- Determinar si la serie de tiempo es estacionaria o no, usando tanto herramientas de visualización como pruebas estadísticas (como por ejemplo la prueba Dickey-Fuller)
- Si la serie es no estacionaria el siguiente paso es determinar el orden de diferenciación (parámetro «d» del modelo ARIMA)
- Posteriormente diferenciamos la serie no estacionaria usando precisamente el orden de diferenciación «d» que acabamos de estimar y dibujamos las funciones de autocorrelación y de autocorrelación parcial para intentar determinar los parámetros «p» y «q» del modelo
Y habiendo determinado estos parámetros simplemente podemos entrenar el modelo, realizar el análisis de residuales y generar los pronósticos usando, por ejemplo, el método «forecast()» de la librería StatsForecast.
Así que en este punto ya tenemos claros todos los elementos básicos de los modelos ARIMA. Sin embargo, en ocasiones la elección de los parámetros del modelo (p, d y q) no es tan simple como lo acabamos de ver en el ejemplo anterior, pues existe ambigüedad en los resultados que arrojan por ejemplo las funciones de autocorrelación y de autocorrelación parcial.
Entonces, en la próxima lección veremos el procedimiento paso a paso que sugiero seguir para construir un modelo ARIMA y para seleccionar el mejor conjunto de hiper-parámetros (p, d, q) que generen los mejores pronósticos posibles.
Todas las lecciones del curso Pronósticos de Series de Tiempo con ARIMA
