Proste prognozy z oszacowanego modelu MA
Po oszacowaniu modelu MA na podstawie danych Nile czas przejść do tworzenia prostych prognoz. Podobnie jak w przypadku innych modeli, możesz użyć funkcji predict(), aby wygenerować prognozy z oszacowanego modelu MA. Przypomnij sobie, że wartość $pred to prognoza, a $se to jej błąd standardowy – obie wielkości są obliczane na podstawie dopasowanego modelu MA.
Aby generować prognozy na kilka okresów w przód od ostatniej obserwacji, użyj argumentu n.ahead = h w wywołaniu predict(). Prognozy są tworzone rekurencyjnie – od kroku 1 do h – poczynając od końca zaobserwowanego szeregu czasowego. Pamiętaj jednak, że za wyjątkiem prognozy 1-krokowej wszystkie pozostałe prognozy modelu MA są równe oszacowanej średniej (intercept).
W tym ćwiczeniu użyjesz modelu MA zbudowanego na danych Nile, aby sporządzić proste prognozy przyszłych poziomów przepływu Nilu. Model MA z poprzedniego ćwiczenia jest dostępny w twoim środowisku.
To ćwiczenie jest częścią kursu
Analiza szeregów czasowych w R
Instrukcje do ćwiczenia
- Użyj
predict(), aby wygenerować prognozę poziomu przepływu Nilu w roku 1971. Zapisz wynik w zmiennejpredict_MA. - Użyj
predict_MAwraz z$pred[1], aby uzyskać prognozę 1-krokową. - Wywołaj
predict()ponownie, aby wygenerować prognozy na lata 1971–1980. W tym celu ustaw argumentn.aheadna10. - Uruchom gotowy kod, aby zwizualizować szereg czasowy
Nilewraz z prognozą i 95-procentowymi przedziałami predykcji.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)