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

GAM — Mô hình cộng tính tổng quát

GAM (Generalized Additive Models) mô hình hóa quan hệ phi tuyến mượt giữa YY và từng biến giải thích bằng hàm trơn (smooth functions / splines) thay vì hệ số tuyến tính — không cần định trước dạng hàm như NLS. GAM là cầu nối giữa hồi quy tuyến tính và mô hình phi tham số.

Khi nào dùng

Dùng GAM khi nghi ngờ quan hệ phi tuyến nhưng chưa biết dạng (vd tác động tuổi/thu nhập có hình chữ U). GAM cho đồ thị hàm trơn dễ diễn giải mà vẫn giữ tính cộng tính.


Đặc tả mô hình

g(E[Yi])=β0+f1(X1i)+f2(X2i)++fk(Xki)g\big(E[Y_i]\big) = \beta_0 + f_1(X_{1i}) + f_2(X_{2i}) + \dots + f_k(X_{ki})

với g()g(\cdot) là hàm liên kết (identity/logit/log…) và fjf_jhàm trơn (spline) ước lượng từ dữ liệu, có phạt độ cong để tránh quá khớp; độ trơn chọn qua GCV/REML.


Thực hiện trong EcoLab

  1. Module Mô hình hóa → họ Phi tuyến & bán tham sốGAM.
  2. Chọn YY, các XX, đánh dấu biến nào dùng hàm trơn; chọn hàm liên kết.
  3. Chạy, xem đồ thị hàm trơn từng biến + độ tự do hiệu dụng; xuất mã tái lập.

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

* === GAM — Mô hình cộng tính tổng quát ===
* Stata không có lệnh GAM gốc; dùng npregress hoặc semipar

* Cách 1: npregress series (từ Stata 15+)
npregress series y x1 x2, basis(bspline 4)

* Cách 2: semipar (hồi quy bán tham số)
semipar y x3, nonpar(x1)

Hạn chế

  • Diễn giải bằng đồ thị thay vì một hệ số duy nhất; khó đưa vào suy diễn nhân quả gọn.
  • Giả định cộng tính (không tự động bắt tương tác trừ khi khai báo).

Video minh họa

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

Xem thêm