找出「交互效應」,讓線性模型更萬能 | 協和八
原創 田菊
說人話的統計學
前面幾集裡面我們逐步地介紹了統計模型裡面最實用的線性回歸模型。
線性回歸模型假設引數 x 和因變數 y 之間存在線性的關係,當 x 是分類變數時,線性模型等價於我們之前講過的 ANOVA 模型;當 x 是連續變數的時候,線性模型的運算式為:
確定模型後,我們可以用極大似然估計來找到線性模型的參數——截距 β0 和回歸係數 β1,並且對這些參數作假設檢驗,做出統計推斷。
當然,引數 x 可以有不止一個。我們上一集的例子裡面,孩子的身高與性別有關,也和父母身高有關,而性別是分類變數。
對於這兩個引數與因變數之間的相互關係,我們引入了兩個假設:
❶ 給定性別的情況下,子女身高與父母身高之間具有線性關係
❷ 不管父母身高如何,男孩與女孩的身高差別不變,這一假設也就等價于男孩資料與女孩資料所得到的回歸線斜率是相等的。如下圖所示:
基於這些假設,我們得到了雙因素情況下的一種線性回歸模型:
如果我們再仔細推敲一下上面的兩個假設,❶ 是線性模型的必要條件,必須得保留,而假設 ❷ 似乎值得商榷。
認真觀察上面的資料點,好像父母身高越高,男孩(藍色資料點)與女孩(黑色資料點)的身高差距越大。如果我們將男孩、女孩的資料點各自拿出來,分別擬合一個線性模型找出最佳回歸線,我們可以發現其實這兩條線並不平行(如下圖):
那是不是說明我們前面的假設是錯誤的呢?
當然,兩條單獨擬合出來的回歸線斜率不可能完全相等,關鍵還要看這兩條回歸線的斜率是否具有統計學意義上的顯著差異,這可不是靠眼睛看出來的,而是要通過建立新的模型,直接對這個問題做假設檢驗才能知道。
其實這個問題並不是我們第一次遇到,咱們之前在《31.多因素ANOVA=好幾個單因素ANOVA?可沒這麼簡單!》 裡面也提到過。在這裡,我們不妨先來溫故而知新,複習一下多因素 ANOVA 裡面的情況。
多因素 ANOVA 是為了研究兩個或以上的類別變數(因素)對觀測值的影響。設想現在有兩個因素 A 和 B 可能影響測量值 y,A 有三個分組,B 有兩個分組,我們把因素 A 作為 x 軸,分別繪出 B 的取值為 1 和 0 時 y 隨著 A 因素變化的曲線。
如果兩條線大體平行,說明因素 A 的效應不依賴於因素 B,也就是說沒有交互效應(下圖左);如果不並行,則很有可能有交互效應(下圖右)。
ANOVA 是線性模型的一種特殊形式,它的引數都是離散的類別變數。如果上圖的 x 軸變成了連續變數,因素 A 對 y 的影響依然有可能也依賴於因素 B,因此交互效應並不是 ANOVA 特有的。只要模型中不只一個因素(也就是線性模型裡面的引數,也稱為預測變數)的時候,交互效應就有可能存在。
為了在線性模型中考慮到可能存在的交互效應,我們需要在模型裡面加入新的「交互效應」項:β3*x1*x2 。
這時線性模型就變成了:
看到這裡,你可能有點蒙圈,為什麼在我們的模型裡面加入了 β3*x1*x2 就可以檢驗交互效應是否存在呢?別著急,下面我們就來探個究竟。
因為性別 x2 是一個二分類變數,所以我們基於上集《39.引數不止一個,線性回歸該怎麼做?》文章末尾討論過的原因,規定男孩取 1,女孩取 0。
咱們來看看當性別 x2 取不同的值時,帶有交互效應的模型會變成什麼樣子。
當 x2 取 0,也就是只看女孩的身高資料時,
化簡之後,不難看出,
上面的公式看著很是眼熟,不就是單因素情況下的線性模型運算式嗎?也就是說,在考慮了交互效應的情況下擬合出的女孩身高與父母身高的線性關係,幾乎等價于單獨用女孩的資料找出的兩者關係,這下我們就容易理解 β0 以及 β1 的含義了。
類似的道理,當 x2 取 1 時,也就是當我們只看男孩的身高資料時,我們的模型變成:
咱們把與 x1 有關的項合併一下,再把與 x1 無關的項合併一下,會發現:
從上面的公式可以看出,如果 x1 增加了1個單位,y 會增加 β1 + β3。這就說明了,在引入了交互效應後,當我們只看男孩的身高資料,在父母身高和子女身高的關係依然是線性關係,只是回歸線的斜率不再是 β1,而是 β1 +β3 ,而截距也與女孩時的 β0 不同,變成了β0 + β2 。
讀到這裡有些愛思考的讀者可能會問,加入交互效應,看似繁複的公式,結果好像跟給男孩和女孩分別擬合回歸線,建立兩個獨立的線性模型沒什麼差別呀?單個引數的線性回歸我已經很熟悉啦,為什麼還要引入交互效應?
這是因為,是否存在交互效應,在很多科研問題中本身就是一個重要的結果。
通過在線性模型中引入交互效應項,我們才能把男孩身高模型中的斜率表達為 β1 + β3 這種形式,方便之後對 β3 進行統計推斷,來判斷交互效應是否具有統計顯著性。如果我們分開男、女做兩個回歸模型,兩個關於父母身高的斜率是否有差別,就不那麼容易檢驗了。
另外,在一定的條件下,利用全體資料建立帶有交互效應的模型,而不是針對男孩和女孩資料的單獨模型,可以得到對參數更準確的估計。
如果把帶有交互效應的線性模型寫開:
在這個模型裡面,假設了男孩和女孩具有相同的標準差參數 σ,如果資料確實滿足這一假設,那麼在交互效應的模型裡面男女性樣本之間可以互相借用資訊,從而提高估計(尤其是標準差參數)的準確性。σ 估計得好,對於回歸係數們的假設檢驗的統計效能也就更高了。
如果 β3 顯著地大於或小於 0,說明男孩與女孩的身高隨父母平均身高的變化率是不一樣的,下圖中男孩和女孩的分別擬合的回歸線會不平行,也就是存在交互效應。
加入了交互效應之後的線性模型依然可以用極大似然估計和假設檢驗來找出最佳的回歸係數以及對應的置信區間。
下表是統計軟體對這個新模型給出的結果(由於在性別這個變數中,我們把男性標記為 1,為了表達清晰,我們把這個變數稱為「男性」):
估計值 |
t 值 |
p 值 |
95% 置信區間 |
|
截距 β0 |
88.06 |
5.19 |
4.67e-06 |
[54.89, 122.23] |
父母平均身高 β1 |
0.20 |
1.95 |
0.057 |
[-0.007, |
男性 β2 |
-55.02 |
-2.29 |
0.027 |
[-103.37, |
父母平均身高 x 男性(交互作用) β3 |
0.38 |
2.56 |
0.014 |
[0.08, |
我們把估計值代入到模型裡面,可得到下面的定量關係:
子女身高 ~ 88.06 + 0.20 x 父母平均身高 - 55.02 x 男性 + 0.38 x 父母平均身高 x 男性
根據我們前面的討論,從這個結果可以推導出
女孩身高 ~ 88.06 + 0.20 x 父母平均身高
以及
男孩身高 ~ 88.06 - 55.02 + (0.20 + 0.38)x 父母平均身高
下面我們來逐個解讀上面模型裡各個參數的含義:
首先,截距 β0 和父母平均身高的回歸係數 β1 意義與單因素的情況類似:父母身高平均值等於 0 時女孩身高的平均值是 88.06;父母平均身高每增加一個單位,女孩身高也增加 0.2 個單位。 這裡我們也可以看到,雖然模型在計算時包含了男孩和女孩的身高資料,回歸係數β0 以及 β1 的意義只和女孩的身高有關。
交互效應的回歸係數 β3 = 0.38 指的是當父母平均身高增加一個單位時,男孩會比女孩多增加 0.38 單位的身高。也就是上面將男孩和女孩資料分別進行線性回歸得到對兩條回歸線的斜率之差。由於 β3 的 p值為 0.014,說明這兩條回歸線的斜率的差異具有統計學意義上面的顯著性,也就是說,父母平均身高和孩子性別之間存在顯著的交互效應。
最後我們再看看男性的回歸係數 β2 ,它的估計值是 -55.02。在上一集裡,當模型中沒有交互效應的時候,我們說過,這個參數的意義是,父母身高相同的時候,男孩比女孩矮 55.02。但是,現在我們的模型中有了交互效應存在,我們對回歸係數的解釋可就要小心了——這個問題有點繞,甚至很多老司機都會犯暈,大家一定要認真咀嚼理解下面的討論。
為什麼這麼說呢?只要我們對模型的形式門兒清,這個事情並不費解。我們在上面給出過根據幾個回歸係數,男、女孩身高分別父母平均身高的關係:
女孩身高 ~ 88.06 + 0.20 x 父母平均身高
男孩身高 ~ 88.06 - 55.02 + (0.20 + 0.38)x 父母平均身高
如果我們用上面關於女孩的式子,減去下面關於男孩的式子,就會得到:
女孩身高 - 男孩身高 ~ 55.02 - 0.38 x 父母平均身高
我們立馬就能發現,如果我們想要知道平均來講女孩和男孩的身高差,就再也不能像上一集沒有交互效應的模型那樣,直接說出一個數了。現在,這個問題的答案多了這麼一個拖油瓶。
也就是說,如果你問模型,女孩比男孩身高差多少?模型一定得先反問你一句:父母的平均身高是多少?
從前面的式子中不難看出,父母平均身高越高,女孩身高與男孩身高相差越大(因為父母平均身高都大於 140,所以等式右邊「55.02 - 0.38 x 父母平均身高」整體是負的,而且父母平均身高越大,負得越多)。而什麼時候女孩、男孩之間身高差才是 55.02 呢?當且僅當這個拖油瓶不存在,也就是父母平均身高為 0 的時候。
總結一下,由於有交互效應的存在,在不同父母身高的情況下,男孩與女孩身高的差距也不一樣。所以不能拋開父母身高來談來理解男性這一引數的回歸係數。
聰明如你,一定能想到,其實說了這麼半天,歸根結底就是圖裡兩條回歸線不平行這件事而已。不過呢,就是這同一件事,換個樣子,就能把許多人繞進去,希望你讀過這篇以後,不會是其中一員了噢!
事實上,由於父母平均身高不可能為 0,我們也不會想要關心這時候男孩比女孩高或者矮多少,所以這裡的 β2 並沒有多少現實意義。相反我們更關心父母身高取值合理的時候(比如取樣本的平均值時),男孩大概比女孩高多少。下面,我們就介紹一個小技巧,能大大改善回歸係數的實際意義。
我們可以先把父母平均身高 x1 做一個轉換,減去其平均值,轉換後的父母平均身高記作 x1',在上面的模型中使用轉換後的資料 x1' 而不是原始值 x1 。因為轉換完的資料平均值為 0,這一過程也被稱為對資料做「中心化」(centralization)處理。
使用轉換後的資料來建立模型,可以使得係數 β0 和 β2 的含義更直接。為什麼呢?從之前的討論裡我們知道,在模型
中,β0 是兩個引數 x1,x2 都取 0 時(模型認為的)因變數 y 的平均值,而 β2 是在引數 x1 取 0 時,x2 取 1(男性)和取 0(女性)這兩組的因變數 y 的平均值之差。而當 x1 是未轉換的父母平均身高時,它不可能取到 0,因而導致了這兩個係數沒有實際意義。但是,如果我們用的是中心化之後的數值 x1',由於 x1' 取 0 時真實的父母身高就是人群平均值,所以 β0 就成為了父母身高取人群平均值時女孩(因為性別 x2 要取0)的平均身高,而 β2 就成為了父母身高取人群平均值時男、女孩的平均身高差。
如果此時 β2 顯著的大於 0,我們便可以推斷,在父母身高與人群平均值差不多的時候,男孩的身高顯著地比女孩高。
那麼你也許要問,中心化以後,β0 和 β2 變了,β1 和 β3 的數值和意義會不會也有變化?答案是否定的。因為 β1 和 β3 的意義都和 y 隨著引數 x1 增長一個單位的變化率有關。在中心化操作中,我們只是把所有的 x1 都減去了它們全體的平均值,並沒有對它們進行壓縮或者擴展。因此,以前 x1 增長了一個單位,現在 x1’ 仍然是增長了一個單位,因此β1 和 β3 不論是數值、意義乃至假設檢驗的顯著性,都不會發生變化。
由於對引數做這樣的線性變換並不會改變線性模型的好壞,以及β1 和 β3 各個回歸係數是否具有統計顯著性的結論,同時又能增加係數數值的可讀性,所以一般情況下在把連續型資料丟到模型裡面之前,都提倡先進行中心化處理。
系列文章
第 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.找出「交互效應」,讓線性模型更萬能