Eenvoudige voorspellingen uit een geschat MA-model
Nu je een MA-model hebt geschat met je Nile-gegevens, is de volgende stap om enkele eenvoudige voorspellingen met je model te maken. Net als bij andere typen modellen kun je de functie predict() gebruiken om eenvoudige voorspellingen te doen op basis van je geschatte MA-model. Onthoud dat de waarde $pred de voorspelling is, terwijl de waarde $se de standaardfout is van die voorspelling; beide zijn gebaseerd op het gefitte MA-model.
Opnieuw kun je, om voorspellingen voor meerdere perioden na de laatste observatie te maken, het argument n.ahead = h gebruiken in je aanroep van predict(). De voorspellingen worden recursief gemaakt van 1 tot en met h stappen vooruit vanaf het einde van de geobserveerde tijdreeks. Let er echter op dat, behalve voor de 1-staps-voorspelling, alle voorspellingen van het MA-model gelijk zijn aan het geschatte gemiddelde (intercept).
In deze oefening gebruik je het MA-model afgeleid van je Nile-gegevens om eenvoudige voorspellingen te doen over toekomstige waterafvoer van de Nijl. Je MA-model uit de vorige oefening is beschikbaar in je omgeving.
Deze oefening maakt deel uit van de cursus
Tijdreeksanalyse in R
Oefeninstructies
- Gebruik
predict()om een voorspelling te maken voor het afvoerniveau van de Nijl in 1971. Sla de voorspelling op inpredict_MA. - Gebruik
predict_MAsamen met$pred[1]om de 1-staps-voorspelling te verkrijgen. - Gebruik nog een aanroep van
predict()om een voorspelling te maken van 1971 tot en met 1980. Stel hiervoor het argumentn.aheadgelijk aan10. - Voer de voorgeschreven code uit om de
Nile-tijdreeks plus de voorspelling en 95%-voorspelintervallen te plotten.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Make a 1-step forecast based on MA
predict_MA <-
# Obtain the 1-step forecast using $pred[1]
# Make a 1-step through 10-step forecast based on MA
# Plot the Nile series plus the forecast and 95% prediction intervals
ts.plot(Nile, xlim = c(1871, 1980))
MA_forecasts <- predict(MA, n.ahead = 10)$pred
MA_forecast_se <- predict(MA, n.ahead = 10)$se
points(MA_forecasts, type = "l", col = 2)
points(MA_forecasts - 2*MA_forecast_se, type = "l", col = 2, lty = 2)
points(MA_forecasts + 2*MA_forecast_se, type = "l", col = 2, lty = 2)