Después de un análisis descriptivo y exploratorio de las series de tiempo, el objetivo siguiente va a ser predecir el futuro en base a un modelo de series temporales. El procedimiento general es el siguiente:
- Escoger el modelo
- Dividir los datos en datos de entrenamiento y datos de prueba
- Ajustar el modelo a los datos de entrenamiento
- Evaluar el modelo en los datos de prueba
- Re-ajustar el modelo con todos los datos
- Predecir los datos futuros en Series de Tiempo
Cómo seleccionar el mejor modelo para predecir series de tiempo
Usualmente comenzamos con un modelo simple y luego lo expandimos siempre que se cumplan varias condiciones. Obviamente podemos complejizar el modelo introduciendo más retrasos, pero este modelo más complejo tendrá más coeficientes para estimar.
Cuando hagamos esto, puede ser que el modelo no sea apropiado, por eso una de las cosas que debemos comprobar es que los nuevos coeficientes sean significativamente diferentes de cero.
Si eso no es cierto, las estimaciones para estos parámetros son esencialmente cero. Por lo tanto, no nos ayudan a estimar valores futuros. Esto significa que no tienen poder predictivo, por lo que debemos desecharlo y volver al modelo más simple.
Una vez que tengamos varios posibles modelos, debemos compararlos entre sí. Para determinar si las predicciones de un modelo son significativamente mejores que las de otro, utilizaremos la inferencia. Donde tendremos una prueba estadística llamada prueba de razón de log-verosimilitudes o log-likelihood test. Sin embargo, la prueba solo se puede aplicar a modelos con diferentes grados de libertad (número de parámetros que estima).
Por lo tanto, al comparar varios modelos con el mismo número total de parámetros estimados, vamos a usar los criterios de información de cada uno. Los dos criterios de información más usados son el AIC y el BIC
- AIC: Akaike Information Criteria
- BIC: Bayesian Information Criteria
El mejor modelo será el que tenga menor AIC o BIC.
Además se mirará el valor de la log-verosimilitud (LL: log likelihood) de ambos modelos en el resumen estadístico. El mejor modelo será el que tenga mayor LL.
Por otro lado, si nuestro modelo se ajusta bien, no debería haber un efecto de tendencia que no hayamos tenido en cuenta. Esto se traduce en que los residuos del modelo deben parecerse al ruido blanco, por lo que podemos concluir que no hay otro patrón por ahí escondido.
Esto debe comprobarse a través de la prueba DF de estacionariedad, que debe dar positiva a favor de los residuos siendo estacionarios. Y a través de la función de autocorrelación de los residuos, en la que se debería obtener que no hay correlaciones significativas.
Modelo Autorregresivo AR para Series de Tiempo
Los modelos autorregresivos predicen el valor actual de nuestra serie temporal en función de los valores pasados. Un modelo autorregresivo de orden simple, de orden uno, sólo consideraría el valor del período anterior, y el modelo se expresaría de la siguiente manera:
𝑥𝑡 = 𝑐 + 𝜑𝑥𝑡−1 + 𝜖𝑡
Donde 𝑥𝑡 es el valor de interés, del período actual, de nuestra serie de tiempo, 𝑐 es la constante, 𝜑 es el coeficiente que debemos estimar, 𝜖𝑡 es el residuo en el período actual, y 𝑥𝑡−1 es el valor de la serie en el período anterior.
No funcionan bien si los datos no son estacionarios.
¿CÓMO SABER SI DEBEMOS INCLUIR MÁS RETRASOS Y CUÁNTOS EN SERIES DE TIEMPO?
Sabemos que la ACF captura los efectos directos e indirectos del valor anterior sobre el valor presente. Como queremos un modelo eficiente solo queremos considerar aquellos retrasos que tengan un efecto directo y significativo sobre el período presente. Por lo tanto, debemos examinar la PACF antes de construir un modelo con demasiados coeficientes de retraso.
Modelo de Medias Móviles (MA)
Los modelos de medias móviles predicen el valor actual de nuestra serie temporal en función de los residuos pasados. Un modelo de medias móviles de orden simple, de orden uno, sólo consideraría el valor del residuo en el período anterior, y el modelo se expresaría de la siguiente manera:
𝑥𝑡 = 𝑐 + 𝜃𝜖𝑡−1 + 𝜖𝑡
Donde 𝑥𝑡 es el valor de interés, del período actual, de nuestra serie de tiempo, 𝑐 es la constante, 𝜃 es el coeficiente que debemos estimar, 𝜖𝑡 es el residuo en el período actual, y 𝜖𝑡−1 es el valor del residuo en el período anterior.
No funcionan bien si los datos no son estacionarios.
¿CÓMO SABER SI DEBEMOS INCLUIR MÁS RETRASOS Y CUÁNTOS?
En este caso, vamos a mirar la ACF.
Modelo Autorregresivo de Medias Móviles (ARMA)
Es la combinación de ambos modelos en Series de Tiempo AR y MA, con lo cual un modelo ARMA tendría dos órdenes (p,q), donde p es el orden de la parte autorregresiva y q es el orden de la parte de medias móviles. Un modelo ARMA de orden simple, un ARMA(1,1) sería:
𝑥𝑡 = 𝑐 + 𝜑𝑥𝑡−1 + 𝜃𝜖𝑡−1 + 𝜖𝑡
Los modelos ARMA funcionan mejor si la serie es estacionaria.
Modelo Autorregresivo Integrado de Medias Móviles (ARIMA)
Es un modelo ARMA aplicado al resultado de integrar la serie de tiempo un número de veces determinado, por el orden de integración. Es decir, un modelo ARIMA de orden (p,d,q) consiste en integrar la serie original d veces, y luego ajustar un modelo ARMA(p,q) a esa serie integrada. El objetivo de la integración es obtener una serie estacionaria, ya que los modelos ARMA funcionan peor para series no estacionarias.
En este modelo no podemos mirar la ACF ni la PACF para más o menos saber el orden. Entonces habría que hacer lo siguiente:
- Empezar con el ARIMA(1,1,1)
- Examinar los residuos
- Complejizar el modelo según lo que hayamos visto en los residuos
- Ir bajando el número de componentes hasta el modelo simple
Cuidado cuando integramos la serie, porque por cada integración, perdemos una observación.
Modelo con Componente Estacional SARMA y SARIMA
Vamos a recordar que la estacionalidad ocurre cuando ciertos patrones aparecen periódicamente, por ejemplo, algo que se repite cada año. Por lo tanto, en este caso, un modelo simple autorregresivo AR no describirá bien los datos. ¿Por qué? Porque sólo considera el valor del período anterior para estimar el periodo actual.
¿Entonces qué haríamos en este caso? Necesitaríamos incluir los valores registrados durante el período de hace un año.
Primero necesitamos definir el orden estacional de las series de tiempo que es ese ciclo que sospechamos que se repite. Por ejemplo, si nuestros datos son diarios, y el ciclo se repite cada semana, un buen orden sería 7. Si nuestros datos son mensuales y observamos una repetición anual, un buen orden sería 12.
Tendremos una variante estacional para todos los modelos que hemos estudiado: SARMA, SARIMA. Y, por ejemplo, un SARIMA tendría orden (p,d,q)(P,D,Q,s), donde p,d,q son los órdenes no estacionales del modelo y P,D,Q son los órdenes estacionales, que se refieren a los retrasos que se añaden respecto al orden estacional s.
Ejemplo de 𝑆𝐴𝑅𝐼𝑀𝐴(1,0,2)(2,0,1,5):
𝑥𝑡 = 𝑐 + 𝜑1𝑥𝑡−1 + 𝜃1𝜖𝑡−1 + 𝜃2𝜖𝑡−2 + 𝛷1(𝑥𝑡−5 + 𝜑1𝑥𝑡−6) + 𝛷2(𝑥𝑡−10 + 𝜑1𝑥𝑡−11) + 𝛩1(𝜖𝑡−5 + 𝜃1𝜖𝑡−6 + 𝜃2𝜖𝑡−7) + 𝜖𝑡
Conclusión
Si quieres aprender más acerca de las Series Temporales y los modelos para su análisis, te invitamos a nuestra Ruta de Análisis de Datos con R y con Python disponible en Frogames Formación donde durante más de 500 horas de vídeo y centenares de ejemplos verás cómo poder analizar todo tipo de datos en ambos lenguajes, y elaborar modelos de predicción de ventas futuras usando Series Temporales.
Y si quieres conocer más modelos más allá de los vistos en este post, no dudes en compartir el artículo en redes sociales para traerte una ampliación con Modelos Max, Var, ARCH y GARCH entre otros.