Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Użyj predict(), aby wygenerować prognozę poziomu przepływu Nilu w roku 1971. Zapisz wynik w zmiennej predict_MA.
  • Użyj predict_MA wraz z $pred[1], aby uzyskać prognozę 1-krokową.
  • Wywołaj predict() ponownie, aby wygenerować prognozy na lata 1971–1980. W tym celu ustaw argument n.ahead na 10.
  • Uruchom gotowy kod, aby zwizualizować szereg czasowy Nile wraz 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)
Edytuj i uruchom kod