Dự báo với Mô hình AR
Bên cạnh việc ước lượng tham số mô hình như bạn đã làm ở bài trước, bạn cũng có thể thực hiện dự báo (forecasting) cả trong mẫu (in-sample) và ngoài mẫu (out-of-sample) bằng statsmodels. Dự báo trong mẫu là dự báo điểm dữ liệu kế tiếp dựa trên dữ liệu có sẵn đến thời điểm đó, còn dự báo ngoài mẫu là dự báo bất kỳ số lượng điểm dữ liệu trong tương lai. Bạn có thể vẽ dữ liệu dự báo bằng hàm plot_predict(). Bạn cung cấp điểm bắt đầu và điểm kết thúc cho khoảng dự báo; điểm kết thúc có thể nằm sau khi bộ dữ liệu kết thúc một số lượng điểm bất kỳ.
Với dữ liệu mô phỏng trong DataFrame simulated_data_1, với \(\small \phi=0.9\), bạn sẽ vẽ các dự báo ngoài mẫu và các khoảng tin cậy xung quanh những dự báo đó.
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 với Python
Hướng dẫn bài tập
- Import lớp
ARIMAvà cả hàmplot_predict - Tạo một thể hiện của lớp
ARIMAgọi làmodsử dụng dữ liệu mô phỏng trong DataFramesimulated_data_1và bộ tham số thứ tự (p,d,q) của mô hình (trong trường hợp này, với AR(1)) làorder=(1,0,0) - Fit mô hình
modbằng phương thức.fit()và lưu vào đối tượng kết quả gọi làres - Vẽ dữ liệu trong mẫu bắt đầu từ điểm dữ liệu 950
- Vẽ dự báo ngoài mẫu và khoảng tin cậy bằng hàm
plot_predict(), bắt đầu tại điểm dữ liệu kết thúc ở điểm thứ 1000 và kết thúc dự báo tại điểm 1010
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.
# Import the ARIMA and plot_predict from statsmodels
from statsmodels.tsa.arima.model import ARIMA
from statsmodels.graphics.tsaplots import plot_predict
# Forecast the first AR(1) model
mod = ARIMA(___, order=___)
res = mod.fit()
# Plot the data and the forecast
fig, ax = plt.subplots()
simulated_data_1.loc[950:].plot(ax=ax)
plot_predict(res, start=___, end=___, ax=ax)
plt.show()