Welches ARMA-Modell ist am besten?
Erinnere dich an Kapitel 3: Das Akaike-Informationskriterium (AIC) kann verwendet werden, um Modelle mit unterschiedlich vielen Parametern zu vergleichen. Es misst die Güte der Anpassung, bestraft aber Modelle mit mehr Parametern, um Overfitting zu vermeiden. Niedrigere AIC-Werte sind besser.
Fitte die Temperaturdaten mit einem AR(1), AR(2) und ARMA(1,1) und prüfe anhand des AIC-Kriteriums, welches Modell am besten passt. Die Modelle AR(2) und ARMA(1,1) haben jeweils einen Parameter mehr als AR(1).
Die jährliche Temperaturänderung befindet sich in einem DataFrame chg_temp.
Diese Übung ist Teil des Kurses
Zeitreihenanalyse in Python
Anleitung zur Übung
- Erzeuge für jedes ARMA-Modell eine Instanz der
ARIMA-Klasse und übergib die Daten sowieorder=(p,d,q).pist die Ordnung der Autoregression,qdie Ordnung der gleitenden Durchschnitte (Moving Average),ddie Anzahl der Differenzierungen der Serie. - Fitte das Modell mit der Methode
.fit(). - Gib den AIC-Wert aus, der im Element
.aicder Ergebnisse zu finden ist.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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: ", ___)