生物統計學習筆記從概念、推導到實務判讀

CHAPTER 06 · TOPIC 01

單因子變異數分析(One-way ANOVA)

單因子獨立樣本變異數分析(one-way independent-samples analysis of variance, one-way ANOVA)用來比較三組或以上彼此獨立的樣本,判斷它們在某個定量變數上的母體平均數是否全都相同。兩

本頁內容
  1. ANOVA 的核心想法:分組是一個模型
  2. 資料形式與研究問題
  3. 成立條件
  4. 為什麼各組的組內平方和可以合併?
  5. 為什麼均方相除會形成 F 分配?
  6. 建立假設
  7. 符號與資料結構
  8. 單因子 ANOVA 模型
  9. 第一步:分解平方和
  10. 第二步:分配自由度並計算均方
  11. 第三步:計算 F 值與 p 值
  12. ANOVA 摘要表
  13. 完整分析流程
  14. ANOVA 不只一種

單因子獨立樣本變異數分析(one-way independent-samples analysis of variance, one-way ANOVA)用來比較三組或以上彼此獨立的樣本,判斷它們在某個定量變數上的母體平均數是否全都相同。兩組資料也能使用 ANOVA,但只有兩組且採用相同的等變異模型時,獨立樣本 t 檢定通常更直接。

ANOVA 的核心想法:分組是一個模型

把觀察值分成不同組別,就等於建立一個以組別解釋結果的模型。模型若有解釋力,各組平均數應有明顯差異,也就是組間變異較大;同一組內的觀察值則應相對集中,使未被分組解釋的誤差較小。這個「模型所解釋的變異與誤差變異相比」的想法,之後也會出現在迴歸分析。

F 統計量F=MSbetweenMSwithin=MSMMSEF=\frac{MS_{\mathrm{between}}}{MS_{\mathrm{within}}}=\frac{MS_M}{MS_E}
在 H₀ 成立時FFk1,nkF\sim F_{k-1,\,n-k}

F 值越大,表示組間差異相對於組內誤差越大,資料與「所有母體平均數相同」的虛無假設越不相容,因此右尾 p 值通常越小。不過,F 值大並不等於模型一定「好」,仍要同時檢查研究設計、模型假設、效果大小與實際意義。

資料形式與研究問題

項目單因子獨立樣本 ANOVA 的要求
自變數(因子)一個類別變數,包含兩個以上彼此獨立的組別或水準
依變數可合理計算平均數的定量變數
觀察單位每個觀察單位只屬於一組,各觀察值彼此獨立
研究問題各組的母體平均數是否全都相同?

「單因子」是指模型中只有一個自變數,不是指只有一組資料。例如,用治療方式將受試者分成安慰劑、低劑量與高劑量三組,再比較治療後血壓,因子是「治療方式」,三種治療方式則是這個因子的三個水準。

成立條件

  • 獨立性:各觀察值彼此獨立,通常由抽樣或研究設計加以保證。
  • 常態性:在每一組中,誤差項近似常態分布;實務上應查看各組分布或模型殘差。
  • 等變異性:各組母體具有共同變異數 σ²,因此各組的組內平方和可以合併估計同一個誤差變異數。

為什麼各組的組內平方和可以合併?

計算組內均方 MSE 時,我們先把所有組別的組內離差平方和加在一起,再除以組內自由度 n−k。讀者很自然會問:每組平均數明明不同,為什麼這些離差可以直接合併?關鍵是離差都先以各組自己的平均數為中心,所以它們不再反映組與組之間的平均數差異,而是在描述各組內部的隨機變動。

第 j 組的組內平方和SSE,j=i=1nj(XijXˉj)2SS_{E,j}=\sum_{i=1}^{n_j}(X_{ij}-\bar X_j)^2
合併所有組別SSE=j=1kSSE,j=j=1ki=1nj(XijXˉj)2SS_E=\sum_{j=1}^{k}SS_{E,j}=\sum_{j=1}^{k}\sum_{i=1}^{n_j}(X_{ij}-\bar X_j)^2
共同的組內變異數估計MSE=SSEnkMS_E=\frac{SS_E}{n-k}

傳統單因子 ANOVA 假設每組誤差的母體變異數都等於同一個 σ²。雖然各組平均數 μⱼ 可以不同,但各組的 SSE,j 都是在估計同一個誤差變異數,因此可以像等變異獨立樣本 t 檢定的 pooled variance 一樣,依各組自由度合併。每組估計自己的平均數會用掉 1 個自由度,所以合併後的自由度是 Σ(nⱼ−1)=n−k。

