Który model ARMA jest najlepszy?
Przypomnij sobie z rozdziału 3., że Kryterium Informacyjne Akaikego (AIC) pozwala porównywać modele z różną liczbą parametrów. Mierzy ono dopasowanie modelu, ale karze modele z większą liczbą parametrów, zapobiegając w ten sposób przeuczeniu. Niższe wartości AIC oznaczają lepszy model.
Dopasuj dane temperaturowe do modeli AR(1), AR(2) i ARMA(1,1), a następnie sprawdź, który z nich najlepiej opisuje dane, korzystając z kryterium AIC. Modele AR(2) i ARMA(1,1) mają o jeden parametr więcej niż AR(1).
Roczna zmiana temperatury znajduje się w DataFrame chg_temp.
To ćwiczenie jest częścią kursu
Analiza szeregów czasowych w Pythonie
Instrukcje do ćwiczenia
- Dla każdego modelu ARMA utwórz instancję klasy
ARIMA, przekazując dane oraz argumentorder=(p,d,q).pto rząd składnika autoregresyjnego;qto rząd składnika średniej ruchomej;dto liczba wykonanych różnicowań szeregu. - Dopasuj model za pomocą metody
.fit(). - Wyświetl wartość AIC, którą znajdziesz w elemencie
.aicwyników.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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: ", ___)