GIỚI THIỆUDịch và biên tập từ tài liệu mở của UCLA Khi xây dựng mô hình hồi quy logistic sau được gọi tắt là mô hình nhằm xác định các mối liên quan đa biến hay nhằm mục đích dự đoán nế
Trang 1Public Health Development Center
ĐÁNH GIÁ MÔ HÌNH
HỒI QUY LOGISTIC
Trang 2NỘI DUNG
Sai lệch xác định mô hình 2
Mức độ phù hợp (Goodness-of-fit) 8
Đa cộng tuyến (Multicollinearity) 11
Ảnh hưởng của đối tượng nghiên cứu (Influential observations) 14
Vấn đề với biến số định danh, thứ tự 27
Nguồn 27 Tài liệu chia sẻ miễn phí tại Ytecongcong.COM
Góp ý gửi về nguyenkinh@ytecongcong.com
Trang 3GIỚI THIỆU
Dịch và biên tập từ tài liệu mở của UCLA
Khi xây dựng mô hình hồi quy logistic (sau được gọi tắt là mô hình) nhằm xác định các mối liên quan đa biến hay nhằm mục đích dự đoán nếu không đáp ứng các giả định của mô hình - tức là các tiền đề phải thừa nhận để có thể xây dựng mô hình - có thể dẫn đến ước lượng sai hệ số của mô hình hoặc cho ra sai số chuẩn của hệ số ước lượng được rất lớn và đương nhiên dẫn đến suy diễn kết quả phân tích sai lệch Do đó trước khi sử dụng kết quả phân tích từ mô hình trong suy diễn và giải thích kết quả cần phải kiểm tra xem mô hình xây dựng được có đủ phù hợp không Bài viết này tập trung vào cách làm thế nào để đánh giá sự phù hợp của mô hình, các vấn đề gây sai lệch và phát hiện các đối tượng nghiên cứu có tác động đáng kể đến mức độ phù hợp của mô hình hay đến ước lượng của các tham số của mô hình Các giả định được xem xét
và đánh giá bao gồm:
• Hàm logistic là phù hợp với biến thiên xác suất của các biến số độc lập
• Không bỏ mất biến số quan trọng khỏi mô hình
• Không thêm vào mô hình biến số không liên quan
• Không có sai số đo lường trong các biến số độc lập
• Các đối tượng nghiên cứu là độc lập với nhau
• Các biến số độc lập không có tương quan tuyến tính với nhau
Chú ý: Biến số độc lập được đưa vào mô hình được gọi là biến số tiên đoán trong tài liệu này Các ví dụ sử dụng dữ kiện logistic.dta được Việt hóa từ dữ kiện của trang UCLA (gõ lệnh use http://www.ytecongcong.com/logistic.dta)
Trên cơ sở đó, có thể có các sai lệch như dùng logit làm hàm liên kết để thể hiện mối liên quan giữa biến số phụ thuộc và các biến số độc lập là không đúng hoặc mối liên quan giữa các biến số này không có tính tuyến tính Việc lựa chọn sai hàm liên kết thường không quá nghiêm trọng, nhất là trong trường hợp ta đang xét trong xây dựng mô hình logistic, mà trong thực tế cần quan tâm nhiều hơn là mô hình đã có đủ các biến số độc lập có liên quan chưa và liệu các biến số có liên quan tuyến tính hay không.
Lệnh linktest trong Stata được sử dụng để phát hiện việc xác định sai mô hình, được chạy ngay sau khi thực hiện các lệnh logit hay logistic Cách kiểm tra của lệnh linktest là nếu mô hình đã được xác định hợp lý thì
sẽ không thể tìm thêm bất cứ biến số tiên đoán nào có ý nghĩa thống kê nữa trừ khi do cơ hội (xem lại Cơ hội
- sai lệch - gây nhiễu; Dịch tễ học cơ bản của Nguyễn Đỗ Nguyên)
Trang 4Sau lệnh hồi quy logit hay logistic, linktest dùng các giá trị được tiên đoán - từ mô hình mới lập - (_hat)
và giá trị tiên đoán bình phương (_hatsq) làm biến số tiên đoán để xây dựng lại mô hình
• Biến số _hat cần phải là một biến số tiên đoán có ý nghĩa thống kê vì nó là giá trị được dự đoán từ
mô hình, nếu không mô hình hoàn toàn đã bị xác định sai.
• Còn nếu mô hình đã được xác định đúng thì biến số _hatsq phải không có nhiều năng lực lực tiên đoán, dĩ nhiên ngoại trừ do cơ hội Do đó, nếu _hatsq có ý nghĩa thống kê thì lệnh linktest sẽ có ý nghĩa thống kê, nghĩa là có thể đã bỏ mất các biến số có ảnh hưởng khỏi mô hình hoặc cho biết hàm liên kết không đúng cần phải kiểm tra lại mô hình.
Ví dụ, trong bộ dữ kiện use http://www.ytecongcong.com/logistic.dta Bộ dữ kiện này do UCLA cung cấp gồm dữ kiện về 707 trường học Trong mô hình ví dụ này, các biến số giáo viên có bằng cấp được xếp loại trung bình và thấp (bangcap1), học quanh năm (quanhnam), phần trăm bữa ăn được cung cấp miễn phí (buaan) được cho là các biến số tiên đoán tốt cho biến số chỉ số kết quả học tập của trường được xếp loại thành hai nhóm cao và thấp (ketqua) Chạy hai lệnh lập mô hình logit và linktest để kiểm tra mô hình. logit ketqua quanhnam buaan bangcap1, nolo
Logistic regression Number of obs = 707
Trước tiên cần xem đã đưa đầy đủ các biến số có ảnh hưởng vào mô hình hay chưa, nếu chưa cần đưa thêm vào và đánh giá lại mô hình Nhưng trường hợp thường gặp hơn là đã được đưa tất cả các biến số vào mô hình nhưng quên mất không xem xét về khả năng tương tác giữa các biến số tiên đoán trong mô hình, ví dụ trong mô hình của số liệu này Ở đây một biến số tương tác giữa thời gian học và phần trăm bữa ăn vào mô hình bằng cách tạo ra biến số tuongtac=quanhnam*buaan và thêm vào mô hình và kiểm lại lần nữa Kết quả cho thấy biến số tương tác có ý nghĩa thống kê với p=0.015, và hơn nữa kiểm định linktest đã không còn ý nghĩa thống kê Điều này cho thấy đúng là cần đưa thêm biến số tương tác vào mô hình, và khi đưa vào đã cho một mô hình được xác định tốt hơn.
Trang 5logit ketqua quanhnam buaan bangcap1 tuongtac, nolo
Logistic regression Number of obs = 707
Từ kết quả mô hình trong lệnh logit ta có thể viết một phương trình hồi quy như sau:
Với mô hình không xét tương tác:
logit(ketqua) = 2.411226 - 1.185658*quanhnam-.0932877*buaan+ 7415145*bangcap1
Trong phương trình trên ảnh hưởng của biến số buaan vẫn giống nhau dù trường có học quanh năm hay không và bằng -.0932877 trên logit của ketqua (giải thích bằng cách thế giá trị của biến số vào mô hình) Với mô hình xét tương tác
logit(ketqua)= 2.668048 - 2.816989*quanhnam-.1014958*buaan+ 7795476*bangcap1+ 0459029*tuongtac
Lúc này ảnh hưởng của biến số buaan sẽ khác nhau tùy thuộc vào trường có học quanh năm hay không Cụ thể nếu trường không học quanh năm ảnh hưởng của biến số buaan sẽ là -.1014958 trên logit của biến số đầu ra là ketqua còn với trường học quanh năm ảnh hưởng là -.1014958 +.0459029 = -.0555929
Điều này hợp lý trong thực tế, vì một trường học quanh năm thường có tỷ lệ sinh viên có các bữa ăn miễn phí nhiều hơn các trường không học quanh năm Do đó, trong các trường học quanh năm, biến số bữa ăn có giá trị tiên đoán không mạnh cho chỉ số kết quả
Qua ví dụ này thấy rằng nếu không xác định mô hình phù hợp, ảnh hưởng của biến số bữa ăn sẽ được tính toán sai lệch.
ần lưu ý là linkest chỉ là một công cụ giúp kiểm tra mô hình, và nó có những hạn chế nhất định Tốt hơn hết là nhà nghiên cứu cần xây dựng một mô hình theo lý thuyết, theo tổng quan tài liệu và kinh nghiệm của chuyên môn của chuyên gia trong lĩnh vực và cả của người nghiên cứu, rồi mới thông qua các phép tính toán thống kê để kiểm tra mô hình so với lý thuyết của nghiên cứu
C
Ví dụ sau sẽ cho thấy không nên chỉ dựa vào linktest Lập một mô hình để tiên đoán ketqua dựa trên hai biến số là thời gian học quanh năm hay không (quanhnam) và trường có được giải thưởng hay không (giaithuong).
Trang 6logit ketqua quanhnam giaithuong, nolo
Logistic regression Number of obs = 1200
số đầu ra nên ta sẽ thử đưa thêm vào mô hình phía trên.
logit ketqua quanhnam giaithuong buaan, nolo
Logistic regression Number of obs = 1200
Trang 7Chuyển đổi biến số
Ví dụ trước cho thấy việc thiếu xem xét sự tương tác giữa các biến số có thể dẫn đến xác định sai mô hình, một trường hợp nữa cũng gây sai lệch trong xác định mô hình khi biến số tiên đoán chưa được chuyển đổi thích hợp Điều này cần thực hiện khi sự thay đổi của biến số phụ thuộc trên một biến số tiên đoán có thể không tuyến tính nhưng ta lại chỉ dùng điều kiện tuyến tính để tiên đoán trong mô hình logistic
Vấn đề này có thể được xử lý với lệnh boxtid trong Stata - mô hình Box-Tidwell, mô hình này chuyển đổi biến số tiên đoán bằng cách dùng chuyển đổi và tìm ra năng lực để phù hợp mô hình nhất dựa trên tối đa hóa xác suất Biến số tiên đoán x sẽ được chuyển đổi thành B1 + B2xp và giá trị p tốt nhất sẽ được báo cáo.
Để minh họa cho trường hợp này, ta quay lại thử với mô hình tiên đoán ketqua từ quanhnam và buaan Kiểm tra linktest có ý nghĩa thống kê cho thấy có vấn đề trong cách xác định mô hình này Chạy lệnh boxtid, kết quả sẽ thể hiện cách chuyển đổi biến số tốt nhất nếu cần.
logit ketqua quanhnam buaan, nolo
Logistic regression Number of obs = 1200
- boxtid logit ketqua quanhnam buaan, nolo
Box-Tidwell regression model
Logistic regression Number of obs = 1200
Trang 8Kết quả kiểm định tính “phi tuyến tính” của biến số buaan có ý nghĩa thống kê với p=.005 Giả thuyết không của kiểm định này là biến số buaan có tính tuyến tính, tương đương với p1 = 1 Kết quả mô hình Box-Tidwell cho thấy p1 ~ 55 sẽ là tốt nhất Do đó, chúng ta sẽ thử xây dựng lại mô hình trên với biến số buaan đã được chuyển đổi buaan1=buaan^0.5.
gen buaan1=buaan^.5
logit ketqua quanhnam buaan1, nolo
Logistic regression Number of obs = 1200
C
Trang 9Mức độ phù hợp (Goodness-of-fit)
Chúng ta đã thấy trong phần kết quả có chứa các giá trị log likelihood và pseudo R-square của mô hình Các giá trị này cũng là các tiêu chí cho biết mô hình phù hợp với dữ kiện đến mức nào
logit ketqua quanhnam buaan bangcap1 tuongtac
Iteration 0: log likelihood = -349.01971
Iteration 1: log likelihood = -192.43886
Logistic regression Number of obs = 707
Hosmer-Nếu trong mô hình có biến số tiên đoán là định lượng sẽ tạo nên một bảng phân phối rất lớn và dễ cho kết quả có ý nghĩa thống kê, do vậy thông thường sẽ kết hợp các lớp tạo bởi các biến số tiên đoán thành 10 nhóm để tạo thành bảng 2x10.
lfit, group(10) table
Logistic model for ketqua, goodness-of-fit test
(Table collapsed on quantiles of estimated probabilities)
Trang 10Với p=.33 kiểm định Hosmer-Lemeshow's cho biết giá trị tiên đoán từ mô hình phù hợp với giá trị quan sát.
Có nhiều các đo lường mức độ phù hợp của mô hình khác như AIC (Akaike Information Criterion) và BIC (Bayesian Information Criterion) Lệnh fitstat sẽ cho các thông số này.
fitstat
Measures of Fit for logit of ketqua
Log-Lik Intercept Only: -349.020 Log-Lik Full Model: -153.953
D(702): 307.907 LR(4): 390.133
Prob > LR: 0.000
McFadden's R2: 0.559 McFadden's Adj R2: 0.545
Maximum Likelihood R2: 0.424 Cragg & Uhler's R2: 0.676
McKelvey and Zavoina's R2: 0.715 Efron's R2: 0.585
Variance of y*: 11.546 Variance of error: 3.290
Count R2: 0.904 Adj Count R2: 0.507
AIC: 0.450 AIC*n: 317.907
BIC: -4297.937 BIC': -363.889
Lệnh fitstat còn dùng để so sánh các mô hình với nhau (lưu ý là các mô hình để so sánh chỉ khác nhau về số biến số dự đoán trong mô hình) bằng các tùy chọn saving và using Ví dụ so sánh mô hình có biến số tương tác và mô hình không có xét tương tác.
logit ketqua quanhnam buaan bangcap1, nolo
Logistic regression Number of obs = 707
Measures of Fit for logit of ketqua
Log-Lik Intercept Only: -349.020 Log-Lik Full Model: -156.385
D(703): 312.770 LR(3): 385.269
Prob > LR: 0.000
McFadden's R2: 0.552 McFadden's Adj R2: 0.540
Maximum Likelihood R2: 0.420 Cragg & Uhler's R2: 0.670
McKelvey and Zavoina's R2: 0.742 Efron's R2: 0.587
Variance of y*: 12.753 Variance of error: 3.290
Count R2: 0.909 Adj Count R2: 0.536
AIC: 0.454 AIC*n: 320.770
BIC: -4299.634 BIC': -365.586
logit ketqua quanhnam buaan bangcap1 tuongtac, nolo
Logistic regression Number of obs = 707
Trang 11- fitstat,using(mh1)
Measures of Fit for logit of ketqua
Current Saved Difference
Model: logit logit
N: 707 707 0
Log-Lik Intercept Only: -349.020 -349.020 0.000
Log-Lik Full Model: -153.953 -156.385 2.432
Cragg & Uhler's R2: 0.676 0.670 0.006
McKelvey and Zavoina's R2: 0.715 0.742 -0.027
Difference of 1.697 in BIC' provides weak support for saved model
Kết quả so sánh trình bày các đo lường giữa mô hình đã lưu và mô hình mới thực hiện Kết quả ủng hộ yếu cho mô hình 1 - là mô hình không có biến số tương tác - (dựa vào AIC hay BIC trong trường hợp này không khả thi vì xấp xỉ nhau giữa 2 mô hình, nhớ rằng mô hình nào có AIC và BIC nhỏ hơn thì tốt hơn, xem thêm bài
“AIC và BIC trong so sánh mô hình”)
Mặt khác, ta đã biết là biến số tương tác có ý nghĩa thống kê trong mô hình, nhưng nếu xem xét thêm vào
mô hình ta thấy hệ số của biến số này trong mô hình quá nhỏ (là 0459029 trong thang logit), và nếu chuyển thành thang tỉ số số chênh thì OR~1, xem bảng kết quả sau đây:
logistic ketqua quanhnam buaan bangcap1 tuongtac, nolo
Logistic regression Number of obs = 707
Trang 12Đa cộng tuyến (Multicollinearity)
Đa cộng tuyến hay gọi tắt là cộng tuyến xảy ra khi hai hoặc nhiều biến số độc lập trong mô hình kết hợp gần như tuyến tính với các biến số độc lập khác trong mô hình Ví dụ như trong mô hình có cả hai biến số đo lường về chiều cao một cái là centimét và một cái là mét
Mức độ cộng tuyến có thể thay đổi và ảnh hưởng khác nhau lên mô hình Khi có sự cộng tuyến hoàn toàn xảy ra - là khi một biến số độc lập tương quan tuyến tính hoàn toàn với biến số độc lập khác - sẽ làm cho mô hình không thể tính được các hệ số hồi qui cố định cho các biến số tiên đoán trong mô hình Trong trường hợp này Stata sẽ loại một biến số có tương quan tuyến tính và chỉ để lại các biến số không có tương quan tuyến tính với các biến số khác trong mô hình.
ưu ý là chưa chắc phần mềm thống kê đã loại ra khỏi mô hình đúng biến số, do đó, cần dựa trên lý thuyết để xác định nên loại bỏ biến số nào.
L
Để làm ví dụ cho phân tích này, ta cố tình tạo ra một biến tuyến tính hoàn toàn, không có ý nghĩa thực tế là biến số tuongquan= quanhnam+buaan để tính toán thử (do quanhnam chỉ có giá trị 1 và 0 nên biến
số tuongquan sẽ tương quan hoàn toàn với biến số buaan)
logit ketqua tuongquan buaan quanhnam
note: quanhnam omitted because of collinearity
Logistic regression Number of obs = 1200
Ví dụ ta dùng các biến số thời gian dạy trung bình của cha mẹ chame, quanhnam, buaan, và tỷ lệ có bằng cấp đầy đủ của giáo viên bangcap, và biến số tương tác giữa quanhnam và bangcap, tuongtac2 Sau kết quả của lệnh logit ta cũng chạy kiểm định tính phù hợp và chú ý là kiểm định này cho thấy là mô hình này phù hợp rất tốt với dữ kiện.
gen tuongtac2=quanhnam*bangcap
logit ketqua chame quanhnam buaan bangcap tuongtac2, nolog or
Logistic regression Number of obs = 1158
Trang 13- lfit,group(10)
Logistic model for ketqua, goodness-of-fit test
(Table collapsed on quantiles of estimated probabilities)
ột qui tắc ngầm là sai số cho phép tolerance ≤ 0.1 ≈ VIF ≥ 10
thì là cần phải xem lại mô hình.
M
Ta đã thấy ảnh hưởng của cộng tuyến nghiêm trọng như thế nào lên hệ số hồi qui, và qua kiểm tra collin ta thấy chỉ số tolerance và VIF cho thấy có xảy ra cộng tuyến nghiêm trọng Vậy phải xử lý như thế nào? Trong mô hình phía trên, biến số quanhnam có hệ số hồi qui rất lớn, thông thường khi tạo các biến số tương tác ta cũng vô tình tạo ra các biến số cộng tuyến (xem bảng kết quả tương quan phía dưới).
corr tuongtac2 quanhnam bangcap
Một cách để xử lý biến số cộng tuyến là chuyển đổi biến số, ví dụ sau đây biến đổi bằng cách định tâm biến
số bangcap bằng cách tạo biến số bangcap2=bangcap - trung bình(bangcap) Sau đó tạo biến số tương tác mới giữa quanhnam và bangcap2 là tuongtac3
sum bangcap
Variable | Obs Mean Std Dev Min Max
bangcap | 1200 88.12417 13.39733 13 100