messenger_logo
Liên hệ qua Messenger
SciEco

Kiểm định thông số kỹ thuật mô hình và sử dụng phiên bản chương trình gmm

I
IEFPA
Ngày viết: 01/06/2026

Trong phân tích khoa học dữ liệu, việc ước lượng tham số mô hình là một bước quan trọng, nhưng việc đảm bảo mô hình được chỉ định chính xác còn thiết yếu hơn. Bài viết này sẽ đi sâu vào cách kiểm định thông số kỹ thuật mô hình bằng phương pháp momen tổng quát (GMM) trong Stata, đặc biệt khi làm việc với các mô hình nhận dạng thừa. Chúng ta sẽ khám phá cách sử dụng phiên bản chương trình của lệnh GMM, vốn rất hữu ích cho các mô hình phức tạp, và cách kiểm định các ràng buộc nhận dạng thừa bằng thống kê J của Hansen.

Mô Hình Poisson Với Biến Giải Thích Nội Sinh

Chúng ta sẽ sử dụng GMM để ước lượng các tham số của một mô hình Poisson có biến giải thích nội sinh. Biến giải thích nội sinh là những biến có thể tương quan với thành phần sai số của mô hình, dẫn đến ước lượng không nhất quán nếu không được xử lý đúng cách.

Mô hình hồi quy Poisson của biến phụ thuộc y_i trên các biến ngoại sinh x_i và biến nội sinh y_{2,i} có dạng kỳ vọng của y_i với điều kiện các biến x_i, y_{2,i} và biến nhiễu epsilon_i được biểu thị qua hàm mũ của tổng beta_1 nhân x_i cộng beta_2 nhân y_{2,i}, rồi cộng thêm biến nhiễu epsilon_i. Biến nhiễu epsilon_i có giá trị trung bình bằng 0. Các biến giải thích y_{2,i} có thể tương quan với epsilon_i. Công thức này tương tự như công thức của lệnh ivpoisson với các sai số cộng gộp.

Các điều kiện momen là các kỳ vọng xác định tham số mô hình dựa trên các momen thực. GMM tìm các giá trị tham số gần nhất với việc thỏa mãn điều kiện momen mẫu tương ứng. Trong mô hình này, chúng ta định nghĩa một hàm sai số u_i là hiệu số giữa biến phụ thuộc y_i và phần dự báo mũ exp(beta_1 x_i + beta_2 y_{2,i}).

Giả sử chúng ta có thêm các biến ngoại sinh x_{2,i} không tương quan với epsilon_i nhưng lại tương quan với y_{2,i}. Kết hợp chúng với x_i, chúng ta có tập hợp các công cụ z_i bao gồm x_i và x_{2,i}. Khi đó, các điều kiện momen sẽ là kỳ vọng của tích các công cụ z_i và hàm sai số u_i bằng 0.

Nếu có k tham số trong mô hình và q công cụ, và q lớn hơn k, thì có nhiều điều kiện momen hơn số tham số. Mô hình này được gọi là mô hình nhận dạng thừa. Trong trường hợp này, GMM tìm các ước lượng tham số bằng cách cực tiểu hóa một hàm mục tiêu Q, trong đó hàm này bao gồm các điều kiện momen mẫu được nhân với một ma trận trọng số W có kích thước q nhân q.

Kiểm Định Điều Kiện Nhận Dạng Thừa

Khi mô hình được chỉ định chính xác, kỳ vọng của tích các công cụ z_i và hàm sai số u_i sẽ bằng 0. Trong trường hợp này, nếu W là một ma trận trọng số tối ưu, nó sẽ bằng nghịch đảo của ma trận hiệp phương sai của các điều kiện momen.

Kiểm định của Hansen đánh giá giả thuyết không rằng một mô hình nhận dạng thừa được chỉ định chính xác. Thống kê kiểm định J được sử dụng, được tính bằng số lượng quan sát N nhân với giá trị hàm mục tiêu Q tại các ước lượng tham số. Nếu W là ma trận trọng số tối ưu, dưới giả thuyết không, thống kê J của Hansen có phân phối chi bình phương với q trừ k bậc tự do.

Các ước lượng hai bước và ước lượng lặp được sử dụng bởi lệnh gmm cung cấp các ước lượng của ma trận W tối ưu. Đối với các mô hình nhận dạng thừa, lệnh estat overid sẽ tính toán thống kê J của Hansen sau khi các ước lượng này được sử dụng.

Chương Trình Đánh Giá Momen

Đối với các mô hình phức tạp hơn, việc sử dụng phiên bản chương trình của gmm có thể dễ dàng hơn so với phiên bản tương tác. Chúng ta sẽ định nghĩa một chương trình mà gmm có thể gọi để tính toán các điều kiện momen cho mô hình Poisson với các biến giải thích nội sinh. Chương trình này tính toán hàm sai số u_i, và gmm sẽ tạo ra các điều kiện momen bằng cách nhân hàm sai số với các công cụ z_i.

