Ướ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
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ủares.
- 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()