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

CHAPTER 05 · TOPIC 06

Fisher 精確檢定

Fisher 精確檢定(Fisher’s exact test)用來檢定兩個二元類別變項是否獨立,特別適合樣本較小或 2×2 表中期望次數偏小的情況。它不以連續的卡方分布近似離散資料,而是在固定列、欄邊際總數後,直接計算目前表格及同樣或更極

本頁內容
  1. 固定邊際後,只剩一格可以改變
  2. 一張特定表格的精確機率
  3. 從單張表格的機率得到 p 值
  4. 列舉計算的完整流程
  5. Pearson、Yates 與 Fisher 的比較
  6. 方法怎麼選?
  7. 結果如何報告?

Fisher 精確檢定(Fisher’s exact test)用來檢定兩個二元類別變項是否獨立,特別適合樣本較小或 2×2 表中期望次數偏小的情況。它不以連續的卡方分布近似離散資料,而是在固定列、欄邊際總數後,直接計算目前表格及同樣或更極端表格的機率。

固定邊際後,只剩一格可以改變

沿用前面 2×2 表的 a、b、c、d,不再重複表格結構。令兩個列合計為 R₁、R₂,兩個欄合計為 C₁、C₂。Fisher 檢定的新增觀念,是在這四個邊際總數固定時列舉表格;只要決定左上角 a,其餘三格便全部確定。

沿用既有邊際符號R1=a+b,R2=c+d,C1=a+c,C2=b+dR_1=a+b,\quad R_2=c+d,\quad C_1=a+c,\quad C_2=b+d
由 a 決定其他三格b=R1a,c=C1a,d=R2C1+ab=R_1-a,\qquad c=C_1-a,\qquad d=R_2-C_1+a
a 的最小可能值amin=max(0,R1C2)a_{\min}=\max(0,R_1-C_2)
a 的最大可能值amax=min(R1,C1)a_{\max}=\min(R_1,C_1)

一張特定表格的精確機率

在 H₀ 與固定邊際總數下,可以把第 1 欄的 C₁ 個觀察視為 N 個位置中的「成功」,再從 N 個位置中選出 R₁ 個放入第 1 列。第 1 列恰好取得 a 個第 1 欄觀察的機率服從超幾何分布。

組合數寫法P(A=aR1,R2,C1,C2)=(C1a)(C2R1a)(NR1)P(A=a\mid R_1,R_2,C_1,C_2)=\frac{\binom{C_1}{a}\binom{C_2}{R_1-a}}{\binom{N}{R_1}}
以四格次數寫成階乘P(a,b,c,d)=R1!R2!C1!C2!a!b!c!d!N!P(a,b,c,d)=\frac{R_1!R_2!C_1!C_2!}{a!b!c!d!N!}
補充:為什麼會得到超幾何公式?

固定欄總數後,N 個觀察中有 C₁ 個屬於第 1 欄、C₂ 個屬於第 2 欄。現在從 N 個觀察中選 R₁ 個進入第 1 列,所有選法共有 C(N,R₁) 種。

全部可能選法(NR1)\binom{N}{R_1}
第 1 欄選出 a 個(C1a)\binom{C_1}{a}
第 2 欄選出 R₁−a 個(C2R1a)\binom{C_2}{R_1-a}

符合這張表的選法數等於後兩個組合數相乘,再除以全部選法數,就得到該表格的條件機率。

P(A=amargins)=(C1a)(C2R1a)(NR1)P(A=a\mid\text{margins})=\frac{\binom{C_1}{a}\binom{C_2}{R_1-a}}{\binom{N}{R_1}}

把每個組合數展開為 n!/[k!(n−k)!],並利用 b=R₁−a、c=C₁−a、d=R₂−C₁+a,即可整理成四格階乘公式。

(C1a)(C2b)(NR1)=R1!R2!C1!C2!a!b!c!d!N!\frac{\binom{C_1}{a}\binom{C_2}{b}}{\binom{N}{R_1}}=\frac{R_1!R_2!C_1!C_2!}{a!b!c!d!N!}

從單張表格的機率得到 p 值

觀察表格本身的機率還不是完整 p 值。p 值必須把 H₀ 下與目前結果一樣極端或更極端的所有可能表格機率加總;所謂極端,是指更支持預先設定之 H₁ 的方向。

單尾檢定必須事先指定關聯方向,例如 OR>1 或 OR<1;雙尾檢定則關心任何方向的偏離。不能看到資料後才決定採用哪一個尾端。

右尾:較大的 a 支持指定方向pright=aaobsP(A=amargins)p_{\mathrm{right}}=\sum_{a\geq a_{\mathrm{obs}}}P(A=a\mid\text{margins})
左尾:較小的 a 支持指定方向pleft=aaobsP(A=amargins)p_{\mathrm{left}}=\sum_{a\leq a_{\mathrm{obs}}}P(A=a\mid\text{margins})
ptwo-sided=T:P(T)P(Tobs)P(T)p_{\mathrm{two\text{-}sided}}=\sum_{T:\,P(T)\leq P(T_{\mathrm{obs}})}P(T)
符號在這組公式中的意義
Σ求和符號;將指定範圍內的各項全部加總

列舉計算的完整流程

  1. 由觀察表格算出 R₁、R₂、C₁、C₂ 與 N,後續保持這些邊際總數不變。
  2. 利用 a_min 到 a_max 找出左上角 a 的所有可能值,並由 a 決定 b、c、d。
  3. 對每一張可能表格代入超幾何公式,計算其條件機率。
  4. 依預先設定的單尾方向,或軟體採用的雙尾定義,挑出與觀察結果同樣或更極端的表格。
  5. 把這些表格的機率全部相加,得到 Fisher 精確檢定的 p 值。

Pearson、Yates 與 Fisher 的比較

比較項目Pearson 卡方Yates 校正Fisher 精確檢定
基本方法以卡方分布作大樣本近似修正離散到連續的卡方近似直接計算固定邊際下的離散機率
主要統計基礎(OE)2/E\sum(O-E)^2/E(OE0.5)2/E\sum(|O-E|-0.5)^2/E超幾何分布
適用表格一般 r×c 表僅 2×2、df=1主要用於 2×2 表
小樣本表現近似可能不準確通常較保守,可能降低 power不依賴大樣本卡方近似
p 值來源卡方分布右尾卡方分布右尾同樣或更極端表格的機率總和

Yates 與 Fisher 都常在小型 2×2 表中出現,但 Yates 仍然是卡方近似,Fisher 才是直接使用離散條件機率。樣本足夠時 Pearson 通常較直接;資料稀疏時則應優先考慮精確方法,而不是只套用固定的總樣本數門檻。

方法怎麼選?

方法選擇應檢查各格期望次數,而不是只看總樣本數,或看到某個觀察次數小於 5 就直接下結論。下表把前面三頁的方法集中在這裡整理一次。

資料情況可考慮的方法
2×2 表、各格期望次數充足未校正 Pearson 卡方通常即可
2×2 表、預先決定採較保守的連續近似Yates 連續性校正
2×2 表、樣本或期望次數很小優先考慮 Fisher 精確檢定
大於 2×2 的一般 r×c 表Pearson 卡方;條件不足時考慮適合的精確或 Monte Carlo 方法

結果如何報告?

Fisher 檢定回答的是兩個類別變項是否存在統計關聯。完整報告仍應同時提供 2×2 表的比例、OR 或 RR、相應信賴區間及研究設計背景;只有 p 值無法表示關聯方向與效果大小。