回歸係數不顯著?也許是打開方式不對!| 協和八
原創 張之昊
讀過我們專欄的上一集《41.沒考慮到混雜因素,後果會這麼嚴重?》的讀者,一定已經知道,多重線性回歸能幫我們控制混雜變數的影響,從而我們可以排除一些虛假關聯,得到更嚴謹可靠的結論。
現在先讓我們來簡單地回顧一下我們是怎麼做的。
在上一集的例子裡,我們想研究的問題是:有兩個孩子的家庭中,小孩子的身高與大孩子的身高是不是相關的。於是,我們首先拿小孩子身高做因變數,大孩子身高做引數,做了個單因素的線性回歸,結果大孩子身高的回歸係數顯著大於 0。也就是說,大孩子、小孩子身高是顯著相關的。
但是,如果我們把父母平均身高也放到線性回歸模型裡,來自大孩子身高的效應就沒了,顯著的相關性出現在了父母平均身高和小孩子的身高之間。在這種情況下,對於我們要研究的大、小孩子身高間的關係,父母平均身高就是個混雜變數。如果在統計建模時沒有考慮到它,我們就會高估了大孩子身高的效應。
在這裡,我們要注意一個概念問題——在前後兩個模型裡,大孩子身高這個引數的回歸係數的意義是不一樣的。
在《39.引數不止一個,線性回歸該怎麼做?》裡,我們強調過,回歸係數代表了當模型中其他引數(如果有)保持不變時,在總體中該引數每增加一個單位,會對應著因變數的變化大小。前一個模型中只有大孩子身高這一個引數,它的回歸係數表示大孩子身高增加一個單位時對應小孩子身高平均變化多少。
然而,在第二個模型中,大孩子身高的回歸係數則是在父母平均身高保持不變的情況下,小孩子身高對應大孩子身高增加的變化率。
因為兩者意義本身就不同,所以它們之間有差異,本身並不是一種矛盾。但是,從解讀的角度來看,兩者都是我們關心的同一個變數的效應大小,我們應該弄清楚,加入其他變數後,這種變化是怎麼產生的。
讓我們來把上面這個問題抽象化一下,以幫助我們理解更具有普遍性的問題。如果因變數是,我們感興趣的引數是,另外還有一個潛在的混雜變數,那麼
是不包含混雜變數 x2 的模型;
而
是包含混雜變數 x2 的模型。
在上面的例子裡,模型中只有 x1(大孩子身高)時,它的回歸係數 β1a 顯著大於 0。而模型中加入 x2(父母平均身高)後,新模型中 x1 的回歸係數 β1b 則與 0 沒有顯著差別了,而 x2 的回歸係數 β2b 則是顯著為正的。
☻這時我們仿佛聽見了你的內心戲:
首先,統計學可不是個任人打扮的小姑娘,我們因為擔心結果不一定符合自己的預期,就不去做本來該做的分析了。如果從已有知識來看,x2(例如上面例子中的父母身高)的確有可能是混雜變數時,我們更不能忽略它——躲得了初一,躲不了十五,還有審稿人(以及「說人話的統計學」欄目的忠實讀者們)盯著呢!
其次,從普遍意義上說,把一個新的引數 x2 放到模型裡,模型中原有的引數 x1 的回歸係數是不是一定會像上一個例子那樣變小?會不會原來不顯著的回歸係數反而變大、變顯著了?是否也有可能沒有變化?我們現在就一起來探討一下這個問題。
讓我們來看一個新的例子。為了強調接下來討論的一般性,我們這裡不引入具體的情景,只把這個新的資料集中我們考慮的因變數稱為 y,兩個引數稱為 x1,x2(這組資料具體長什麼樣我們稍後再講),而仍舊是我們的重點考察物件。
和之前一樣,我們先來一個隻包含 x1 的線性回歸模型:
我們得到了如下結果:
估計值 |
t 值 |
p 值 |
95% 置信區間 |
|
(截距) |
-0.269 |
-2.103 |
0.038 |
[-0.523, 0.015] |
β1a |
0.185 |
0.143 |
0.157 |
[-0.072, 0.442] |
引數 x1 的回歸係數 β1a 的估計值為 0.185,然而它與 0 之間的差別並不顯著( p = 0.157,大於 0.05),因此從統計學意義上說,我們可以認為和之間並不相關。既然是主要研究的變數,看到這個結果難免讓人有點失望。
如果我們把 x2 加進來會如何?根據模型
這個模型的結果如下:
估計值 |
t 值 |
p 值 |
95% 置信區間 |
|
(截距) |
-0.100 |
-1.052 |
0.295 |
[ -0.288, 0.088 ] |
β1b |
0.860 |
6.016 |
3.16×10-8 |
[ 0.577, 1.144 ] |
β2b |
-0.876 |
5.724 |
1.16×10-7 |
[ -1.179, -0.572 ] |
如果這個結果沒有讓你感到驚訝的話,也許你就有點兒走神啦——和前面只含x1 的模型比較,x1 的回歸係數 β1 從並不顯著( p 值為 0.157 )的 0.185 猛增到了高度顯著( p 值在 10-8 數量級)的 0.860!
換言之,變數x1 對y 的效應在加入一個新的變數 x2 以後反而大大增加了!(怎麼樣?要是你剛才還在打著小算盤,想把 x2 排除在外,現在得後悔了吧?)
這個例子能教給我們很多東西,但在進一步深入討論之前,我們至少可以從這個例子中得到一個最明顯的結論,線性回歸模型裡加入新的引數,模型中已有的引數的回歸係數並不一定會變小,也是可能會變大的。
到現在,我們已經見過了兩個例子,分別體現了加入新的引數 x2 後,原有的引數 x1 的回歸係數變小或者變大這兩種情形。
其實呢,我們還在《39.引數不止一個,線性回歸該怎麼做?》裡介紹過另一個例子,其中孩子身高是因變數,而父母平均身高是引數,此時我們得到了
但在加入另一個引數——孩子性別——之後,新的模型是
容易發現,父母平均身高的回歸係數在前後兩個模型中基本沒有改變。
各種情形都見過了,現在我們就來一探究竟。
要弄清楚為什麼會有這些不同的效果,我們得考慮 y,x1,x2 三者之間存在的電視劇中屢見不鮮的三角戀關係。
在第一個例子中,x2 加入模型後,x1 的效應大大縮小,是因為 y 與 x2 存在正相關關係,而 x1,x2 之間又是正相關的(見圖 1 中相應的小圖),因此當我們只看 y 和 x1 之間是否相關時,實際上看到了 y 與 x2、x2 與 x1 兩層關係的總效果:由於相關性是相互的,通過 x2 的傳遞,y 和 x1 之間也有了相關性(圖 1)。但是,如果 x2 也被包含到了模型裡,原本屬於它的相關性物歸原主,x1 的回歸係數也就小多了。
圖 1 本文第一個例子中三個變數的相互關係(小圖為兩兩散點圖)。例子的具體內容可回顧《天啦嚕!沒考慮到混雜因素,後果會這麼嚴重?》
而第二個例子更繞(但也更有趣)一些,大家在讀下面這段文字之前務必保持頭腦清醒。
在這個例子中,x1,x2 兩者在對方保持不變的情況下,分別與 y 有正相關、負相關的關係(可回顧前面的回歸模型結果,x1,x2 同時在模型中時,回歸係數分別為0.86和-0.87)。但是,x1,x2 之間偏偏又是正相關的(見圖 2 右側小圖)——這樣一來,每當 x1 增長時,x2 由於這個正相關關係,也傾向於有所增長。這時 y 會怎麼樣呢?x1 和 x2 都在增長,而它們一個對 y 有正效應,一個有負效應,這就打起架來了。
最終的結果,就是相互把對方的效應抵消了不少。因此,如果我們不在同一個模型中一起考慮 x1,x2 兩者,只分別看 y 與 x1 或者 y 與 x2 的關係時,相關性就變得很弱(見圖 2 左側的兩個小圖)。此時模型 y ~ β1ax1 中的回歸係數沒有顯著性也就毫不奇怪了。
換個角度說,由於 x1 和 x2 對 y 的相互抵消的作用,如果我們在分析時只考慮了其中一個,被忽略的另一個變數對 y 的反作用就會「遮蓋」住這個引數的真實效應,因此在統計學中,這種現象被稱為「掩蔽效應」(masking effect)。
比方說,影響短跑速度的因素中,身高越高,一般短跑速度越快(因為腿長),而體重越大,短跑速度則越慢(因為腿拖不動沉重的身體)。但是,身高和體重互相之間又有正相關關係(平均來說身高越高,體重越大)。這樣一來,身高和體重這兩個變數之間就會互相產生掩蔽效應,遺漏其中一個,線性回歸就容易低估另一個對短跑速度的效應大小。
圖 2 本文第二個例子中三個變數的相互關係(小圖為兩兩散點圖)
那麼第三個例子呢?這個例子有些特別,因為後來加進去的新變數 x2(性別=男性)是個分類變數,但我們還是可以用一樣的方法來討論。
在這裡,父母平均身高 x1 和「男性」x2 與孩子身高 y 都有正相關關係(見圖 3 左側的兩個小圖,「男性」與孩子身高的正相關關係體現為男孩身高大於女孩),而父母平均身高 x1 和「男性」x2 之間並不相關(圖3右側小圖:男孩和女孩的父母平均身高沒有差別)。
因此,當只考慮一個引數時,由於該引數和另一個引數之間缺乏相關性,所以本來屬於另一個引數的與 y 的相關性它也搶不走。
這樣一來,單獨考慮一個引數和同時考慮兩個引數時得到的回歸係數就會基本一樣了。
圖 3 本文第一個例子中三個變數的相互關係(小圖為兩兩散點圖)。例子的具體內容可回顧《39.引數不止一個,線性回歸該怎麼做?》
這三個例子的來龍去脈弄清楚了,相信你已經能夠歸納出,加入模型的新變數如果導致了原有變數回歸係數的改變,那麼一定是因為新的引數與原有引數之間存在相關性,而且新的引數同時與因變數之間也有相關性。至於回歸係數會怎麼變,那就取決於引數之間相關性的方向,以及幾個引數與因變數 y 之間相關性的異同了。上面的三個例子覆蓋了三種典型的情況,其它的情形歡迎大家茶餘飯後腦有餘力之時,自行推演一下。
而從這些例子裡,我們應該學到的更重要的一課,是多重線性回歸的另一種威力。
現實世界錯綜複雜,多重線性回歸不僅能夠讓我們同時考慮多種因素的影響及其交互效應,還能為我們揭示出只考慮單個因素時被混淆(如本文第一個例子)、被遮蓋(如本文第二個例子)的資訊。我們也能看到,不同的模型中,對同一個變數的效應的解讀常常會有天壤之別。只有找到了合適的統計學模型,我們才不會與客觀準確的科學發現失之交臂,甚至誤入歧途。
當然,我們探索的腳步還要繼續向前邁進。既然找到合適的統計學模型如此重要,我們面對一個資料分析問題時,又該從何下手,包括哪些變數,排除哪些變數?建立了不同的模型,我們又應如何比較取捨?大家請聽下回分解!
1. McElreath, R. (2016). Statistical rethinking: A Bayesian course with examples in R and Stan (Vol. 122). CRC Press.
2. Gelman, A., & Hill, J. (2006). Data analysis using regression and multilevel/hierarchical models. Cambridge university press.
V
系列文章
第 1 章 高屋建築看統計
1.你真的懂p值嗎?
2.做統計,多少資料才算夠?(上)
3.做統計,多少資料才算夠?(下)
4.提升統計功效,讓評審心服口服!
5.你的科研成果都是真的嗎?
6.見識資料分析的「獨孤九劍」
7.貝葉斯vs頻率派:武功到底哪家強?
第 2 章 算術平均數與正態分佈
8.數據到手了,第一件事先幹啥?
9.算術平均數:簡單背後有乾坤
10.正態分佈到底是怎麼來的?
第 3 章 t 檢驗:兩組平均數的比較
11.想玩轉t檢驗?你得從這一篇看起
12.就是要實用!t 檢驗的七十二變
13.不是正態分佈,t 檢驗還能用嗎?
14.只有15個標本,也能指望 t 檢驗嗎?
15.樣本分佈不正態?數據變換來救場!
16.數據變換的萬能鑰匙:Box-Cox變換
17. t 檢驗用不了?別慌,還有神奇的非參數檢驗
18.只講 p 值,不講效應大小,都是耍流氓!
19.找出 t 檢驗的效應大小,對耍流氓 say no!
21.如何確定 t 檢驗的置信區間
22.優雅秀出你的 t 檢驗,提升Paper!
23.要做 t 檢驗,這兩口毒奶可喝不得!
第 4 章 方差分析(ANOVA):多組平均數的比較
24.要比較三組資料,t 檢驗還能用嗎?
25.ANOVA在手,多組比較不犯愁
26.ANOVA的基本招式你掌握了嗎?
27.ANOVA做出了顯著性?事兒還沒完呢!
28.聽說,成對t檢驗還有ANOVA進階版?
29.重複測量ANOVA:你要知道的事兒都在這裡啦
30.沒聽說過多因素 ANOVA ?那你就可就 OUT 了!
31.多因素ANOVA=好幾個單因素ANOVA?可沒這麼簡單!
32.兩個因素相互影響,ANOVA結果該如何判讀?
33.ANOVA還能搞三四五因素?等等,我頭有點兒暈
34.要做ANOVA,樣本量多大才夠用
第 5 章 線性回歸:統計建模初步
35.統計學模型你會玩嗎?
36.如果只能學習一種統計方法,我選擇線性回歸
37.回歸線三千,我只取這一條
38.三千回歸線裡選中了你,你靠譜嗎?
39.引數不止一個,線性回歸該怎麼做?
40.找出「交互效應」,讓線性模型更萬能
41.沒考慮到混雜因素,後果會這麼嚴重?
42.回歸係數不顯著?也許是打開方式不對!
作者:張之昊
編輯:黑草烏葉🍃
留言列表