共同變異數假設Var(εij)=σ2for every group j\operatorname{Var}(\varepsilon_{ij})=\sigma^2\quad\text{for every group }j
組內自由度合併j=1k(nj1)=j=1knjk=nk\sum_{j=1}^{k}(n_j-1)=\sum_{j=1}^{k}n_j-k=n-k

為什麼均方相除會形成 F 分配?

原文提到 F 分配由兩個卡方變數相除而來,這正是 ANOVA 公式成立的重要理由。更精確地說,在 H₀ 成立,且誤差彼此獨立、服從常態分布並具有共同變異數 σ² 時,組間平方和與組內平方和除以 σ² 後,會形成兩個彼此獨立的卡方變數。

組間標準化平方和SSMσ2χk12\frac{SS_M}{\sigma^2}\sim\chi^2_{k-1}
組內標準化平方和SSEσ2χnk2\frac{SS_E}{\sigma^2}\sim\chi^2_{n-k}

F 分配不是直接把兩個卡方變數相除,而是把它們各自除以自己的自由度後再相除。代入 ANOVA 的兩個平方和,共同的 σ² 會在分子與分母中消去,最後正好得到組間均方除以組內均方。

(SSM/σ2)/(k1)(SSE/σ2)/(nk)=SSM/(k1)SSE/(nk)=MSMMSEFk1,nk\frac{(SS_M/\sigma^2)/(k-1)}{(SS_E/\sigma^2)/(n-k)}=\frac{SS_M/(k-1)}{SS_E/(n-k)}=\frac{MS_M}{MS_E}\sim F_{k-1,\,n-k}
符號在這組公式中的意義
Xᵢⱼ第 j 組中的第 i 個觀察值
X̄ⱼ、X̄··第 j 組平均數與全部資料的總平均數
nⱼ、n、k第 j 組樣本數、總樣本數與組別數
SSM、SSE、SST組間、組內與全體平方和
MSM、MSE組間均方與組內均方
F組間均方除以組內均方所得的 ANOVA 檢定統計量
σ²、σ母體變異數與母體標準差;下標用來指出是哪一個統計量的標準差
~服從某個機率分配

組內雖然包含很多組,但在共同變異數假設下,各組的組內平方和都是同一種誤差資訊;相加後形成一個自由度為 n−k 的合併卡方變數。因此 ANOVA 的分母只有一個 MSE。若各組變異數不同,這個傳統的共同 MSE 與上述精確 F 分配關係便不再成立,應考慮 Welch ANOVA 等不要求等變異的方法。

建立假設

虛無假設H0:μ1=μ2==μkH_0:\mu_1=\mu_2=\cdots=\mu_k
對立假設H1:並非所有 μj 都相等H_1:\text{並非所有 }\mu_j\text{ 都相等}
等價敘述H1:j 使得 μjμH_1:\exists\,j\ne \ell\text{ 使得 }\mu_j\ne\mu_\ell

符號與資料結構

假設共有 k 組,第 j 組有 nⱼ 個觀察值,總樣本數為 n。用 Xᵢⱼ 表示第 j 組中的第 i 個觀察值。

符號意義
Xᵢⱼ第 j 組中的第 i 個觀察值
nⱼ第 j 組的樣本數
n=Σnⱼ所有組別合計的總樣本數
X̄ⱼ第 j 組的樣本平均數
X̄··全部 n 個觀察值的總平均數(grand mean)
k組別數,也就是因子的水準數
第 j 組平均數Xˉj=1nji=1njXij\bar X_j=\frac{1}{n_j}\sum_{i=1}^{n_j}X_{ij}
總平均數Xˉ=1nj=1ki=1njXij=1nj=1knjXˉj\bar X_{\cdot\cdot}=\frac{1}{n}\sum_{j=1}^{k}\sum_{i=1}^{n_j}X_{ij}=\frac{1}{n}\sum_{j=1}^{k}n_j\bar X_j

單因子 ANOVA 模型

每個觀察值可以寫成「總平均 + 該組效果 + 個人誤差」。組別效果描述第 j 組平均數相對於總平均的偏移;誤差則描述個別觀察值相對於自己組平均數的偏移。

母體模型Xij=μ+αj+εijX_{ij}=\mu+\alpha_j+\varepsilon_{ij}
組別效果αj=μjμ\alpha_j=\mu_j-\mu
誤差假設εijiidN(0,σ2)\varepsilon_{ij}\overset{\mathrm{iid}}{\sim}N(0,\sigma^2)

在樣本資料中,同一個總離差也能直接拆成組間部分與組內部分:

