Hiện tượng đa cộng tuyến (Multicollinearity)

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.

  • 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.

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é.