費雪正確機率檢定（英文：Fisher's exact test），或稱費雪精確檢定，是統計學中的一種假說檢定，用於檢定列聯表的顯著性差異，由羅納德・愛爾默・費雪於 1935 年所創。實務中，該方法常用於樣本數較小的情況，但其實不限於小樣本情況。它屬於一種精確檢定，也就是其 p 值可以由虛無假說的分布實際計算而不是藉由足夠的樣本數逼近一個特定的機率分布。

據說，費雪根據繆麗・布里斯托女士聲稱能夠區別奶茶是先加了茶還是牛奶而設計了這項檢定。他在女士品茶實驗中亦實作了這項檢定。



目的與使用情境

此檢定在考驗兩種分類結果所產生的類別型變數很有用；它用於檢查兩種分類結果之間的關聯（偶然性）是否顯著。在費雪的原始例題中，一個分類結果是奶茶實際上的沖泡方式（先加牛奶還是茶），另一個分類標準是繆麗・布里斯托認定的沖泡方式，並使用本方法檢定這兩種分類結果是否具有關聯（受測者是否真的可以分辨出先倒入的是牛奶還是茶）。如同女士品茶實驗，此檢定大多數使用於 2 × 2 列聯表（如下所述）。最終求得的 p 值是基於列聯表邊際是固定的，也就是受測者明確知曉八杯茶中有四杯先加牛奶，因此必然只會挑出四杯。這導致表格單元格中數字在獨立性虛無假說下服從超幾何分布。

若樣本數較大，一般使用卡方檢定或 G 檢定，其統計量近似於卡方分布。在樣本數較小或是表格中次數差異很大的情況，這樣的大樣本近似方法不適用。通常可以預先檢查表格中各細格的期望值是否皆大於 5（或是只有一格小於 10）以決定可否使用基於卡方分布的大樣本近似方法，雖然這樣的預先檢查已被認定為過度保守。事實上，卡方近似方法的 p 值在過小、稀疏的或不平衡的數據與精確檢定的 p 值可能南轅北轍而導致相反結論。相比之下，費雪精確檢定，正如其名稱所述，只要實驗過程保持行和列總和固定不變，它就是精確的，因此無論樣本特徵如何都可以使用。費雪的方法雖然使用於大樣本或平衡良好的表格會使計算變得困難，但幸運的是，這些正是卡方檢定適合的條件。

此檢定在 2 × 2 列聯表的情況下可以用手計算。然而，此方法其實可以擴展到 _m_ × _n_ 聯表的情況，但計算並不容易，可改用統計軟體計算（其中有些使用蒙特卡羅方法來獲得 p 值的近似值）。

此檢定還可用於量化兩組之間的「重疊程度」。例如，在統計遺傳學的富集分析中，可以為特定的表型加註一組基因（A）。使用者可以測試某些感興趣的基因組（B）與基因組 A 的重疊程度。在這種情況下，可以歸納成一個 2 × 2 列聯表以表示以下情況的次數：

1. 同時存在於 A 基因組與 B 基因組的基因
2. 僅存在於 A 的基因
3. 僅存在於 B 的基因
4. 同時不存在於 A 與 B 的基因

該測試的虛無假說是任一基因組的基因都來自更廣泛的基因集，再以費雪正確機率檢定檢定是否顯著重疊。



例題

以一群青少年樣本為例，一方面可以將樣本分為男性和女性，另一方面可以分為目前正在或尚未準備統計學考試。樣本中正在準備考試的女性多於男性，而目標是檢定這項比例差異是否顯著。數據如下所示：

這些數據顯示這 24 名青少年中有 10 名正在準備考試，並且這 24 名青少年中有 12 名是女性。若虛無假說設定為男性和女性的學習比例是相等的，則這 10 名準備考試的青少年的性別分布是否不同於尚未準備考試者？更具體的說，如果隨機選擇 10 位青少年，則能夠抽出 12 位女性中的 9 位（或更多）女性而 12 名男性中只抽出 1 位（或更少）的機率是多少？

