Chúng ta sẽ cùng tìm hiểu cách ước lượng tác động can thiệp trung bình cho mô hình trung bình mũ với một biến can thiệp nội sinh. Đây là một bài toán ước lượng hai bước, trong đó bước thứ nhất tương ứng với mô hình can thiệp và bước thứ hai là mô hình kết quả. Khác với các mô hình có hàm hợp lý tách rời, do biến can thiệp mang tính nội sinh, hàm hợp lý của mô hình này không thể tách rời. Chúng ta sẽ sử dụng phương pháp mô men tổng quát thông qua lệnh gmm để giải quyết bài toán này và thu được sai số chuẩn cùng các tác động cận biên chính xác nhất.
Mô hình khung kết quả tiềm năng
Bắt đầu với khung kết quả tiềm năng để xác định tác động can thiệp trung bình. Đối với mỗi mức độ can thiệp, sẽ có một kết quả mà chúng ta quan sát được nếu một đối tượng nhận mức can thiệp đó. Khi có một kết quả tuân theo phân phối trung bình mũ và có hai mức độ can thiệp, chúng ta có thể chỉ định cách các giá trị trung bình của kết quả tiềm năng được tạo ra từ các biến độc lập và phần dư. Các tham số bao gồm các hệ số chặn không đổi và hệ số hồi quy của biến độc lập. Cần lưu ý rằng phân phối của kết quả tiềm năng có thể là Poisson, lognormal hoặc một phân phối bất kỳ khác có trung bình mũ.
Biến can thiệp được quan sát dưới hai trạng thái: được can thiệp hoặc không được can thiệp. Sai số của kết quả tiềm năng có tương quan với việc chỉ định can thiệp. Việc can thiệp được xác định bởi các biến độc lập trong một hồi quy probit, với sai số tuân theo phân phối chuẩn tắc. Chúng ta coi biến can thiệp là nội sinh bằng cách cho phép sai số của kết quả tiềm năng tương quan với sai số của mô hình can thiệp. Giả định rằng phương sai của các sai số không quan sát được là như nhau cho cả nhóm đối chứng và nhóm can thiệp, đồng thời mức độ tương quan của chúng với sai số can thiệp cũng bằng nhau.
Xác định tác động can thiệp
Mục tiêu của chúng ta là xác định tác động can thiệp dựa trên điều kiện của các biến độc lập. Đây chính là phần chênh lệch giữa các giá trị trung bình của kết quả tiềm năng khi được can thiệp và khi không được can thiệp.
Tác động can thiệp trung bình hay ATE chính là giá trị trung bình biên của các tác động can thiệp có điều kiện trên toàn bộ các biến độc lập. Nếu chúng ta nắm được các hệ số hồi quy và các hệ số chặn đã được điều chỉnh theo phương sai, chúng ta hoàn toàn có thể xác định được tác động này. Phương pháp ước lượng mà chúng ta sử dụng sẽ cung cấp các điểm ước lượng nhất quán cho cả tham số mô hình và tác động ATE.
Xây dựng công cụ ước lượng
Chúng ta không thể chỉ chạy các hồi quy riêng biệt cho nhóm đối chứng và nhóm can thiệp rồi lấy hiệu số của các giá trị trung bình để ước lượng tác động. Các sai số của kết quả tiềm năng có tương quan với biến can thiệp, và một hồi quy bỏ qua sự tương quan này sẽ không mang lại các ước lượng nhất quán. Bằng cách mô hình hóa quá trình can thiệp và đưa thông tin này vào mô hình trung bình mũ ở bước thứ hai, chúng ta có thể kiểm soát sự tương quan và thu được kết quả chính xác.
Thay vì áp đặt một hàm hợp lý nghiêm ngặt đòi hỏi các giả định phân phối khắt khe, chúng ta thiết lập mô hình thông qua các điều kiện mô men. Điều kiện mô men là các giá trị kỳ vọng xác định tham số mô hình theo các mô men thực tế. Phương pháp GMM tìm kiếm các giá trị tham số sao cho tiệm cận nhất với việc thỏa mãn điều kiện mô men trên dữ liệu mẫu. Đối với bài toán hai bước này, thay vì chạy tuần tự và phải tự hiệu chỉnh sai số chuẩn thủ công, chúng ta sẽ ước lượng đồng thời các điều kiện mô men cho cả hai bước bằng GMM, qua đó tự động hiệu chỉnh sai số một cách hoàn hảo.
Quá trình ước lượng bằng mã lệnh
Chúng ta sẽ sử dụng GMM để ước lượng các tham số từ dữ liệu mô phỏng. Kết quả đầu ra tuân theo phân phối lognormal. Các biến macro cục bộ sẽ được dùng để tổ chức mã lệnh cho gọn gàng. Đầu tiên, phương trình mô men cho biến can thiệp được lưu trong biến macro tên là first, và công cụ tương ứng nằm trong biến first inst.
1. local first (first:t - normal({t: x1 z1 z2 _cons}))
2. local first_inst instruments(first: x1 z1 z2)Tiếp theo là các điều kiện mô men cho bước thứ hai, tương ứng với đạo hàm của hệ số và hệ số chặn của trung bình mũ. Phương trình được lưu vào biến second và công cụ lưu vào biến second inst. Chúng ta sử dụng tùy chọn loại bỏ hệ số chặn tổng thể để thiết lập hệ số chặn tách biệt cho từng nhóm can thiệp.
1. local second (second:(exp(0.t*({y0:x1 x2 x3 _cons})+
2> 1.t*({y1:x1 x2 x3 _cons}))*
3> cond(t,normal({sigmat}+{t:})/normal({t:}),
4> (normal(-{sigmat}-{t:}))/(normal(-{t:}))))*
5> (y- (exp(0.t*({y0:})+
6> 1.t*({y1:}))*
7> cond(t,normal({sigmat}+{t:})/normal({t:}),
8> (normal(-{sigmat}-{t:}))/(normal(-{t:}))))))
9. local second_inst instruments(second: c.(x1 x2 x3)#i.t ibn.t, noconstant)Sau đó, chúng ta định nghĩa các điều kiện mô men cho tham số hiệp phương sai và biến ATE, được lưu trong các biến macro tương ứng. Hằng số sẽ đóng vai trò là biến công cụ cho các phương trình này.
1. local secondt (secondt:(exp(0.t*({y0:})+1.t*({y1:}))*
2> cond(t,normalden({sigmat}+{t:})/normal({t:}),
3> (-normalden(-{sigmat}-{t:}))/(normal(-{t:}))))*
4> (y- (exp(0.t*({y0:})+
5> 1.t*({y1:}))*
6> cond(t,normal({sigmat}+{t:})/normal({t:}),
7> (normal(-{sigmat}-{t:}))/(normal(-{t:}))))))
8. local ate (ate: {ate} - (exp({y1:})-exp({y0:})))Bây giờ lệnh gmm sẽ được thực thi. Vì số lượng điều kiện mô men bằng đúng số lượng tham số, mô hình được nhận dạng chính xác. Chúng ta dùng phương pháp ước lượng một bước với ma trận trọng số ban đầu là ma trận đơn vị chứa mười bốn phần tử.
1. matrix I = I(14)
2. gmm `first' `second' `secondt' `ate', `first_inst' `second_inst' onestep winitial(I)Kết quả trả về cho thấy giá trị ATE ước lượng xấp xỉ âm không phẩy ba. Chúng ta có thể đối chiếu giá trị này với trung bình chênh lệch mẫu nguyên thủy giữa hai nhóm kết quả tiềm năng để kiểm chứng.
1. gen diff = y1 - y0
2. sum diffChênh lệch trung bình trên dữ liệu thực tế cũng trùng khớp với mức âm không phẩy ba. Điều này chứng tỏ phương pháp đưa tất cả các phương trình vào cùng một hệ để giải quyết bằng GMM đã xử lý triệt để bài toán nội sinh và mang lại điểm ước lượng đáng tin cậy.
Phụ lục dữ liệu mô phỏng
Để bạn có thể tự kiểm chứng, dưới đây là đoạn mã tạo dữ liệu mô phỏng tuân theo phân phối lognormal với một biến can thiệp nội sinh. Các sai số của kết quả tiềm năng được thiết lập để có phương sai và hệ số tương quan riêng biệt, đồng thời gán các hệ số hồi quy khác nhau cho nhóm đối chứng và nhóm can thiệp.
1. set seed 113432
2. set obs 10000
3. generate x1 = rnormal()
4. generate x2 = rnormal()
5. generate x3 = rpoisson(1)
6. generate z1 = ln(rchi2(4))
7. generate z2 = rnormal()
8. matrix corr = ( 1, .4, .4 \
9> .4, 1, .4 \
10> .4, .4, 1)
11. matrix sds = (.8, .8,1)
12. drawnorm e0 e1 u, corr(corr) sd(sds)
13. gen t = .5*x1 + .3*z1 - z2 -.5 + u> 0
14. gen y0 = exp(.3*x1 + .2*x2 - .3*x3 + -.5 + e0)
15. gen y1 = exp(.2*x1 + .4*x2 - .6*x3 + -.9 + e1)
16. gen y = 0.t*y0 + 1.t*y1✨ Giá trị đắt giá: Khi làm việc với mô hình nhiều phương trình mà hàm hợp lý không thể tách rời do đặc tính nội sinh, phương pháp GMM là một giải pháp cực kỳ sắc bén. Thay vì phải ước lượng từng phần rời rạc và đối mặt với rủi ro tính toán sai lệch của sai số chuẩn, việc đưa toàn bộ các điều kiện mô men vào giải quyết đồng thời sẽ đảm bảo tính nhất quán tuyệt đối cho cả tham số hồi quy lẫn tác động can thiệp trung bình.
Câu hỏi tư duy: Nếu biến kết quả của bạn không tuân theo phân phối lognormal mà là một phân phối đếm như Poisson, theo bạn phương trình thiết lập điều kiện mô men ở bước thứ hai sẽ cần thay đổi như thế nào để phản ánh đúng hàm liên kết của dữ liệu? Hãy thử điều chỉnh các lệnh macro ở trên và chạy lại với một tập dữ liệu đếm để quan sát sự khác biệt nhé.


