Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Skapa för varje ARMA-modell en instans av klassen ARIMA och skicka in data samt order=(p,d,q). p är den autoregressiva ordningen, q är glidande medelvärde-ordningen och d är antalet gånger serien differentierats.
  • Anpassa modellen med metoden .fit().
  • Skriv ut AIC-värdet, som finns i elementet .aic i 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: ", ___)
Redigera och kör kod