¿Qué modelo ARMA es mejor?
Recuerda del Capítulo 3 que el Criterio de Información de Akaike (AIC) sirve para comparar modelos con distinto número de parámetros. Mide el ajuste del modelo, pero penaliza a los que tienen más parámetros para evitar el sobreajuste. Un AIC más bajo es mejor.
Ajusta los datos de temperatura con un AR(1), AR(2) y ARMA(1,1) y comprueba cuál se ajusta mejor usando el criterio AIC. Los modelos AR(2) y ARMA(1,1) tienen un parámetro más que el AR(1).
El cambio anual de la temperatura está en un DataFrame chg_temp.
Este ejercicio forma parte del curso
Análisis de series temporales en Python
Instrucciones del ejercicio
- Para cada modelo ARMA, crea una instancia de la clase
ARIMA, pasando los datos y elorder=(p,d,q).pes el orden autorregresivo;qes el orden de media móvil;des el número de veces que se ha diferenciado la serie. - Ajusta el modelo usando el método
.fit(). - Imprime el valor del AIC, disponible en el elemento
.aicde los resultados.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# Import the module for estimating an ARIMA model
from statsmodels.tsa.arima.model import ARIMA
# Fit the data to an AR(1) model and print AIC:
mod_ar1 = ARIMA(chg_temp, order=(___, 0, 0))
res_ar1 = mod_ar1.fit()
print("The AIC for an AR(1) is: ", res_ar1.aic)
# Fit the data to an AR(2) model and print AIC:
mod_ar2 = ARIMA(chg_temp, order=(___, ___, ___))
res_ar2 = mod_ar2.___
print("The AIC for an AR(2) is: ", res_ar2.aic)
# Fit the data to an ARMA(1,1) model and print AIC:
mod_arma11 = ___
res_arma11 = ___
print("The AIC for an ARMA(1,1) is: ", ___)