Dự báo đơn giản từ một mô hình AR ước lượng
Giờ bạn đã mô hình hóa dữ liệu bằng lệnh arima(), bạn sẵn sàng tạo các dự báo đơn giản dựa trên mô hình. Hàm predict() có thể được dùng để tạo dự báo từ một mô hình AR đã ước lượng. Trong đối tượng do lệnh predict() tạo ra, giá trị $pred là dự báo, và giá trị $se là sai số chuẩn của dự báo.
Để dự báo cho nhiều giai đoạn sau các quan sát cuối cùng, bạn có thể dùng đối số n.ahead trong lệnh predict(). Đối số này xác định chân trời dự báo (h), tức số giai đoạn được dự báo. Các dự báo được thực hiện đệ quy từ 1 đến h bước trước tương lai tính từ cuối chuỗi thời gian đã quan sát.
Trong bài tập này, bạn sẽ tạo các dự báo đơn giản bằng mô hình AR áp dụng cho dữ liệu Nile, ghi lại lượng nước chảy qua sông Nile hằng năm từ 1871 đến 1970.
Bài tập này là một phần của khóa học
Phân tích chuỗi thời gian bằng R
Hướng dẫn bài tập
- Dùng
arima()để khớp một mô hình AR cho chuỗi thời gianNile. Lưu lại dưới tênAR_fit. - Dùng
predict()để tạo dự báo cho lưu lượng sông Nile năm 1971. - Dùng
predict_ARcùng với$pred[1]để lấy dự báo 1 bước. - Gọi
predict()lần nữa để tạo các dự báo từ 1 bước đến 10 bước trước tương lai (1971 đến 1980). Để làm vậy, đặt đối sốn.aheadbằng10. - Chạy đoạn mã đã viết sẵn để vẽ dữ liệu
Nilecủa bạn cùng các dự báo và khoảng dự báo 95%.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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)