ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Pentru fiecare model ARMA, creează o instanță a clasei ARIMA, transmițând datele și order=(p,d,q). p este ordinul autoregresiv; q este ordinul mediei mobile; d este numărul de diferențieri aplicate seriei.
  • Ajustează modelul folosind metoda .fit().
  • Afișează valoarea AIC, găsită în elementul .aic al 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: ", ___)
Editează și rulează codul