Để giải các điều kiện momen có trọng số, gmm phải tính đạo hàm của các điều kiện momen theo các tham số. Người dùng có thể tự chỉ định các đạo hàm này hoặc gmm sẽ tính toán chúng bằng số. Việc tự chỉ định các đạo hàm có thể cải thiện tốc độ và tính ổn định số học.

Khi ước lượng các dạng tuyến tính của tham số, người dùng có thể chỉ định đạo hàm cho gmm dưới dạng tuyến tính (dự báo). gmm sau đó sẽ sử dụng quy tắc chuỗi để xác định đạo hàm của hàm sai số u_i theo các tham số. Hàm sai số u_i của chúng ta là một hàm của dự báo tuyến tính beta_1 x_i cộng beta_2 y_{2,i}.

Chương trình gmm_ivpois tính toán hàm sai số u_i và đạo hàm của u_i theo dự báo tuyến tính beta_1 x_i cộng beta_2 y_{2,i}.

1program gmm_ivpois
2    version 14.1
3    syntax varlist [if], at(name) depvar(varlist) rhs(varlist) ///
4           [derivatives(varlist)]
5    tempvar m
6    quietly gen double `m' = 0 `if'
7    local i = 1
8    foreach var of varlist `rhs' {
9        quietly replace `m' = `m' + `var'*`at'[1,`i'] `if'
10        local i = `i' + 1
11    }
12    quietly replace `m' = `m' + `at'[1,`i'] `if'
13    quietly replace `varlist' = `depvar' - exp(`m') `if'
14    if "`derivatives'" == "" {
15         exit
16    }
17    replace `derivatives' = -exp(`m')

end

Các dòng 3–4 của gmm_ivpois chứa câu lệnh syntax để phân tích cú pháp các đối số của chương trình. Tất cả các chương trình đánh giá momen phải chấp nhận một varlist, điều kiện if, và tùy chọn at(). varlist tương ứng với các biến lưu trữ giá trị của các hàm sai số. Chương trình gmm_ivpois sẽ tính toán hàm sai số và lưu trữ nó vào varlist được chỉ định. Tùy chọn at() được chỉ định với tên của một ma trận chứa các tham số mô hình. Điều kiện if chỉ định các quan sát mà việc ước lượng được thực hiện.

Chương trình cũng yêu cầu các tùy chọn depvar() và rhs(). Tên của biến phụ thuộc được chỉ định trong tùy chọn depvar(). Các biến giải thích được chỉ định trong tùy chọn rhs().

Tại dòng 4, derivatives() là tùy chọn. Tên biến được chỉ định ở đây tương ứng với đạo hàm của hàm sai số theo dự báo tuyến tính.

Dự báo tuyến tính của các biến giải thích được lưu trữ trong biến tạm thời m qua các dòng 6–12. Tại dòng 13, chúng ta gán giá trị của hàm sai số cho varlist được chỉ định. Các dòng 14–16 cho phép chương trình thoát nếu derivatives() không được chỉ định. Ngược lại, tại dòng 17, chúng ta lưu trữ giá trị đạo hàm của hàm sai số theo dự báo tuyến tính vào biến được chỉ định trong derivatives().

Dữ Liệu Thực Nghiệm

Chúng ta sẽ mô phỏng dữ liệu từ một hồi quy Poisson với một biến hiệp phương sai nội sinh, sau đó sử dụng gmm và chương trình gmm_ivpois để ước lượng các tham số hồi quy. Cuối cùng, chúng ta sẽ sử dụng estat overid để kiểm tra thông số kỹ thuật của mô hình. Chúng ta mô phỏng một mẫu ngẫu nhiên gồm 3.000 quan sát.

1. set seed  45
2. set obs 3000
3number of observations (_N) was 0, now 3,000
4. generate x = rnormal()*.8 + .5
5. generate z = rchi2(1)
6. generate w = rnormal()*.5
7. matrix cm = (1, .9 \ .9, 1)
8. matrix sd = (.5,.8)
9. drawnorm e u, corr(cm) sd(sd)

Chúng ta tạo các biến hiệp phương sai ngoại sinh x, z, và w. Biến x sẽ là một biến giải thích, trong khi z và w sẽ là các công cụ bổ sung. Sau đó, chúng ta sử dụng lệnh drawnorm để rút các sai số e và u. Các sai số này có tương quan dương với nhau.

1. generate y2 = exp(.2*x + .1*z + .3*w -1 + u)
2. generate y = exp(.5*x + .2*y2+1) + e

