Kiểm định mô hình: AIC, BIC và lựa chọn chiến lược tốt nhất
2025-06-12 — Admin
Khi xây dựng mô hình định lượng (ARIMA, GARCH, v.v.), việc lựa chọn mô hình phù hợp là rất quan trọng để tránh overfitting và đảm bảo dự báo hiệu quả. Hai tiêu chí phổ biến nhất là AIC (Akaike Information Criterion) và BIC (Bayesian Information Criterion).
1. Giới thiệu tiêu chí AIC, BIC
- AIC và BIC đều đo lường sự cân bằng giữa độ phù hợp (fit) và độ phức tạp (complexity) của mô hình.
- Công thức tổng quát:
- AIC = 2k - 2ln(L)
- BIC = k * ln(n) - 2ln(L)
- k: số tham số, L: likelihood, n: số quan sát
- Giá trị AIC/BIC càng thấp càng tốt (ưu tiên mô hình đơn giản nhưng fit tốt).
2. Thực hành chọn mô hình ARIMA với AIC, BIC
Ví dụ Python:
import pandas as pd
import statsmodels.api as sm
# Giả sử data là chuỗi thời gian
best_aic = float('inf')
best_order = None
for p in range(3):
for d in range(2):
for q in range(3):
try:
model = sm.tsa.ARIMA(data, order=(p,d,q)).fit()
if model.aic < best_aic:
best_aic = model.aic
best_order = (p,d,q)
except:
continue
print(f"Best ARIMA order: {best_order}, AIC: {best_aic}")
3. Thực hành chọn mô hình GARCH với AIC, BIC
Ví dụ Python:
from arch import arch_model
best_aic = float('inf')
best_order = None
for p in range(1, 3):
for q in range(1, 3):
try:
model = arch_model(data, vol='Garch', p=p, q=q).fit(disp='off')
if model.aic < best_aic:
best_aic = model.aic
best_order = (p, q)
except:
continue
print(f"Best GARCH order: {best_order}, AIC: {best_aic}")
4. Khi nào nên đơn giản hóa mô hình?
- Khi AIC/BIC giảm không đáng kể khi tăng số tham số.
- Khi mô hình quá phức tạp, khó diễn giải hoặc overfit dữ liệu huấn luyện.
- Khi mục tiêu là dự báo thực tế, ưu tiên mô hình đơn giản, dễ triển khai.
5. Lưu ý khi sử dụng AIC, BIC
- Không so sánh AIC/BIC giữa các loại mô hình khác nhau (chỉ so sánh cùng loại).
- AIC ưu tiên fit tốt, BIC ưu tiên đơn giản hóa (BIC phạt số tham số mạnh hơn).
- Nên kết hợp với kiểm định out-of-sample và đánh giá thực tế.
Tổng kết
- AIC, BIC là công cụ mạnh để chọn mô hình tối ưu, tránh overfitting.
- Thực hành chọn mô hình ARIMA, GARCH với Python rất trực quan.
- Ưu tiên mô hình đơn giản, dễ triển khai khi chênh lệch AIC/BIC không lớn.
Chúc bạn thành công trong kiểm định và lựa chọn mô hình định lượng!