Bắt đầu ngayBắt đầu miễn phí

ARMA nào phù hợp nhất?

Nhắc lại từ Chương 3: Akaike Information Criterion (AIC) có thể dùng để so sánh các mô hình với số lượng tham số khác nhau. Thước đo này phản ánh độ phù hợp của mô hình, đồng thời phạt các mô hình có quá nhiều tham số để tránh overfitting. AIC càng thấp càng tốt.

Hãy fit dữ liệu nhiệt độ với các mô hình AR(1), AR(2) và ARMA(1,1), rồi dùng tiêu chí AIC để xem mô hình nào khớp tốt nhất. Lưu ý AR(2) và ARMA(1,1) có nhiều hơn AR(1) một tham số.

Chuỗi biến thiên nhiệt độ theo năm nằm trong DataFrame chg_temp.

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

Xem khóa học

Hướng dẫn bài tập

  • Với mỗi mô hình ARMA, tạo một instance của lớp ARIMA, truyền dữ liệu và order=(p,d,q). p là bậc tự hồi quy (autoregressive); q là bậc bình quân trượt (moving average); d là số lần bạn đã sai phân chuỗi.
  • Fit mô hình bằng phương thức .fit().
  • In giá trị AIC, có trong thuộc tính .aic của kết quả.

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 module for estimating an ARIMA model
from statsmodels.tsa.arima.model import ARIMA

# Fit the data to an AR(1) model and print AIC:
mod_ar1 = ARIMA(chg_temp, order=(___, 0, 0))
res_ar1 = mod_ar1.fit()
print("The AIC for an AR(1) is: ", res_ar1.aic)

# Fit the data to an AR(2) model and print AIC:
mod_ar2 = ARIMA(chg_temp, order=(___, ___, ___))
res_ar2 = mod_ar2.___
print("The AIC for an AR(2) is: ", res_ar2.aic)

# Fit the data to an ARMA(1,1) model and print AIC:
mod_arma11 = ___
res_arma11 = ___
print("The AIC for an ARMA(1,1) is: ", ___)
Chỉnh sửa và Chạy Mã