Peramalan sederhana dari model AR yang diestimasi
Sekarang setelah Anda memodelkan data menggunakan perintah arima(), Anda siap membuat peramalan sederhana berdasarkan model tersebut. Fungsi predict() dapat digunakan untuk membuat peramalan dari model AR yang diestimasi. Pada objek yang dihasilkan oleh perintah predict(), nilai $pred adalah hasil ramalan, dan nilai $se adalah galat baku untuk ramalan tersebut.
Untuk membuat prediksi beberapa periode melampaui observasi terakhir, Anda dapat menggunakan argumen n.ahead dalam perintah predict(). Argumen ini menetapkan horizon peramalan (h), atau jumlah periode yang diramalkan. Peramalan dibuat secara rekursif dari 1 hingga h-langkah ke depan dari akhir deret waktu yang teramati.
Dalam latihan ini, Anda akan membuat peramalan sederhana menggunakan model AR yang diterapkan pada data Nile, yang merekam observasi tahunan aliran Sungai Nil dari 1871 hingga 1970.
Latihan ini adalah bagian dari kursus
Analisis Deret Waktu dengan R
Petunjuk latihan
- Gunakan
arima()untuk menyesuaikan model AR pada deret waktuNile. Simpan sebagaiAR_fit. - Gunakan
predict()untuk membuat peramalan aliran Sungai Nil pada tahun 1971. - Gunakan
predict_ARbersama$pred[1]untuk memperoleh peramalan 1-langkah ke depan. - Lakukan pemanggilan
predict()lain untuk membuat peramalan dari 1 langkah hingga 10 langkah ke depan (1971 hingga 1980). Untuk itu, setel argumenn.aheadsama dengan10. - Jalankan kode yang sudah disiapkan untuk membuat plot data
Nilebeserta hasil ramalan dan interval prediksi 95%.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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)