Tahmin edilen bir AR modelinden basit öngörüler
Artık verini arima() komutuyla modellediğine göre, modeline dayalı basit öngörüler yapmaya hazırsın. Tahmin edilen bir AR modelinden öngörü üretmek için predict() fonksiyonunu kullanabilirsin. predict() komutunun ürettiği nesnede, $pred değeri öngörüleri, $se değeri ise öngörülerin standart hatasını verir.
Son gözlemlerin ötesindeki birkaç dönem için tahmin yapmak istersen, predict() komutunda n.ahead argümanını kullanabilirsin. Bu argüman, tahmin ufkunu (h) yani tahmin edilen dönem sayısını belirler. Öngörüler, gözlenen zaman serisinin sonundan itibaren 1’den h-adım öteye kadar özyinelemeli olarak üretilir.
Bu egzersizde, 1871’den 1970’e kadar Nil Nehri’nin yıllık akışını kaydeden Nile verisine uygulanmış bir AR modeliyle basit öngörüler yapacaksın.
Bu egzersiz, kursun bir parçasıdır
R ile Zaman Serisi Analizi
Egzersiz talimatları
arima()kullanarakNilezaman serisine bir AR modeli uydur. BunuAR_fitolarak kaydet.- 1971 yılı için Nil’in akışı üzerine bir öngörü yapmak üzere
predict()kullan. - 1-adımlık öngörüyü elde etmek için
predict_ARile birlikte$pred[1]kullan. - 1 adımdan 10 adıma kadar (1971’den 1980’e) öngörüler yapmak için
predict()’i tekrar çağır. Bunu yapmak içinn.aheadargümanını10olarak ayarla. Nileverini, öngörüleri ve %95’lik bir tahmin aralığını birlikte çizmek için önceden yazılmış kodu çalıştır.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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)