Chào các bạn, Bài viết này sẽ mở đầu cho series các bài viết giới thiệu về từng bệnh/lỗi của mô hình. Mình sẽ đi từ định nghĩa của bệnh, hậu quả của bệnh đối với ước lượng của mô hình, cách nhận biết và cách xử lý các bệnh này. Bệnh đầu tiên và cũng là một bệnh khá phổ biến trong mô hình hồi quy tuyến tính là đa cộng tuyến. Chúng ta cùng tìm hiểu nhé.
Trang 19/15/21, 2:38 PM Hiện tượng đa cộng tuyến (Multicollinearity) – How to STATA
How to STATA
A set of guides and tutorials for beginners on using Stata
effectively
Hiện tượng đa cộng tuyến (Multicollinearity)
Posted on April 30, 2020May 10, 2020 by Chung Mai
Chào các bạn,
Bài viết này sẽ mở đầu cho series các bài viết giới thiệu về từng bệnh/lỗi của mô hình Mình sẽ đi từ định nghĩa của bệnh, hậu quả của bệnh đối với ước lượng của mô hình, cách nhận biết và cách xử lý các bệnh này Bệnh đầu tiên và cũng là một bệnh khá phổ biến trong mô hình hồi quy tuyến tính là đa cộng tuyến Chúng ta cùng tìm hiểu nhé
1 Định nghĩa hiện tượng đa cộng tuyến: Đây là hiện tượng mà các biến độc lập trong mô hình có mối quan
hệ tuyến tính với nhau
2 Có 2 trường hợp đa cộng tuyến: Hoàn hảo (perfect multicollinearity) và không hoàn hảo (imperfect
multicollinearity)
Ví dụ: 1 = 2X2 + 3X3 Trường hợp này là đa cộng tuyến hoàn hảo Chúng ta sẽ không thể nào thực hiện ước lượng cho cả 2 biến này cùng một lúc được Các phần mềm phân tích dữ liệu sẽ tự động loại bỏ đi một biến và chỉ ước lượng hệ số hồi quy cho biến còn lại mà thôi
Còn nếu như chúng ta có: 1 = 2X2 + 3X3 + Vi với Vi là một sai số ngẫu nhiên thì đây là hiện tượng đa cộng tuyến không hoàn hảo Thông thường chúng ta sẽ gặp hiện tượng này khi thực hiện ước lượng
3 Hậu quả của hiện tượng đa cộng tuyến:
Ước lượng OLS vẫn là ước lượng tốt nhất và không bị thiên lệch (gọi là BLUE – Best Linear Unbiased Estimator), nhưng các hệ số ước lượng này sẽ có sai số khá lớn, dẫn đến không có ý nghĩa thống kê Vậy nên, chúng ta không thể bác bỏ được giả thuyết: beta = 0
Hệ số R2 sẽ có giá trị khá cao mặc dù các hệ số hồi quy thì không có ý nghĩa thống kê Đây cũng là một trong những dấu hiệu bạn sử dụng để nhận biết hiện tượng này Nếu như mô hình của bạn có R2 rất cao, nhưng chỉ có một, hai biến độc lập có ý nghĩa thống kê thôi, thì khả năng cao là các biến độc lập trong mô hình có hiện tượng đa cộng tuyến
Các hệ số ước lượng cũng sẽ trở nên rất nhạy cảm với sự thay đổi của dữ liệu Khi chúng ta đưa thêm biến vào mô hình mà gây ra hiện tượng đa cộng tuyến thì sẽ dẫn đến làm thay đổi giá trị của các hệ số ước
lượng khác
4 Cách nhận biết hiện tượng đa cộng tuyến: Chúng ta có thể sử dụng 5 cách sau.
Trang 29/15/21, 2:38 PM Hiện tượng đa cộng tuyến (Multicollinearity) – How to STATA
Cách 1: Như đã nói ở trên, nếu kết quả ước lượng có giá trị R2 rất cao nhưng rất ít biến độc lập có ý nghĩa
thống kê thì khả năng cao là các biến độc lập đã bị ảnh hưởng bởi đa cộng tuyến Bởi vì, R2 thể hiện cho khả năng giải thích của biến độc lập đến biến động trong biến phụ thuộc Vậy nên, nếu biến độc lập không
có ý nghĩa thống kê thì điều này cũng có nghĩa biến độc lập cũng không có đóng góp gì vào hệ số R2
Cách 2: Kiểm tra hệ số tương quan giữa các cặp biến (pairwise correlations)
Đây là hệ số tương quan giữa các cặp biến với nhau Nếu hệ số này cao hơn 0.5 thì đó đã là điều đáng lo ngại rồi Tuy nhiên, chúng ta ko nên bỏ biến ra khỏi mô hình khi chỉ căn cứ vào hệ số này Lý do là bởi vì khi hệ số này được ước tính, các biến khác không được giữ nguyên (hold constant) nên có thể ảnh hưởng đến kết quả ước lượng
Trong STATA, chúng ta có thể dùng lệnh pwcorr để có thể ước lượng được các hệ số tương quan này nhé
Công thức lệnh này như sau:
pwcorr biendoclap1 biendoclap2 … biendoclapn, star(95)
Chúng ta có thể bổ sung thêm lựa chọn star(95) ở phía sau câu lệnh như trên để STATA báo cho chúng ta biết các hệ số tương quan đó có ý nghĩa thống kê hay không
Cách 3: Kiểm tra hệ số tương quan từng phần (Partial correlation)
Hệ số tương quan này thực chất cũng được tính toán giữa các cặp biến, tuy nhiên các biến khác đã được giữ nguyên Để dễ phân biệt thì mình so sánh giữa hệ số tương quan pairwise và partial nhé Giả sử chúng ta có 3 biến X1, X2, X3 Chúng ta sẽ có 3 hệ số tương quan pairwise đó là r12, r13, r23 Chúng ta sẽ có 3 hệ số tương quan partial: r12.3, r13.2 và r23.1 Nếu biến X1 có quan hệ tuyến tính với cả 2 biến X2 và X3 thì có khả năng hệ
số tương quan pairwise r23 đã bị ảnh hưởng bởi X1 rồi Vậy nên, nếu chúng ta giữ X1 không đổi thì hệ số r23.1
sẽ phản ảnh tốt hơn mối tương quan giữa X2 và X3 Tuy nhiên, kết quả này cũng ko phải là căn cứ để chúng ta loại bỏ biến đâu nhé
Trong STATA, chúng ta có thể dùng lệnh pcorr để ước lượng hệ số tương quan từng phần này nhé Công thức câu lệnh này như sau:
pcorr biendoclap1 biendoclap2 biendoclap3
Cách 4: Hồi quy phụ trợ/hỗ trợ (Auxiliary regressions)
Chúng ta có thể hồi quy lần lượt từng biến độc lập lên các biến độc lập khác và kiểm tra kiểm định F của các
mô hình hồi quy phụ trợ này Nếu như kiểm định F có ý nghĩa thống kê (P-value < 0.1 hoặc 0.05), kết quả này hàm ý là có hiện tượng đa cộng tuyến giữa các biến độc lập Ngược lại, nếu P-value của F lớn hơn 0.1 thì chúng
ta có thể an tâm rằng không có hiện tượng đa cộng tuyến trong mô hình Có điều cách này hơi tốn thời gian của các bạn xíu đó
Cách 5: Dùng hệ số VIF (Variance Inflation Factor – hệ số phóng đại phương sai) hoặc TOF (Tolerance Factor
– hệ số dung sai)
TOF thực chất chỉ là nghịch đảo của VIF mà thôi, nên các bạn dùng hệ số nào cũng được nhé Đối với VIF, hệ
số càng lớn thì có nghĩa là biến đó có nguy cơ cao gây ra hiện tượng đa cộng tuyến Ngược lại, hệ số TOF càng nhỏ thì càng nguy hiểm Có rất nhiều tiêu chuẩn để lựa chọn hệ số VIF hay TOF này, nhưng ad thì theo tác giả Gujarati nhé Hệ số VIF của các biến nên nhỏ hơn 2 hoặc là hệ số TOF nên lớn hơn 0.5
Trong STATA, để có được hệ số VIF hoặc TOF, chúng ta có thể dùng lệnh estat vif
Trang 39/15/21, 2:38 PM Hiện tượng đa cộng tuyến (Multicollinearity) – How to STATA
estat vif, uncentered
Sau khi chạy hồi quy xong và gõ lệnh này thì STATA sẽ báo kết quả của hệ số VIF và 1/VIF (chính là TOF) cho các bạn nhé Nếu mô hình của bạn chạy không có hệ số chặn (alpha) thì chúng ta nên dùng thêm lựa chọn uncentered ở phía sau câu lệnh nhé
5 Cách xử lý
Nếu như bạn chắc chắn rằng các biến đưa vào mô hình đều là những biến cần thiết và quan trọng, được đảm bảo trên một nền tảng lý thuyết chắc chắn thì chúng ta không cần phải làm gì cả trong trường hợp này Bởi vì
hệ số ước lượng OLS vẫn không bị thiên lệch và nhất quán
Trong trường hợp, biến là không cần thiết và có hệ số tương quan rất cao với các biến khác, ta có thể bỏ biến đó
ra khỏi mô hình (tất nhiên là ko cần xoá hẳn biến đó ra khỏi bộ dữ liệu nha, chỉ cần chạy lại mô hình hồi quy khác và không đưa biến đó vào thôi) Tuy nhiên, cách làm này thường được gọi là data-mining, nghĩa là chúng
ta ko thực sự phát triển mô hình dựa trên một nền tảng lý thuyết, mà đang cố gắng khai thác từ dữ liệu để cố tìm ra mối quan hệ định lượng nào đó Vậy nên, mình vẫn muốn nhắc lại: Bạn tìm hiểu thật kỹ về lý thuyết và chọn lựa những biến cần thiết nhất để đưa vào mô hình Nếu các biến đó không có ý nghĩa thống kê đi chăng nữa thì cứ let it be vậy thôi
Chúng ta cũng có thể dùng phương pháp Principal Component Analysis – PCA (Phân tích thành phần chính) Theo cách này, chúng ta sẽ tạo ra các principal components để thay thế cho các biến độc lập Cái hay của
phương pháp này là nó sẽ giúp loại bỏ hoàn toàn hiện tượng đa cộng tuyến vì các principal component được đảm bảo không có mối quan hệ với nhau Tuy nhiên, phương pháp này mình thường thấy được sử dụng trong trường hợp dữ liệu được thu thập từ các bảng câu hỏi điều tra thôi Ví dụ, trong bảng hỏi thường có các nhóm câu hỏi để làm rõ các khía cạnh khác nhau Tất cả các câu hỏi đó đều là các biến đó các bạn Nếu đưa hết các câu hỏi vào trong mô hình thì quá nhiều, hiện tượng đa cộng tuyến là chắc chắn luôn, nên là chúng ta có thể thực hiện PCA để lấy được thành phần chính đại diện cho từng nhóm câu hỏi Trong các trường hợp khác, việc dùng mô hình với PCA sẽ dẫn đến việc rất khó giải thích ý nghĩa kinh tế của mô hình Vậy nên, chúng ta chỉ nên dùng PCA trong những trường hợp nghiên cứu cần thiết thôi nhé
Trong STATA, chúng ta có thể dùng lệnh pca để trích xuất các thành phần này nhé Câu lệnh này như sau: pca biendoclap1 biendoclap2 … biendoclapn, com(#)
Chúng ta nên dùng thêm lựa chọn com() ở phía sau câu lệnh để nêu rõ số lượng thành phần mình muốn trích xuất nhé Nhưng nếu chúng ta không muốn tự lựa chọn cũng không sao Sau khi STATA chạy pca thì sẽ cho chúng ta các kết quả về eigenvalue Thông thường thành phần 1 sẽ có hệ số eigenvalue lớn nhất, và giảm dần về sau Chúng ta nên chọn đến thành phần có eigenvalue vẫn lớn hơn 1 là được nhé
Okay, đây là tất tần tật những vấn đề liên quan đến hiện tượng đa cộng tuyến Ad sẽ tiếp tục với các bệnh khác trong những bài viết sau nhé
Nguồn tham khảo:
Gujarati (2012), Econometrics by example
Posted in Kinh tế lượng căn bản, STATA for estimationsTagged multicollinearity, pairwise correlation, partial correlation, đa cộng tuyến
Trang 49/15/21, 2:38 PM Hiện tượng đa cộng tuyến (Multicollinearity) – How to STATA
2 thoughts on “Hiện tượng đa cộng tuyến (Multicollinearity)”
1 hntien says: March 19, 2021 at 7:40 am
Xin hỏi AD làm rõ nội dung này :”Hệ số VIF của các biến nên nhỏ hơn 2 hoặc là hệ số TOF nên lớn hơn 0.5.” Tuy nhiên, Tôi đọc nhiều tài liệu và đề tài nghiên cứu ở Việt nam thì hệ số VIF nhỏ hơn 10 là chấp nhận được?
Reply
Chung Mai says: March 19, 2021 at 12:18 pm
Vấn đề này tuỳ thuộc khá nhiều vào quyết định của nhà nghiên cứu Họ có thể theo một quy chuẩn nào
đó như là VIF nhỏ hơn 2 hoặc 4 hoặc 10 Chọn tiêu chuẩn càng nới lỏng thì khả năng hiện tượng đa cộng tuyến dễ tồn tại hơn Tiêu chuẩn mà ad trình bày trong bài viết thì theo tác giả Gujarati nhé Và ad nghĩ chúng ta nên kết hợp nhiều tiêu chuẩn với nhau để đưa ra quyết định có nên loại biến hay không, chứ đừng chỉ dựa vào hệ số VIF mà vội đưa ra quyết định
Reply
Website Powered by WordPress.com.