Aan de slagGa gratis aan de slag

Eenvoudige voorspellingen met een geschat AR-model

Nu je je data hebt gemodelleerd met het arima()-commando, ben je klaar om eenvoudige voorspellingen te maken op basis van je model. De functie predict() kan worden gebruikt om voorspellingen te maken met een geschat AR-model. In het object dat je predict()-commando oplevert, is de waarde $pred de voorspelling, en de waarde $se de standaardfout van de voorspelling.

Om voorspellingen te maken voor meerdere perioden na de laatste waarnemingen, kun je het argument n.ahead gebruiken in je predict()-commando. Dit argument bepaalt de voorspellingshorizon (h), oftewel het aantal te voorspellen perioden. De voorspellingen worden recursief gemaakt van 1 tot en met h stappen vooruit vanaf het einde van de geobserveerde tijdreeks.

In deze oefening maak je eenvoudige voorspellingen met een AR-model toegepast op de Nile-data, die jaarlijkse waarnemingen bevat van de afvoer van de Nijl van 1871 tot 1970.

Deze oefening maakt deel uit van de cursus

Tijdreeksanalyse in R

Cursus bekijken

Oefeninstructies

  • Gebruik arima() om een AR-model te fitten op de tijdreeks Nile. Sla dit op als AR_fit.
  • Gebruik predict() om een voorspelling te maken voor de afvoer van de Nijl in 1971.
  • Gebruik predict_AR samen met $pred[1] om de 1-stapsvoorspelling op te halen.
  • Gebruik nog een aanroep van predict() om voorspellingen te maken van 1 stap vooruit tot 10 stappen vooruit (1971 tot 1980). Stel hiervoor het n.ahead-argument gelijk aan 10.
  • Voer de voorgecodeerde regels uit om je Nile-data plus de voorspellingen en een 95%-voorspellingsinterval te plotten.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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)
Code bewerken en uitvoeren