Který model ARMA je nejlepší?
Vzpomeň si z kapitoly 3, že Akaikovo informační kritérium (AIC) lze použít k porovnání modelů s různým počtem parametrů. Měří kvalitu přizpůsobení, ale penalizuje modely s více parametry, aby zabránilo přeučení. Čím nižší hodnota AIC, tím lepší.
Natrénuj teplotní data na modely AR(1), AR(2) a ARMA(1,1) a zjisti, který model nejlépe odpovídá datům podle kritéria AIC. Modely AR(2) a ARMA(1,1) mají o jeden parametr více než AR(1).
Roční změna teploty je uložena v DataFrame chg_temp.
Toto cvičení je součástí kurzu
Analýza časových řad v Pythonu
Pokyny k cvičení
- Pro každý model ARMA vytvoř instanci třídy
ARIMA, přičemž předáš data a parametrorder=(p,d,q).pje řád autoregresní složky;qje řád složky klouzavého průměru;dje počet diferencování časové řady. - Model natrénuj pomocí metody
.fit(). - Vypiš hodnotu AIC, která se nachází v elementu
.aicvýsledků.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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: ", ___)