在進行檢定之前介紹一些符號：以字母 _a_、_b_、_c_ 和 _d_ 表示各細格中的次數，將跨行和跨列的總計稱為邊際總計，並用 _n_ 表示總和數。所以上述表格可寫成：

費雪表明，以表格中列總和與欄總和皆被故定為條件，_a_ 呈超幾何分布，其中 _a_ + _c_ 從 _a_+_b_ 成功和 _c_+_d_ 失敗的母體中抽出。獲得這樣一組結果的機率由下式給出：

　
: $p={\frac {\displaystyle {{a+b} \choose {a}}\displaystyle {{c+d} \choose {c}}}{\displaystyle {{n} \choose {a+c}}}}={\frac {\displaystyle {{a+b} \choose {b}}\displaystyle {{c+d} \choose {d}}}{\displaystyle {{n} \choose {b+d}}}}={\frac {(a+b)!~(c+d)!~(a+c)!~(b+d)!}{a!~~b!~~c!~~d!~~n!}}$

其中 ${\tbinom {n}{k}}$ 是二項式係數，符號「!」表示階乘運算。我們可以這樣理解：若已知所有的邊際總和（即 _a_ + _b_、_c_ + _d_、_a_ + _c_ 和 _b_ + _d_），則只剩下一個自由度，例如已知 _a_ 則足以推導出其他數值。現在， ${\displaystyle p=p(a)}$ 是從包含 _n_ 個元素的更大集合中抽出不放回地隨機選擇 _a_ + _c_ 個元素時抽出 _a_ 元素，這正是超幾何分布的定義。由上述資料可得，

　
: $p={{\tbinom {10}{1}}{\tbinom {14}{11}}}/{\tbinom {24}{12}}={\tfrac {10!~14!~12!~12!}{1!~9!~11!~3!~24!}}\approx 0.001346076$

上面的公式給出了觀察這種特定數據排列的確切超幾何機率，其前提是男性和女性具有相同比例進行考試準備比例的虛無假說以及邊際總數為定值。換句話說，如果假設男性與女性準備考試的機率都是 _p_，並且男性和女性都是獨立地被採樣，無論他們是否正在準備考試，那麼這個超幾何公式給出了在四個單元格中觀察次數 _a_、_b_、_c_、_d_ 的條件機率，其中的條件是已知的邊際總數（也就是列與欄總數）。即使男性與女性以不同的機率抽出成為樣本（例如母體中性別比例不是 1:1），這仍然是正確的。要求僅僅是兩個分類特徵（性別和是否準備考慮）互為獨立事件。例如，假設我們知道機率 _P_ 和 _Q_ 分別表示男性與女性的邊際比例，機率 _p_ 與 _q_ 分別表示有無準備考試的邊際比例，自然存在 _P_ + _Q_ = 1 與 _p_ + _q_ = 1 的事實，且性別和是否準備考慮互為獨立事件，則上述資料各性別與是否準備考試的機率則分別為


* 已準備考試的男性機率：_PQ_

* 已準備考試的女性機率：_pQ_

* 未準備考試的男性機率：_Pq_

* 未準備考試的女性機率：_pq_

之後，若計算給定邊際條件的分布，將可獲得上述的公式，其中 _p_ 和 _P_ 都不在式中。因此 24 名青少年任意排列到表的四個單元格中的確切機率是可以計算的。費雪表明，統計顯著性的計算只需要考慮邊際總和與觀測結果相同或更極端的情況即可。（巴納德檢定則放寬了對一組邊際總數的限制。）在該示例中，有 11 種排列方式與上述數據在相同的方向上更為極端，並可以簡化為 1 種組合（如下表）：

而發生這組資料的機率（在相同前提下）為 ${p={\tbinom {10}{0}}{\tbinom {14}{12}}}/{\tbinom {24}{12}}\approx 0.000033652$

