Care model ARMA este cel mai bun?
Reamintește-ți din Capitolul 3 că Criteriul Informațional Akaike (AIC) poate fi folosit pentru a compara modele cu număr diferit de parametri. Acesta măsoară calitatea ajustării, dar penalizează modelele cu mai mulți parametri pentru a descuraja supraajustarea. Scorurile AIC mai mici sunt mai bune.
Ajustează datele de temperatură pe modele AR(1), AR(2) și ARMA(1,1) și determină care model se potrivește cel mai bine, folosind criteriul AIC. Modelele AR(2) și ARMA(1,1) au cu un parametru mai mult decât AR(1).
Variația anuală a temperaturii se află într-un DataFrame numit chg_temp.
Acest exercițiu face parte din cursul
Analiza seriilor de timp în Python
Instrucțiuni pentru exercițiu
- Pentru fiecare model ARMA, creează o instanță a clasei
ARIMA, transmițând datele șiorder=(p,d,q).peste ordinul autoregresiv;qeste ordinul mediei mobile;deste numărul de diferențieri aplicate seriei. - Ajustează modelul folosind metoda
.fit(). - Afișează valoarea AIC, găsită în elementul
.aical rezultatelor.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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: ", ___)