多重共線性,是我們學習計量幾乎入門時就會接觸的一個專業名詞。對多重共線性的認識,僅限於在做迴歸時看一看相關性係數表(而且一般都不會有問題),再了不起的就是算一下VIF。但其實對它並沒有一個直觀的認識。也就是,在實際處理資料的時候,多重共線性會導致什麼問題,或者說如何影響迴歸結果?

在正式進入這個問題之前,我想指路一個連玉君老師在知乎上的回答,問題是,加入某個控制變數後原解釋變數不顯著了是什麼原因(連結見文末)。他的case III就是講多重共線性。其實連老師的回答和置頂評論已經解釋了原理,但我卻是在自己實際跑資料時,遇到這個問題之後才深刻理解了它。這裡,我也就用一個跑資料的例子,來直觀地展示多重共線性,是如何影響我們做論文時朝思暮想的“星星”的。

用來舉例的資料,是研究學生數學成績(mathscore)的影響因素,關注的解釋變數是父母教育水平(parent),控制變數包括性別(male)、種族(race)、和考前準備程度(prep)。樣本量是1000。 首先我們來看數學成績和父母教育水平的單變數關係,二者是顯著負相關的。

怎麼“調整”顯著性:理解多重共線性

這裡的資料集僅作案例展示多重共線性的影響,暫不考慮其經濟意義是否合理。假設這個顯著負相關的結果就是我們理想的結果。我們下面分別來考慮

1)新增其他控制變數會出現什麼;

2)不新增控制變數,而新增一個捏造的、與我們關注的解釋變數parent存在嚴重共線性的變數,會是什麼結果

3)同時新增控制變數、和上面捏造的的變數,會是什麼結果。

怎麼“調整”顯著性:理解多重共線性

我們發現,新增正常的其他控制變數後,parent和mathscore之間的顯著負相關關係仍舊存在,此時依舊是理想的。下面,我們來一點干擾。

為了實現較高的共線性,“定製”一個變數,其值等於parent的值加上0。5倍的標準正態分佈值。新的變數給它取名叫parent_copy,它和parent之間的相關係數是0。9646,非常接近於1。

怎麼“調整”顯著性:理解多重共線性

這個時候我們再來看看,把這個變數加進模型中,會發生什麼。下面的截圖分別是沒有其他控制變數的模型,和有其他控制變數的模型,可以看到,parent變得不顯著了!當然,parent_copy也不顯著。

怎麼“調整”顯著性:理解多重共線性

怎麼“調整”顯著性:理解多重共線性

回顧上述過程,多重共線性,使得我們的結果從理想的顯著變得不顯著;如果把這個過程反過來,不就是一個把不顯著的結果做到顯著的過程嘛。所以,當結果不理想時,排查多重共線性問題,或許會有驚喜出現。當然這只是非常簡化條件下的無奈之舉,在現實的研究中,幾乎不會有如此高的共線性,且更正規的做法是增加樣本量,當然這又是另外一個話題了。

最後,為什麼多重性為什麼會有這種“作用”,又回到連老師那個答案裡的資料:

其實主要的問題是 OLS 的遊戲規則決定的。在模型 $$ y = a + b1*x1 + b2*x2 $$ 中。b1 的含義是:控制常數項項和 x2 的前提下,x1 變動一個單位導致的 y 的變動。對於兩個嚴重共線性的變數來說,因為一個變數已經解釋了另一個變數對y的大部分解釋,所以控制任何一個研究另一個影響時,他們都是不顯著(也就是沒有解釋力的)。