Dự báo đơn giản từ mô hình MA đã ước lượng
Giờ bạn đã ước lượng xong một mô hình MA với dữ liệu Nile, bước tiếp theo là thực hiện vài dự báo đơn giản với mô hình này. Tương tự các loại mô hình khác, bạn có thể dùng hàm predict() để tạo dự báo đơn giản từ mô hình MA đã ước lượng. Hãy nhớ rằng giá trị $pred là dự báo, còn $se là sai số chuẩn của dự báo đó; cả hai đều dựa trên mô hình MA đã fit.
Một lần nữa, để dự báo cho nhiều giai đoạn sau quan sát cuối cùng, bạn có thể dùng đối số n.ahead = h khi gọi predict(). Các dự báo được tạo đệ quy từ 1 đến h bước trước từ cuối chuỗi thời gian quan sát được. Tuy nhiên, lưu ý rằng ngoại trừ dự báo 1 bước, tất cả các dự báo từ mô hình MA đều bằng với giá trị trung bình ước lượng (intercept).
Trong bài này, bạn sẽ dùng mô hình MA suy ra từ dữ liệu Nile để tạo các dự báo đơn giản về mức lưu lượng sông Nile trong tương lai. Mô hình MA từ bài trước đã có sẵn trong môi trường của bạn.
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
predict()để dự báo lưu lượng sông Nile năm 1971. Lưu dự báo vàopredict_MA. - Dùng
predict_MAcùng với$pred[1]để lấy dự báo 1 bước. - Gọi
predict()lần nữa để dự báo từ 1971 đến 1980. Để làm vậy, đặt đối sốn.aheadbằng10. - Chạy đoạn mã đã viết sẵn để vẽ chuỗi thời gian
Nilecùng với 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.
# Make a 1-step forecast based on MA
predict_MA <-
# Obtain the 1-step forecast using $pred[1]
# Make a 1-step through 10-step forecast based on MA
# Plot the Nile series plus the forecast and 95% prediction intervals
ts.plot(Nile, xlim = c(1871, 1980))
MA_forecasts <- predict(MA, n.ahead = 10)$pred
MA_forecast_se <- predict(MA, n.ahead = 10)$se
points(MA_forecasts, type = "l", col = 2)
points(MA_forecasts - 2*MA_forecast_se, type = "l", col = 2, lty = 2)
points(MA_forecasts + 2*MA_forecast_se, type = "l", col = 2, lty = 2)