ANOVA在手,多組比較不犯愁 | 協和八
原創 張之昊
小編按:用盡洪荒之力終於搞定了 t 檢驗,但是實戰中只掌握這一個武器可不行!接下來就讓我們一起愉快地學習 ANOVA 吧~
▲▼▲▼
之前的幾個月裡,我們一直在用 t 檢驗比較兩組資料的平均值這個問題上兜兜轉轉。直到上一集《24.要比較三組資料,t 檢驗還能用嗎?》,我們終於邁出了重要的一步,從兩組來到了三組!
這時也許你的內心受到了 0.05 點傷害:哼哼, 比較兩組講了十集,三組再講十集,然後四組、五組……這樣學統計,真是鬼才知道我們會經歷什麼啊!
一個會讓你稍感寬慰的消息是,其實三組和三組以上在本質上沒有太大的區別,都可以用相同的辦法搞定。
在上一集裡,相信我們已經說服了大家,如果用多個 t 檢驗兩兩比較三組資料的平均值,就會產生「多重檢驗」(multiple comparison)問題,使得我們更可能把沒有顯著性的差別誤以為是顯著的(也就是增加犯第一類錯誤的可能性)。
那麼不止三組的時候呢?這個問題同樣存在,而且隨著組數的增加,多重檢驗的問題會越來越嚴重(想想看為什麼?)。而能一攬子解決這個問題的最流行的方法,就是我們上一集提到過的方差分析(Analysis of Variance),簡稱 ANOVA。
ANOVA 這個方法,是我們的老熟人、頻率學派統計學的代表人物 R. A. Fisher 費希爾老爺子的成名作,發表於 1918 年。雖然到現在只有不到一百年的歷史,但因其簡明清晰而席捲了包括醫學、社會科學、工業應用等各個研究領域。
一位智者曾經說過(咳咳,捂臉承認這是我說的),不會用 ANOVA ,還好意思在科研圈混?為了繼續在知識的海洋裡上(yu)下(kuai)求(wan)索(shua),今天這一集就讓我們一起來解剖一下 ANOVA 這門必備技能裡頭都有些什麼道道。
▼▲▼▲
要解釋 ANOVA 的原理,我們還得從它的名字開始。既然它的名字叫方差分析,那麼一定就和方差(variance)有點關係了。在許久以前的《8.數據到手了,第一件事先幹啥?》,我們提到過樣本方差(sample variance),它是描述一個連續型變數樣本中各資料點偏離它們均值的程度的統計量,公式是:
其中 n 為樣本中資料點的數量,為第 i 個數據的值,為算術平均值。
為什麼方差能夠表示資料點的發散程度呢?
在這個式子裡,分母只是一個常數,在這裡我們不妨暫時先把它忽略。
方差定義裡重要的一塊,在於分子上的,它就是先找出每個數據點和整個樣本均值之差,然後把它們一一平方然後再求和。
之所以要平方,是因為我們對資料點的發散程度感興趣,如果不平方的話,大於和小於平均值的資料點偏離平均值的量就會相互抵消。
我們把上述算式的分子上的這一塊兒稱為總平方和(total sum of squares):
這一定義看起來十分簡單,似乎只是回到了我們以前講過的隨機誤差(可回顧《9.算術平均數:簡單背後有乾坤》《10.正態分佈到底是怎麼來的?》)。
的確,如果我們的樣本裡包含的都是沒有差異的個體(也就是說樣本平均值能代表這些個體的共同性質)時,總平方和大致描繪的就是每個個體的實際資料圍繞它們共同性質所決定的理論平均值的波動程度。
然而,如果樣本裡包含了兩組或者更多組性質不同的個體,事情就不那麼簡單了。
我們用兩個簡單的例子來說明這個問題。
讓我們回到藍精靈的食堂,我們上集說到,由於包子大受歡迎供不應求,現在食堂裡有康師傅、王師傅和格格巫三位包子師傅。
為了簡單起見,我們暫時讓王師傅去休個假。
假設藍精靈從康師傅和格格巫的視窗分別隨機挑了若干個包子,然後稱量出重量,得到了下圖所示的樣本(圖中藍色資料點為格格巫製作的包子,紅色資料點為康師傅製作的包子,注意 y 軸並非從 0 開始):
可以看到,來自格格巫和康師傅的資料點混雜在一起,直觀上看不出什麼區別。
如果我們不把他們倆製作的包子用不同顏色標出,我們就會傾向於認為這些資料點來自於同一個總體,而且大約圍繞 50 克左右的平均值上下波動。
的確,如果我們把包子按照是誰做的分成兩組,單獨求出兩組的重量平均值,會發現它們非常接近。如果我們用獨立樣本 t 檢驗來對兩者做比較,也不會得到有顯著性的結果。在這一個例子裡,樣本的總平方和基本上就會反映兩組包子所構成的共同總體的波動情況。
現在讓我們再來看看另一種情形,圖中藍色、紅色資料點依然分別為格格巫和康師傅製作的包子:
你一定能一眼看出它和上一個例子的區別——儘管這些包子都來自同一個食堂,因而被我們放到了同一個樣本裡頭,但是我們很容易能看到,這個樣本其實包含了兩類包子。
第一類是藍色代表的格格巫的包子,它們的平均值大概在 45 克左右,而第二類是紅色代表的業界良心康師傅的包子,其平均值大概在 55 克左右。如果把兩組資料做個 t 檢驗,毫無疑問結果將會非常顯著。但如果我們不論出處,那麼把它們混在一起計算整個樣本的平均重量仍然大約是 50 克。
這樣一來,儘管我們可以還用之前的公式計算這個樣本的總平方和,但是可以想像,這個總平方和裡面其實包含了兩個性質不同的部分。回想一下,計算總平方和,我們對每個數據點先求出它和樣本平均值之差,然後取平方求和。
例如,對上圖中來自格格巫的重量為 44 克的包子,它和樣本平均值 50 克相差 6 克。
但是,在 6 克的差距裡,大約有 5 克是格格巫所做的包子的重量平均值( 45 克)與樣本平均值( 50 克)的差別,剩下的 1 克則可能是格格巫做這個包子時隨機手抖的產物。
▲▼▲▼
因此,要考慮不同因素對總平方和的貢獻,我們需要進一步把總平方和給分成不同的成分。既然我們現在考慮的是組別和均值之間的關係,那麼總平方和就可以分成「組間平方和」(between-group sum of squares)和「組內平方和」(within-group sum of squares)兩個部分。顧名思義,組間平方和對應的是各組的平均值之間的差別,而組內平方和則是各資料點與自己所在組的平均值之間的差別。
在上面的兩個圖中,組間平方和大致對應於紅、藍兩團資料點之間的距離,而組內平方和對應於紅、藍兩組資料各自有多分散。組間、組內平方和具體的公式稍稍有些繁瑣,我們先按下不表,在後面的例子裡會為大傢俱體展示。
回顧一下前面的兩個例子,試想一下兩個樣本的組間平方和、組內平方和與總平方和之間的關係會有什麼不同?
不用具體計算,相信也能想到,在第一個樣本裡,由於兩組各自的平均值就很接近,它們和整個樣本的平均值自然就沒有什麼區別,因而組間平方和就會很小,總平方和裡頭大部分都是組內平方和。
第二個樣本呢?情況恰恰相反。因為兩組包子各自的平均重量就相去甚遠,所以組間平方和貢獻了大部分的總平方和,而組內平方和就只是小頭了。
從這裡我們是否能得到一點啟示——怎樣利用組間平方和、組內平方和、總平方和之間的關係來判斷各組平均值之間是否有差異?答案就在於總平方和是如何分配的。
記住,我們的原假設是各組平均值之間沒有差異。在原假設成立的情況下,組間平方和應該相對較小。如果組間平方和大,組內平方和小,原假設成立的可能性就小,也就是說各組平均值之間更可能存在差異;如果組間平方和小,組內平方和大,則代表現有資料還不足以推翻原假設。
這個思路恰恰就是 ANOVA 的基本原理!把它弄懂,我們就已經領會了費希爾當年發明 ANOVA 的思想精髓,剩下的就只是技術上的細節了。值得強調的是,雖然我們引出這個思路用的例子裡面只有兩個組,但是它與分組的數量並沒有關係——無論我們有幾個組,都可以按照前面的定義算出組間平方和與組內平方和,然後將它們進行比較。因此,ANOVA 可以用於任意的多組資料平均值間的比較。
▲▼▲▼
為了讓大家進一步掌握 ANOVA 的計算,下面我們來看一個有具體數字和運算的示例。
現在讓我們把王師傅請回來,假設藍精靈分別在格格巫、康師傅、王師傅三人的包子視窗隨機抽取幾個包子,得到了下列資料:
包子師傅 |
格格巫 |
康師傅 |
王師傅 |
包子重量 (克) |
50 |
53 |
55 |
45 |
53 |
53 |
|
48 |
56 |
50 |
|
44 |
55 |
51 |
|
43 |
54 |
56 |
|
50 |
57 |
48 |
怎樣用 ANOVA 的思路來判斷三個包子師傅賣出的包子平均重量有沒有差別?
首先,我們來計算總平方和。把三組資料混在一起,取算術平均值,得到 51.2 克。因此總平方和就是各資料點分別減去 51.2(以下略去單位)再平方,然後把所有這些平方加起來:
接下來我們要分別計算組間和組內平方和,而兩者都需要先知道各組組內的平均值——格格巫、康師傅、王師傅各自的 6 個包子的平均重量分別是 46.7,54.7,52.2(格格巫又是你!!)。
根據組間平方和的定義(各組平均值與整個樣本平均值之差的平方和),我們得到:
其中每個平方和前面的 6 是各組資料點的個數。為什麼要乘以每組資料點的個數?因為不管是總平方和、組間平方和還是組內平方和,它們都是來自每個數據點的平方和,比如說,來自格格巫的 6 個包子雖然重量不同,但在 ANOVA 這個背景下它們擁有一個共同的性質(平均重量為 46.7 克),因此在計算組間平方和時要把 這一項按 6 次計入。
最後,我們來計算組內平方和——相當於把各組自己當成一個小「總體」,算出「總平方和」,然後再加起來,也就是
算術做完了,你有沒有發現一點什麼? 如果我們把組間平方和 201 和組內平方和 107.4 相加,就會得到總平方和(308.5,這裡略有一些偏差是因為計算過程中的四捨五入導致的)。
這並不是巧合,在理論上可以證明總平方和就是組間平方和、組內平方和兩者之和。換言之,在 ANOVA 這個模型裡,樣本的波動情況可以被組間和組內平方和瓜分完畢,也就是說樣本中資料點之間取值的不同只可能有組與組之間的差別以及組內隨機誤差這兩種成因。
回到我們一開始想要回答的問題:這三組包子的平均重量有沒有差別?比較一下組間平方和與組內平方和,容易看到組間平方和比組內平方和大了許多,從而佔據了總平方和的大部分。因此,我們可以初步判斷,這三組包子的平均重量相同的可能性不大。
但是,作為訓練有素的科研狗,我們顯然不能滿足於這樣模糊的判斷。為了得出精確的結論,我們能不能從資料中得到一個針對于原假設「三組包子的平均重量相同」的 p 值?
在下一集裡,我們將繼續沿著今天的思路,一起重遊百年以前費希爾建立 ANOVA 方法的足跡,為大家介紹 ANOVA 背後的統計學模型以及如何確定顯著性。
本系列文章
第 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!
20.用置信區間,就是這麼(不)
21.如何確定 t 檢驗的置信區間
22.優雅秀出你的 t 檢驗,提升Paper!
23.要做 t 檢驗,這兩口毒奶可喝不得!
第 4 章 方差分析(ANOVA):多組平均數的比較
24.要比較三組資料,t 檢驗還能用嗎?
25.ANOVA在手,多組比較不犯愁
留言列表