若虛無假說為真可以得到單尾檢定的 p 值，即目前資料及更極端的資料的機率總和，約等於 0.001346076 + 0.000033652 = 0.001379728。在 R 語言環境下，這個值可以藉由 `fisher.test(rbind(c(1,9),c(11,3)),alternative="less")$p.value`，或者在 Python 中使用 `scipy.stats.fisher_exact(table=[[1,9],[11,3]], alternative="less")` 獲取。該 p 值可以解釋為觀察數據（或任何更極端的表格）為虛無假說（男性和女性準備考試的比例沒有差異）提供的證據總和。當 p 值越小，拒絕原假設的證據越多；因此例題中的數據強烈地表明男性和女性準備考試的可能性並不相同。

若考慮的是雙尾檢定，則需要額外考慮同樣極端但方向相反的表格，即對稱於目前資料方向的拒絕域。然而，此時「對稱處更極端的表格」並沒有唯一的定義。R 語言提供的 `fisher.test` 函數採用的方法是對所有機率小於或等於目前資料機率的總和來計算 p 值，因此雙尾檢定的 p 值不一定是單尾檢定的二倍（特別是小樣本的情況），與其它具有對稱性的機率分布不同。

如上所述，太多數現代統計軟體可以計算費雪精確檢定的顯著性，但此時可改以卡方分布的近似方法，或是利用 Γ 函數或對數 Γ 函數。當樣本數很大或欄列數超過 2 時，計算費雪檢定是困難的，例如過程中面對過大的階乘。但隨個人電腦記算能力的進步，主流統計軟體（諸如 SPSS、SAS、R 語言、以及在 Python 語言環境使用 SciPy 工具包等）已納入費雪法的計算程式。



爭議

儘管費雪的檢定方法能精確地計算 p 值，但一些作者認為它是保守的，也就是檢定力較低。當離散統計量的特性與選用固定的顯著性水準二者結合後可能發生這樣的問題。更準確地說，費雪檢定加總了在虛無假說成立時每種相同或更極端的表格之發生機率為 p 值，但由於所有表格的集合是離散的，可能不存在與實現情況相等的表格。若 αe 是小於 5% 的最大 p 值並存在於某些表格的集合，建議應預先測試有效的 αe 水準。對於小樣本量的清況，αe 可能明顯低於 5%。雖然這種影響發生在任何離散統計數據中，但有人認為這一事實使費雪在邊際上的檢定條件使問題更加複雜。為了避免這個問題，許多作者在處理離散問題時不鼓勵使用固定的顯著性水準。

以表格邊際為條件的決定也存在爭議。費雪檢定得出的 p 值來自以列邊際總和與欄邊際總和被固定。從這個意義上講，測試僅對條件分布是精確的，而不是原始表格。在原始資料中，邊際總數可能因實驗而異而不適合使用費雪檢定。當邊際總和不固定時，可以考慮使用其他方法以獲得 2 × 2 表格的精確 p 值。例如，巴納德檢定允許隨機的邊際總和。然而，一些作者（包括後來的巴納德本人）批評了巴納德基於此性質的檢定。他們認為邊際成功總數（即前先表格中的 _a_ + _b_）幾乎是輔助統計量，幾乎不包含有關測試屬性的訊息。

從 2 × 2 表格中以邊際成功率為條件可能忽略了數據中關於未知勝算比的一些訊息。邊際總數（幾乎）是輔助統計量的論點意味著，用於推斷這個勝算比的適當概似函數應該以邊際成功率為條件。這種被忽略的訊息對於推論的目的是否重要仍有爭論。



替代方法

巴納德檢定可用於代替費雪檢定，特別是在 2 × 2 表格的情況有更高的檢定力。此外，博世路檢定是另一種精確檢定，亦比費雪檢定具有更高的檢定力。

對於階層式的類別資料，必須使用諸如 CMH 檢定等考慮採樣階層的方法，而不是費雪檢定。

根據給定邊際成功率的勝算比的條件分布可以提出基於概似比檢定的 p 值。此 p 值在推論上與常態分布數據的經典檢定以及基於此條件概似函數的概似比和支持區間一致，並可在 R 語言上進行運算。



相關條目


* 巴納德檢定

* 博世路檢定

* 勝算比

* 列聯表

* 女士品茶



參考文獻



外部連結


* 線上進行費雪檢定

* 2 × 2 列聯表的概似比檢定