Chuyển tới nội dung chính

Elastic Net — Chính quy hóa L1 + L2

Elastic Net kết hợp phạt L1 (Lasso) và phạt L2 (Ridge). Nó vừa chọn biến (như Lasso) vừa xử lý tốt nhóm biến tương quan cao (như Ridge) — khắc phục nhược điểm không ổn định của Lasso khi các biến tương quan.

Khi nào dùng

Dùng Elastic Net khi có nhiều biến và tồn tại nhóm biến tương quan cao mà bạn muốn giữ/loại theo nhóm thay vì chọn ngẫu nhiên một biến.


Đặc tả mô hình

minβ  i=1n(YiXiβ)2+λ[αjβj+(1α)jβj2]\min_{\beta} \; \sum_{i=1}^{n} (Y_i - X_i \beta)^2 + \lambda \left[ \alpha \sum_{j} |\beta_j| + (1-\alpha) \sum_{j} \beta_j^2 \right]
  • α[0,1]\alpha \in [0,1]tỉ lệ trộn: α=1\alpha = 1 ⇒ Lasso; α=0\alpha = 0 ⇒ Ridge.
  • λ\lambda điều khiển tổng mức phạt.

Thực hiện trong EcoLab

  1. Module Mô hình hóa → họ Hồi quy chính quy hóaElastic Net.
  2. Chọn YY, các XX; chuẩn hóa; chọn α\alphaλ\lambda (CV trên lưới 2 chiều).
  3. Đọc tập biến giữ lại + hệ số; xuất mã tái lập.

Minh họa mã tái lập

* === Elastic Net (Stata 16+) ===
* alpha = 0.5 (tỉ lệ trộn L1/L2), chọn lambda bằng CV
elasticnet linear y x1-x20, selection(cv) alphas(0.5)

* Xem hệ số và biến được chọn
lassocoef, display(coef, penalized)

Hạn chế

  • 2 tham số (α\alpha, λ\lambda) cần tinh chỉnh ⇒ CV tốn hơn.
  • Vẫn là phương pháp thiên về dự báo; diễn giải nhân quả cần thận trọng.

Video minh họa

Video Tutorial: Hướng dẫn chạy Elastic Net trong EcoLab

Xem thêm