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

Ước lượng bậc mô hình: Tiêu chí thông tin

Một cách khác để xác định bậc của mô hình là xem xét Akaike Information Criterion (AIC) và Bayesian Information Criterion (BIC). Các thước đo này đánh giá mức độ phù hợp (goodness of fit) với các tham số ước lượng, nhưng áp dụng một hàm phạt theo số lượng tham số trong mô hình. Bạn sẽ dùng dữ liệu mô phỏng AR(2) từ bài trước, được lưu là simulated_data_2, và tính BIC khi bạn thay đổi bậc p trong mô hình AR(p) từ 0 đến 6.

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

  • Import mô-đun ARIMA để ước lượng tham số và tính BIC.
  • Khởi tạo một mảng numpy BIC, dùng để lưu BIC cho từng mô hình AR(p).
  • Lặp qua bậc p với p = 0,…,6.
    • Với mỗi p, fit dữ liệu vào mô hình AR bậc p.
    • Với mỗi p, lưu giá trị BIC bằng thuộc tính .bic (không có ngoặc) của res.
  • Vẽ đồ thị BIC theo p (khi vẽ, bỏ qua p=0 và vẽ cho p=1,…,6).

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(p) for p = 0,...,6 , and save the BIC
BIC = np.zeros(7)
for p in range(7):
    mod = ARIMA(simulated_data_2, order=(___,___,___))
    res = mod.fit()
# Save BIC for AR(p)    
    BIC[p] = res.___
    
# Plot the BIC as a function of p
plt.plot(range(1,7), BIC[1:7], marker='o')
plt.xlabel('Order of AR Model')
plt.ylabel('Bayesian Information Criterion')
plt.show()
Chỉnh sửa và Chạy Mã