Chúng ta tạo biến giải thích nội sinh y2 dưới dạng hồi quy lognormal trên các công cụ. Biến kết quả y có giá trị trung bình mũ trên x và y2, với e là sai số cộng gộp. Vì e có tương quan với u, nên y2 có tương quan với e, khiến nó trở thành biến nội sinh.

Ước Lượng Tham Số Mô Hình

Bây giờ, chúng ta sử dụng gmm để ước lượng các tham số của hồi quy Poisson với các biến hiệp phương sai nội sinh. Tên của chương trình đánh giá momen của chúng ta được liệt kê ngay sau gmm. Các công cụ mà gmm sẽ sử dụng để hình thành các điều kiện momen được liệt kê trong tùy chọn instruments(). Chúng ta chỉ định các tùy chọn depvar() và rhs() với các biến phù hợp; chúng sẽ được chuyển đến gmm_ivpois.

Các tham số được chỉ định dưới dạng tuyến tính y trong tùy chọn parameters(), đồng thời chúng ta chỉ định haslfderivatives để thông báo cho gmm rằng gmm_ivpois cung cấp các đạo hàm của dạng tuyến tính này. Tùy chọn nequations() cho gmm biết có bao nhiêu hàm sai số cần được mong đợi.

1. gmm gmm_ivpois, depvar(y) rhs(x y2)             ///
2>         haslfderivatives instruments(x z w)     ///                            
3>         parameters({y: x y2 _cons}) nequations(1)
4Step 1
5Iteration 0:   GMM criterion Q(b) =  14.960972
6Iteration 1:   GMM criterion Q(b) =  3.3038486
7Iteration 2:   GMM criterion Q(b) =  .59045217
8Iteration 3:   GMM criterion Q(b) =  .00079862
9Iteration 4:   GMM criterion Q(b) =  .00001419
10Iteration 5:   GMM criterion Q(b) =  .00001418
11Step 2
12Iteration 0:   GMM criterion Q(b) =   .0000567
13Iteration 1:   GMM criterion Q(b) =  .00005648
14Iteration 2:   GMM criterion Q(b) =  .00005648
15GMM estimation
16Number of parameters =   3
17Number of moments    =   4
18Initial weight matrix: Unadjusted                 Number of obs   =      3,000
19GMM weight matrix:     Robust
20------------------------------------------------------------------------------
21             |               Robust
22             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
23-------------+----------------------------------------------------------------
24           x |   .5006366   .0033273   150.46   0.000     .4941151     .507158
25          y2 |   .2007893   .0075153    26.72   0.000     .1860597    .2155189
26       _cons |   1.000717   .0063414   157.81   0.000      .988288    1.013146
27------------------------------------------------------------------------------
28Instruments for equation 1: x z w _cons

Các hệ số ước lượng của chúng ta đều có ý nghĩa thống kê (giá trị p rất nhỏ). Các giá trị ước lượng cho x là 0.50, cho y2 là 0.20 và hằng số là 1.00, rất gần với các giá trị tham số thực trong mô phỏng dữ liệu (0.5, 0.2, 1.0). Tuy nhiên, mô hình vẫn có thể bị chỉ định sai.

Kiểm Định Điều Kiện Nhận Dạng Thừa

Chúng ta sử dụng estat overid để tính thống kê J của Hansen.

1. estat overid
2  Test of overidentifying restriction:
3  Hansen's J chi2(1) = .169449 (p = 0.6806)

Thống kê J bằng 0.17. Ngoài việc tính J của Hansen, estat overid còn cung cấp một kiểm định chống lại việc chỉ định sai mô hình. Trong trường hợp này, chúng ta có nhiều hơn một công cụ so với biến giải thích, vì vậy thống kê J có phân phối chi bình phương với một bậc tự do. Xác suất nhận được giá trị chi bình phương (1) lớn hơn 0.17 được đưa ra trong dấu ngoặc đơn. Xác suất này—giá trị p của kiểm định—là lớn (0.6806), do đó chúng ta không bác bỏ giả thuyết không rằng mô hình được chỉ định đúng cách. Điều này cho thấy các ràng buộc nhận dạng thừa của mô hình là hợp lệ.

Kết luận

Chúng ta đã trình bày cách ước lượng các tham số của một hồi quy Poisson với biến giải thích nội sinh bằng cách sử dụng phiên bản chương trình đánh giá momen của gmm. Chúng ta cũng đã minh họa cách sử dụng estat overid để kiểm định việc chỉ định sai mô hình sau khi ước lượng một mô hình nhận dạng thừa trong gmm.

✨ Giá trị đắt giá

