¿Qué modelo ARMA es mejor?

Recuerda del Capítulo 3 que el Criterio de Información de Akaike (AIC) puede utilizarse para comparar modelos con distintos números de parámetros. Mide la bondad del ajuste, pero penaliza los modelos con más parámetros para desincentivar el sobreajuste. Las puntuaciones AIC más bajas son mejores.

Ajusta los datos de temperatura a un modelo AR(1), AR(2) y ARMA(1,1) y comprueba qué modelo se ajusta mejor, utilizando 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 temperatura está en un DataFrame chg_temp.

Este ejercicio forma parte del curso

Análisis de Series Temporales en Python

Ver curso

Instrucciones de ejercicio

  • Para cada modelo ARMA, crea una instancia de la clase ARIMA, pasándole los datos y order=(p,d,q). p es el orden autorregresivo; q es el orden de la media móvil; d es el número de veces que se ha diferenciado la serie.
  • Ajusta el modelo utilizando el método .fit().
  • Imprime el valor AIC, que se encuentra en el elemento .aic de los resultados.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

# 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: ", ___)