ÎncepețiÎncepe gratuit

Prognoze simple dintr-un model AR estimat

Acum că ți-ai modelat datele folosind comanda arima(), ești pregătit să faci prognoze simple pe baza modelului tău. Funcția predict() poate fi utilizată pentru a genera prognoze dintr-un model AR estimat. În obiectul generat de comanda predict(), valoarea $pred reprezintă prognoza, iar valoarea $se este eroarea standard a prognozei.

Pentru a face predicții pentru mai multe perioade dincolo de ultimele observații, poți folosi argumentul n.ahead în comanda predict(). Acest argument stabilește orizontul de prognoză (h), adică numărul de perioade prognozate. Prognozele sunt calculate recursiv, de la 1 până la h pași înainte față de sfârșitul seriei de timp observate.

În acest exercițiu, vei face prognoze simple folosind un model AR aplicat pe datele Nile, care înregistrează observații anuale ale debitului râului Nil din 1871 până în 1970.

Acest exercițiu face parte din cursul

Analiza seriilor de timp în R

Vezi cursul

Instrucțiuni pentru exercițiu

  • Folosește arima() pentru a ajusta un model AR la seria de timp Nile. Salvează rezultatul ca AR_fit.
  • Folosește predict() pentru a prognoza debitul Nilului în 1971.
  • Folosește predict_AR împreună cu $pred[1] pentru a obține prognoza la 1 pas înainte.
  • Apelează din nou predict() pentru a genera prognoze de la 1 până la 10 pași înainte (1971–1980). Pentru aceasta, setează argumentul n.ahead la valoarea 10.
  • Rulează codul predefinit pentru a reprezenta grafic datele Nile, prognozele și intervalul de predicție de 95%.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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)
Editează și rulează codul