Việc hiểu rõ và áp dụng phiên bản chương trình của lệnh gmm không chỉ nâng cao hiệu quả ước lượng cho các mô hình phức tạp mà còn cho phép kiểm soát tốt hơn các đạo hàm, từ đó cải thiện tốc độ tính toán và sự ổn định số học, là yếu tố then chốt trong các dự án khoa học dữ liệu quy mô lớn.

Câu hỏi tư duy hoặc bài tập ứng dụng

Giả sử bạn cần mở rộng mô hình Poisson với biến nội sinh này để bao gồm thêm nhiều biến giải thích và công cụ. Bạn sẽ điều chỉnh chương trình gmm_ivpois và lệnh gmm như thế nào để xử lý sự phức tạp gia tăng này, và những thách thức nào có thể phát sinh trong việc đảm bảo tính đúng đắn của các điều kiện momen và kiểm định nhận dạng thừa?


Bài viết khác
Phương pháp ước lượng tối đa khả dĩ mục tiêu thường được gọi là TMLE là một công cụ mạnh mẽ trong phân tích nhân quả. Nhiều nhà nghiên cứu từng nghe về đặc tính song trùng bền vững của phương pháp này nhưng chỉ thực sự thấu hiểu nó khi tiến hành giả lập dữ liệu thực tế. Phương pháp này hoạt động cực kỳ hiệu quả khi một trong hai mô hình kết quả hoặc mô hình điều trị được thiết lập chính xác. Việc kết hợp thuật toán XGBoost cùng TMLE giúp tự động bắt trọn các mối quan hệ phức tạp trong dữ liệu mà không cần phải khai báo các tương tác thủ công. Bài viết này sẽ đi sâu vào cơ chế vận hành của phương pháp thông qua việc giả lập dữ liệu cụ thể trong môi trường R. Khái Niệm Về Tmle TMLE là một phương pháp thống kê tiên tiến được sử dụng để ước lượng các tác động nhân quả trong các nghiên cứu quan sát và thử nghiệm lâm sàng. Phương pháp này kết hợp linh hoạt giữa các thuật toán học máy và kỹ thuật thống kê truyền thống nhằm mang lại các ước lượng vững cho hiệu quả tác động của can thiệp, đồng thời kiểm soát tốt các yếu tố nhiễu. Quy trình vận hành của TMLE gồm hai giai đoạn chính. Đầu tiên, hệ thống sẽ ước lượng mô hình kết quả và mô hình điều trị. Sau đó, các ước lượng này được sử dụng để hiệu chỉnh nhằm hướng trực tiếp đến tham số mục tiêu cần nghiên cứu. Cách tiếp cận này đặc biệt hữu ích trong các bối cảnh mà phương pháp truyền thống dễ bị lệch hoặc hoạt động kém hiệu quả do sự xuất hiện của các mối quan hệ phi tuyến phức tạp.
Bài viết này khám phá cách cập nhật và tạo các lệnh Stata để tích hợp với những mô hình AI phổ biến như ChatGPT, Claude, Gemini và Grok. Sau khi bài đăng trước về lệnh Stata để chạy ChatGPT trở nên phổ biến, những thay đổi trong mã API của OpenAI đã khiến lệnh đó không còn hoạt động. Mục tiêu của chúng tôi là hướng dẫn bạn cách điều chỉnh mã API và viết các lệnh Stata tương tự để tận dụng sức mạnh của các công cụ AI khác nhau trực tiếp từ môi trường Stata. Trọng tâm của bài viết này, cũng như bài trước, là minh họa mức độ dễ dàng để tận dụng các tính năng của PyStata nhằm kết nối với ChatGPT và các công cụ AI khác, thay vì đưa ra lời khuyên về cách sử dụng các công cụ AI để trả lời các câu hỏi cụ thể của Stata. Do đó, các ví dụ chỉ đơn giản là yêu cầu một bài haiku về Stata. Tuy nhiên, bạn có thể truyền bất kỳ yêu cầu nào mà bạn thấy hữu ích trong quy trình làm việc của mình với Stata. Tổng Quan Về Tích Hợp Stata/Python Chúng tôi giả định rằng bạn đã quen thuộc với tích hợp Stata/Python và cách viết lệnh chatgpt ban đầu. Nếu các chủ đề này còn lạ lẫm, bạn nên đọc các bài đăng trên blog dưới đây:
SciEco
Science for Economics
Định hướng đào tạo phân tích dữ liệu, xây dựng chính sách, tối ưu hoá danh mục tài chính cá nhân và dự báo thị trường.
Liên hệ
Địa chỉ: Số 60, ngõ 41, Phố Thái Hà, Trung Liệt, Đống Đa, Hà Nội (Google Map)
Email: science.for.economics@gmail.com
Hotline: 03.57.94.7680 (Mrs. Hà)
Mạng xã hội