Zacznij terazZacznij za darmo

Proste prognozy na podstawie oszacowanego modelu AR

Masz już dopasowany model za pomocą funkcji arima() – czas na proste prognozy. Funkcja predict() pozwala tworzyć prognozy na podstawie oszacowanego modelu AR. W obiekcie zwróconym przez predict() wartość $pred to prognoza, a $se to błąd standardowy tej prognozy.

Aby prognozować na kilka okresów do przodu względem ostatniej obserwacji, możesz użyć argumentu n.ahead w funkcji predict(). Argument ten określa horyzont prognozy (h), czyli liczbę prognozowanych okresów. Prognozy są wyznaczane rekurencyjnie od 1 do h kroków do przodu, poczynając od końca obserwowanego szeregu czasowego.

W tym ćwiczeniu stworzysz proste prognozy przy użyciu modelu AR dopasowanego do danych Nile, które zawierają roczne obserwacje przepływu Nilu w latach 1871–1970.

To ćwiczenie jest częścią kursu

Analiza szeregów czasowych w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Użyj arima(), aby dopasować model AR do szeregu czasowego Nile. Zapisz wynik jako AR_fit.
  • Użyj predict(), aby prognozować przepływ Nilu w 1971 roku.
  • Skorzystaj z predict_AR wraz z $pred[1], aby uzyskać prognozę 1-krokową.
  • Wywołaj ponownie predict(), aby wygenerować prognozy od 1 do 10 kroków do przodu (lata 1971–1980). W tym celu ustaw argument n.ahead na 10.
  • Uruchom gotowy kod, aby zwizualizować dane Nile wraz z prognozami i 95-procentowym przedziałem predykcji.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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)
Edytuj i uruchom kod