Cách chạy mô hình logit/probit trong STATA

Mình sẽ dùng bộ dữ liệu “Low Birth Weight” để minh họa (Để dùng bộ dữ liệu này thì các bạn gõ lệnh webuse lbw trong cửa sổ lệnh của STATA là okay). Giả sử mình muốn kiểm tra xem nếu người mẹ có hút thuốc trong quá trình mang thai thì đứa con có bị nhẹ cân hay không? Các biến mình dùng trong mô hình là:

  • Biến phụ thuộc: low – nhận giá trị là 1 nếu đứa bé nhẹ hơn 2.5 kg và nhận giá trị 0 nếu đứa bé nặng từ 2.5 kg trở lên.
  • Biến độc lập: smoke – nhận giá trị là 1 nếu người mẹ có hút thuốc trong thai kỳ và nhận giá trị 0 nếu không hút thuốc
  • Các biến kiểm soát: Đây cũng là các biến độc lập, nhưng mình không quá để ý tới tác động của các biến này đối với biến phụ thuộc. Sự có mặt của các biến này trong mô hình giúp mình kiểm soát được các ảnh hưởng khác (không phải ảnh hưởng của việc hút thuốc) đến việc đứa bé ra đời có bị nhẹ cân hay không. Mình sẽ dùng các biến như: Age (tuổi của người mẹ),  ptl (số lần sinh sản trước đó của người mẹ), ht (nhận giá trị 1 nếu người mẹ có bệnh cao huyết áp và 0 nếu người mẹ không có tiền sử bị bệnh cao huyết áp). Tất nhiên, sẽ còn có những nhân tố khác ảnh hưởng đến biến phụ thuộc nữa, nhưng ad chỉ lấy ví dụ 3 nhân tố này thôi nhé.

Lệnh mình sẽ dùng đó là lệnh LOGIT. Cấu trúc lệnh này khá đơn giản.

logit bienphuthuoc  biendoclap  [, option]

option có thể có hoặc không nhé.

Trong ví dụ trên, mình sẽ chạy lệnh như sau:

logit  low  smoke  age  ptl  ht

Kết quả mình có được:

Kết quả trên có thể giúp các bạn đưa ra một số nhận định sau:

Biến smoke, ptl, ht đều có hệ số hồi quy dương. Điều này nghĩa là nếu người mẹ hút thuốc trong thời gian mang thai, hoặc người mẹ trước đây đã từng sinh con, hoặc người mẹ có tiền sử bị cao huyết áp thì sẽ làm tăng log của hệ số odd. Hệ số odd trong trường hợp này là tỷ số giữa xác suất đứa con bị nhẹ cân chia cho xác suất đứa con không bị nhẹ cân. Khi log của hệ số odd tăng thì nghĩa là hệ số odd cũng tăng. Điều này dẫn đến tăng xác suất của việc đứa bé sinh ra bị nhẹ cân tăng.

Riêng biến age có hệ số hồi quy âm, điều này nghĩa là người mẹ càng lớn tuổi thì xác suất đứa con bị nhẹ cân sẽ giảm.

Ta cũng có thể trình bày kết quả hồi quy dưới dạng ảnh hưởng trực tiếp đến hệ số Odd luôn chứ không phải log của hệ số Odd. Chúng ta chỉ cần thêm option OR (viết tắt của odd ratio) vào sau câu lệnh là được:

logit low  smoke  age  ptl  ht,  or

Kết quả mình sẽ có được là:

Lúc này, ta sẽ giải thích như sau: Người mẹ có hút thuốc trong thai kỳ sẽ làm cho hệ số odd tăng 1.76 đơn vị, như vậy xác suất đứa con sinh ra bị nhẹ cân sẽ tăng.

Bước tiếp theo sau khi thực hiện hồi quy là chúng ta nên thực hiện kiểm tra sự phù hợp của mô hình. Ta dùng lệnh FITSTAT ngay sau lệnh hồi quy nhé.

Thông thường, các thông tin trong bảng này được sử dụng để so sánh giữa các mô hình với nhau để tìm ra mô hình nào tốt hơn. Chúng ta có thể căn cứ vào R-square, AIC hoặc BIC để lựa chọn nhé.

Trong bảng này, chúng ta được cung cấp vô số các hệ số R-square như là McFadden R2, McFadden Adjusted R2, Maximum likelihood R2, Cragg and Uhler R2, McKelvey and Zavoina R2, Efron R2, Count R2, Adjusted Count R2. Việc lựa chọn hệ số nào là tùy bạn và chỉ chọn một hệ số thống nhất để so sánh giữa các mô hình nha. Tất nhiên, mô hình có hệ số R2 lớn hơn sẽ tốt hơn.

AIC (Akaike information criterion) và BIC (Bayesian Information Criterion): Mô hình với hệ số AIC hoặc BIC nhỏ hơn thì tốt hơn nhé.

Trong bảng này còn có một thông tin để giúp kiểm tra mô hình này có ý nghĩa thống kê hay không. Chúng ta căn cứ vào kiểm định Chi-square nhé. Điều này được thể hiện ở thông tin Prob > LR = 0.002. Đây thực chất là p-value đó các bạn. Nếu P-value lớn hơn 0.1 thì nghĩa là mô hình này không có ý nghĩa thống kê. Một số tác giả có thể chọn tiêu chuẩn chặt chẽ hơn, đó là P-value phải lớn hơn 0.05 (nghĩa là mô hình có ý nghĩa thống kê ở mức 5%). Tuy nhiên, khi bộ dữ liệu càng lớn thì P-value thường có xu hướng nhỏ dần và dễ có ý nghĩa thống kê.

Cuối cùng, nếu các bạn muốn ước lượng được xác xuất cho từng trường hợp cụ thể, chúng ta dùng lệnh PREDICT ngay sau lệnh hồi quy nhé.

predict  pr_low

Như vậy, STATA đã tạo ra một biến mới tên là pr_low và biến này thể hiện xác suất đứa bé sinh ra bị nhẹ cân cho từng trường hợp được quan sát.

Nếu các bạn muốn chạy mô hình PROBIT thì chúng ta dùng lệnh PROBIT thay vì lệnh LOGIT nhé. Cấu trúc hai lệnh này hoàn toàn tương tự nhau. Cho tới nay thì vẫn chưa có lý do gì để chúng ta ưu tiên logit hơn probit cả, vậy nên các bạn chọn mô hình nào cũng được