Kom igångKom igång gratis

Enkla prognoser från en skattad AR-modell

Nu när du har modellerat dina data med arima()-kommandot är du redo att göra enkla prognoser utifrån modellen. Funktionen predict() kan användas för att ta fram prognoser från en skattad AR-modell. I objektet som skapas av predict()-anropet innehåller $pred själva prognosen och $se standardfelet för prognosen.

För att göra prognoser för flera perioder efter de senaste observationerna kan du använda argumentet n.ahead i predict()-anropet. Det här argumentet anger prognoshorisont (h), det vill säga antalet perioder som prognostiseras. Prognoserna beräknas rekursivt från 1 till h steg framåt från slutet av den observerade tidsserien.

I den här övningen gör du enkla prognoser med en AR-modell anpassad till Nile-data, som innehåller årliga observationer av Nilens vattenflöde från 1871 till 1970.

Den här övningen är en del av kursen

Tidsserieanalys i R

Visa kurs

Övningsinstruktioner

  • Använd arima() för att anpassa en AR-modell till tidserien Nile. Spara resultatet som AR_fit.
  • Använd predict() för att göra en prognos för Nilens vattenflöde år 1971.
  • Använd predict_AR tillsammans med $pred[1] för att hämta 1-stegs-prognosen.
  • Gör ytterligare ett anrop till predict() för att ta fram prognoser från 1 till 10 steg framåt (1971 till 1980). Sätt argumentet n.ahead till 10.
  • Kör den färdigskrivna koden för att plotta Nile-data tillsammans med prognoserna och ett 95-procentigt prediktionsintervall.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Fit an AR model to Nile
AR_fit <- arima(___, order  = ___)
print(AR_fit)

# Use predict() to make a 1-step forecast
predict_AR <- predict(___)

# Obtain the 1-step forecast using $pred[1]


# Use predict to make 1-step through 10-step forecasts
predict(___, n.ahead = ___)

# Run to plot the Nile series plus the forecast and 95% prediction intervals
ts.plot(Nile, xlim = c(1871, 1980))
AR_forecast <- predict(AR_fit, n.ahead = 10)$pred
AR_forecast_se <- predict(AR_fit, n.ahead = 10)$se
points(AR_forecast, type = "l", col = 2)
points(AR_forecast - 2*AR_forecast_se, type = "l", col = 2, lty = 2)
points(AR_forecast + 2*AR_forecast_se, type = "l", col = 2, lty = 2)
Redigera och kör kod