Jednoduché předpovědi z odhadnutého AR modelu
Teď, když jsi namodeloval/a data pomocí příkazu arima(), je čas sestavit jednoduché předpovědi na základě tohoto modelu. K vytváření předpovědí z odhadnutého AR modelu slouží funkce predict(). V objektu, který příkaz predict() vrátí, najdeš v hodnotě $pred samotnou předpověď a v hodnotě $se její standardní chybu.
Pokud chceš předpovídat více period dopředu za posledním pozorováním, použij v příkazu predict() argument n.ahead. Ten určuje horizont předpovědi (h), tedy počet period, pro které se předpověď sestavuje. Předpovědi se počítají rekurzivně od 1 do h kroků dopředu od konce pozorované časové řady.
V tomto cvičení sestavíš jednoduché předpovědi pomocí AR modelu aplikovaného na data Nile, která zaznamenávají roční průtok řeky Nil v letech 1871 až 1970.
Toto cvičení je součástí kurzu
Analýza časových řad v R
Pokyny k cvičení
- Pomocí
arima()nafituj AR model na časovou řaduNile. Výsledek ulož jakoAR_fit. - Pomocí
predict()sestav předpověď průtoku Nilu pro rok 1971. - Použij
predict_ARspolu s$pred[1]k získání předpovědi 1 krok dopředu. - Zavolej
predict()znovu a sestav předpovědi od 1 do 10 kroků dopředu (1971 až 1980). K tomu nastav argumentn.aheadna hodnotu10. - Spusť předpřipravený kód, který vykreslí data
Nilespolu s předpověďmi a 95% predikčním intervalem.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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)