XijXˉ總離差=XˉjXˉ組間:模型+XijXˉj組內:誤差\underbrace{X_{ij}-\bar X_{\cdot\cdot}}_{\text{總離差}}=\underbrace{\bar X_j-\bar X_{\cdot\cdot}}_{\text{組間:模型}}+\underbrace{X_{ij}-\bar X_j}_{\text{組內:誤差}}
符號在這組公式中的意義
Xᵢⱼ第 j 組中的第 i 個觀察值
X̄ⱼ、X̄··第 j 組平均數與全部資料的總平均數
nⱼ、n、k第 j 組樣本數、總樣本數與組別數
SSM、SSE、SST組間、組內與全體平方和
MSM、MSE組間均方與組內均方
F組間均方除以組內均方所得的 ANOVA 檢定統計量

第一步:分解平方和

離差有正有負,直接相加會互相抵銷,因此將離差平方後再加總。總平方和 SST 可以精確分解為組間平方和 SSM 與組內平方和 SSE。

組內平方和(error)SSE=j=1ki=1nj(XijXˉj)2SS_E=\sum_{j=1}^{k}\sum_{i=1}^{n_j}(X_{ij}-\bar X_j)^2
組間平方和(model)SSM=j=1knj(XˉjXˉ)2SS_M=\sum_{j=1}^{k}n_j(\bar X_j-\bar X_{\cdot\cdot})^2
總平方和(total)SST=j=1ki=1nj(XijXˉ)2SS_T=\sum_{j=1}^{k}\sum_{i=1}^{n_j}(X_{ij}-\bar X_{\cdot\cdot})^2
平方和分解SST=SSM+SSESS_T=SS_M+SS_E

第二步:分配自由度並計算均方

平方和會隨樣本數與組數增加,不能直接拿來比較。將各平方和除以對應自由度,得到可比較的均方(mean square)。

變異來源自由度理由
組間(model)k−1k 個組平均數受到總平均數的一項限制
組內(error)n−k每一組估計一個平均數,共損失 k 個自由度
全體(total)n−1全部資料估計一個總平均數
組間均方MSM=SSMk1MS_M=\frac{SS_M}{k-1}
組內均方MSE=SSEnkMS_E=\frac{SS_E}{n-k}
自由度分解n1=(k1)+(nk)n-1=(k-1)+(n-k)

第三步:計算 F 值與 p 值

在 H₀ 成立時,組間均方與組內均方都在估計共同誤差變異數 σ²,因此 F 通常接近 1。若組別平均數確實不同,組間均方還會包含組別效果,使 F 傾向變大。

檢定統計量Fobs=MSMMSEF_{\mathrm{obs}}=\frac{MS_M}{MS_E}
右尾 p 值p=P ⁣(Fk1,nkFobsH0)p=P\!\left(F_{k-1,\,n-k}\ge F_{\mathrm{obs}}\mid H_0\right)

由 F 分配表或統計軟體求得 p 值後,將它與事先設定的顯著水準 α 比較。若 p≤α,拒絕 H₀,結論是至少一組母體平均數不同;若 p>α,則沒有足夠證據拒絕 H₀,但不能因此證明所有平均數完全相同。

ANOVA 摘要表

變異來源平方和 SS自由度 df均方 MSF 值p 值
組間(model)SSMk−1MSM=SSM/(k−1)MSM/MSE右尾機率
組內(error)SSEn−kMSE=SSE/(n−k)
全體(total)SSTn−1

完整分析流程

  1. 確認研究問題是一個類別因子對定量結果的平均數比較,且各組觀察值彼此獨立。
  2. 先看各組樣本數、平均數、標準差、分布圖與可能的異常值。
  3. 設定 H₀、H₁ 與顯著水準 α,並檢查常態性與等變異性是否合理。
  4. 計算 SSM、SSE 與 SST,確認 SST=SSM+SSE。
  5. 依自由度計算 MSM 與 MSE,再求 F 值及其右尾 p 值。
  6. 報告各組描述統計、F 值、兩個自由度、p 值與效果大小;若整體檢定顯著,再依研究問題進行適當的對比或事後比較。
補充:為什麼兩組資料會得到 F=t²?

當單因子獨立樣本 ANOVA 只有兩組時,若它與獨立樣本 t 檢定採用相同的等變異模型,兩者其實是在檢定同一個虛無假設。下面從兩種方法使用的變異數估計開始,逐步說明兩個統計量為什麼會滿足 F=t²。

第一步:寫出等變異獨立樣本 t 統計量

Pooled t 統計量t=Xˉ1Xˉ2sp2(1n1+1n2)t=\frac{\bar X_1-\bar X_2}{\sqrt{s_p^2\left(\frac{1}{n_1}+\frac{1}{n_2}\right)}}
合併變異數sp2=(n11)s12+(n21)s22n1+n22s_p^2=\frac{(n_1-1)s_1^2+(n_2-1)s_2^2}{n_1+n_2-2}

