Vilken ARMA-modell är bäst?
Som du minns från kapitel 3 kan Akaike Information Criterion (AIC) användas för att jämföra modeller med olika antal parametrar. Det mäter hur väl modellen passar data, men bestraffar modeller med fler parametrar för att motverka överanpassning. Lägre AIC-värden är bättre.
Anpassa temperaturdata till en AR(1)-, en AR(2)- och en ARMA(1,1)-modell och se vilken som passar bäst enligt AIC-kriteriet. AR(2)- och ARMA(1,1)-modellerna har en parameter mer än AR(1).
Den årliga temperaturförändringen finns i en DataFrame chg_temp.
Den här övningen är en del av kursen
Tidsserieanalys i Python
Övningsinstruktioner
- Skapa för varje ARMA-modell en instans av klassen
ARIMAoch skicka in data samtorder=(p,d,q).pär den autoregressiva ordningen,qär glidande medelvärde-ordningen ochdär antalet gånger serien differentierats. - Anpassa modellen med metoden
.fit(). - Skriv ut AIC-värdet, som finns i elementet
.aici resultaten.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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: ", ___)