Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Dla każdego modelu ARMA utwórz instancję klasy ARIMA, przekazując dane oraz argument order=(p,d,q). p to rząd składnika autoregresyjnego; q to rząd składnika średniej ruchomej; d to liczba wykonanych różnicowań szeregu.
  • Dopasuj model za pomocą metody .fit().
  • Wyświetl wartość AIC, którą znajdziesz w elemencie .aic wynikó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: ", ___)
Edytuj i uruchom kod