第二步:證明 ANOVA 的 MSE 就是 sₚ²

兩組各自的樣本變異數乘以自己的自由度,就是該組的組內離差平方和。把兩組相加,便得到 ANOVA 的組內平方和 SSE。

兩組的組內平方和SSE=(n11)s12+(n21)s22SS_E=(n_1-1)s_1^2+(n_2-1)s_2^2
只有兩組時的組內自由度dfE=(n1+n2)2df_E=(n_1+n_2)-2
組內均方MSE=SSEn1+n22=sp2MS_E=\frac{SS_E}{n_1+n_2-2}=s_p^2

因此,等變異 t 檢定使用的合併變異數 sₚ²,與兩組 ANOVA 分母中的 MSE 是同一個共同組內變異數估計值。

第三步:求兩組 ANOVA 的組間均方

先以兩組樣本數加權,求全部資料的總平均數:

Xˉ=n1Xˉ1+n2Xˉ2n1+n2\bar X_{\cdot\cdot}=\frac{n_1\bar X_1+n_2\bar X_2}{n_1+n_2}

將各組平均數減去總平均數,可以把兩個組間離差都改寫成兩組平均數差的倍數:

第 1 組的組間離差Xˉ1Xˉ=n2n1+n2(Xˉ1Xˉ2)\bar X_1-\bar X_{\cdot\cdot}=\frac{n_2}{n_1+n_2}(\bar X_1-\bar X_2)
第 2 組的組間離差Xˉ2Xˉ=n1n1+n2(Xˉ2Xˉ1)\bar X_2-\bar X_{\cdot\cdot}=\frac{n_1}{n_1+n_2}(\bar X_2-\bar X_1)

兩組 ANOVA 的組間自由度是 2−1=1,所以組間均方 MSM 等於組間平方和 SSM。將上面的兩個離差代入:

代入組間平方和MSM=SSM=n1(n2n1+n2(Xˉ1Xˉ2))2+n2(n1n1+n2(Xˉ2Xˉ1))2MS_M=SS_M=n_1\left(\frac{n_2}{n_1+n_2}(\bar X_1-\bar X_2)\right)^2+n_2\left(\frac{n_1}{n_1+n_2}(\bar X_2-\bar X_1)\right)^2
提出共同的平均數差平方MSM=n1n22+n2n12(n1+n2)2(Xˉ1Xˉ2)2MS_M=\frac{n_1n_2^2+n_2n_1^2}{(n_1+n_2)^2}(\bar X_1-\bar X_2)^2
化簡MSM=n1n2n1+n2(Xˉ1Xˉ2)2MS_M=\frac{n_1n_2}{n_1+n_2}(\bar X_1-\bar X_2)^2
改寫成 t 分母的形式MSM=(Xˉ1Xˉ2)21n1+1n2MS_M=\frac{(\bar X_1-\bar X_2)^2}{\frac{1}{n_1}+\frac{1}{n_2}}

第四步:將 MSM 與 MSE 相除

把剛才得到的 MSM 放入 F 的分子,再以 MSE=sₚ² 作為分母:

兩組 ANOVA 的 F 統計量F=MSMMSE=(Xˉ1Xˉ2)2sp2(1n1+1n2)F=\frac{MS_M}{MS_E}=\frac{(\bar X_1-\bar X_2)^2}{s_p^2\left(\frac{1}{n_1}+\frac{1}{n_2}\right)}
將 pooled t 平方t2=[Xˉ1Xˉ2sp2(1n1+1n2)]2=(Xˉ1Xˉ2)2sp2(1n1+1n2)t^2=\left[\frac{\bar X_1-\bar X_2}{\sqrt{s_p^2\left(\frac{1}{n_1}+\frac{1}{n_2}\right)}}\right]^2=\frac{(\bar X_1-\bar X_2)^2}{s_p^2\left(\frac{1}{n_1}+\frac{1}{n_2}\right)}
結論F=t2\boxed{F=t^2}

ANOVA 不只一種

本單元介紹的是單因子獨立樣本 ANOVA。若同一批受試者在多個時間點或條件下重複測量,應使用相依樣本或重複量數 ANOVA;若模型同時包含兩個因子,可使用二因子 ANOVA 並研究主效果與交互作用;若同時分析多個依變數,則可能使用多變量變異數分析(MANOVA)。這些方法都延伸自變異分解與模型比較的核心想法,但成立條件、平方和與解釋方式並不完全相同。