ARTICLE

费舍尔精确检验

费舍尔精确检验 (Fisher's Exact Test) 费舍尔精确检验,英文为 Fisher's Exact Test,是统计学中一种用于分析列联表 (Contingency Table) 的精确显著性检验方法。由英国统计学家和遗传学家罗纳德·费舍尔 (Ronald A. Fisher) 于 20 世纪 20 年代提出,该方法最常用于检验 2 2 列联表

浏览 5 更新 2025-10-26

费舍尔精确检验 (Fisher's Exact Test)

费舍尔精确检验,英文为 Fisher's Exact Test,是统计学中一种用于分析列联表 (Contingency Table) 的精确显著性检验方法。由英国统计学家和遗传学家罗纳德·费舍尔 (Ronald A. Fisher) 于 20 世纪 20 年代提出,该方法最常用于检验 2×2 2 \times 2 列联表中两个分类变量之间是否存在非随机的关联。与依赖大样本近似的卡方检验不同,费舍尔精确检验直接计算在行与列边际总和固定的条件下,观测到当前表格或更极端表格的精确概率,因此特别适用于小样本情况。

该检验属于非参数检验的范畴,不依赖于数据服从特定分布的假设,而是基于超几何分布 (Hypergeometric Distribution) 来计算精确的 p p 值。与卡方检验相比,其最大优势在于不依赖渐近理论,在任何样本量下都能给出准确的显著性水平,不会因期望频数过低而产生偏误。

历史背景:女士品茶实验

费舍尔精确检验的诞生源于一个著名的统计思想实验——女士品茶 (Lady Tasting Tea)。费舍尔的一位同事 Muriel Bristol 声称自己能分辨奶茶中是先加奶再加茶,还是先加茶再加奶。费舍尔为此设计了一个随机化实验:准备 8 杯奶茶,4 杯先加奶后加茶(方式 A),4 杯先加茶后加奶(方式 B),以随机顺序让 Bristol 品尝并判断每杯的制作方式。实验的结果构成了一个 2×2 2 \times 2 列联表,行代表实际制作方式,列代表她的判断。费舍尔试图回答:若 Bristol 毫无分辨能力原假设成立),仅凭运气猜对这么多杯或更多的概率是多少?他由此发展出了基于超几何分布的概率计算方法,即后来的费舍尔精确检验。

方法原理

2×2 2 \times 2 列联表结构

考虑如下 2×2 2 \times 2 列联表:

| | 成功 | 失败 | 合计 | |---|---|:---:|:---:| | 组1 | a a | b b | a+b a+b | | 组2 | c c | d d | c+d c+d | | 合计 | a+c a+c | b+d b+d | n n |

其中 n=a+b+c+d n = a+b+c+d ,行合计与列合计称为边际总和 (Marginal Totals)。费舍尔精确检验的中心思想在于:在行合计与列合计均固定不变的条件下,左上角单元格 a a 的取值服从超几何分布。换言之,当边际总和固定时,只要知道 a a 的值,整张表格就完全确定了;而 a a 的所有可能取值构成了一个有限的样本空间,我们可以在该空间上直接计算每个可能表格的精确概率。

p p 值的计算

在原假设 H0 H_0 (变量独立,即比值比 OR=1 \text{OR} = 1 )下,观测到特定表格的概率为:

P(a)=(a+ba)(c+dc)(na+c)=(a+b)!(c+d)!(a+c)!(b+d)!a!b!c!d!n!P(a) = \frac{ \binom{a+b}{a} \binom{c+d}{c} }{ \binom{n}{a+c} } = \frac{(a+b)!\,(c+d)!\,(a+c)!\,(b+d)!}{a!\,b!\,c!\,d!\,n!}

该公式的含义是:在所有 n n 个观测中,有 (a+c) (a+c) 个被标记为"成功",从中随机抽取 (a+b) (a+b) 个分配到组1,恰好有 a a 个成功的概率——这正是无放回抽样的超几何分布。

费舍尔精确检验的 p p 值定义为:在原假设下,观测到当前表格或更极端结果的概率之和。设观测值为 aobs a_{\text{obs}}

  • 单侧检验pone=a=aobsmin(a+b,a+c)P(a) p_{\text{one}} = \sum_{a=a_{\text{obs}}}^{\min(a+b, a+c)} P(a)
  • 双侧检验ptwo=a:P(a)P(aobs)P(a) p_{\text{two}} = \sum_{a: P(a) \le P(a_{\text{obs}})} P(a)

其中 a a 的取值范围受边际总和约束:最小为 max(0,a+c(c+d)) \max(0, a+c - (c+d)) ,最大为 min(a+b,a+c) \min(a+b, a+c)

与卡方检验的比较

| 方面 | 费舍尔精确检验 | 皮尔逊卡方检验 | |------|:----------:|:----------:| | 计算方式 | 超几何分布精确概率 | 卡方分布渐近近似 | | 样本要求 | 任意样本量,尤适小样本 | 期望频数通常须 ≥ 5 | | 精确性 | 精确 p p 值 | 近似 p p 值 | | 大表处理 | 计算量剧增 | 直接适用 | | 保守性 | 略微保守 | 小样本时可能过于激进 |

使用建议:对于 2×2 2 \times 2 表且总样本量较小(n<40 n < 40 或任一期望频数 < 5),应优先使用费舍尔精确检验。样本量充足时两种方法结论通常相近。对于大于 2×2 2 \times 2 的表,可使用费舍尔-弗里曼-哈尔顿精确检验 (Fisher-Freeman-Halton Exact Test),但计算强度随维度增加呈指数级增长;在期望频数满足条件时,卡方检验仍是处理大表的主流选择。

假设条件

  1. 独立性:各观测值之间相互独立,通常依靠随机抽样随机分配的研究设计来保证。
  2. 固定边际:行合计与列合计被视为固定值,源于实验设计阶段的样本量和结果计数设定。即使边际在观察性研究中并非事先固定,将其条件化处理仍是有效的推断策略。
  3. 二元分类:两个变量均需为互斥且穷尽的二分类别。连续变量须合理二分化,但会导致信息损失,需谨慎为之。

实际应用领域

  • 医学统计学:比较两种治疗方案的治愈率,尤其适用于罕见病临床试验中的小样本或低发生率结局(如罕见不良反应)的情形。
  • 生物信息学:在基因本体 (GO) 富集分析中检验特定通路的差异表达基因是否显著富集,是该领域的基准方法。
  • 心理学社会学:分析小规模问卷调查中两个分类变量(如性别与某种态度)之间的关联。
  • A/B 测试:在小流量实验且转化事件发生频次较低时,比较实验组与对照组的转化率差异。
  • 法学法医学:在陪审团选择、雇佣歧视案件等情境中分析分类数据的系统性偏差。

局限性与注意事项

  1. 保守性:真实第一类错误率通常低于名义 α \alpha ,因离散型统计量 a a 只能取整数,无法精确达到任意 α \alpha 水平。这种保守性在小样本中更明显,可能导致统计功效下降。
  2. 无条件检验的争论:部分统计学家主张使用不固定边际的"无条件精确检验"(如 Barnard 检验或 Boschloo 检验),可能在特定情境下具有更高功效。但费舍尔精确检验因其简明性和历史地位,仍是最广泛使用的精确方法。
  3. 计算问题:大样本时阶乘计算困难,现代算法(如 Mehta 和 Patel 的网络算法)已大幅提升了可行性,但极大规模下仍需依赖近似方法。
  4. 效应量:该检验仅回答"关联是否存在",不量化关联强度,应同时报告比值比 (Odds Ratio) 及其置信区间

小结

费舍尔精确检验是分析 2×2 2 \times 2 列联表最经典且最可靠的方法之一,尤其在小样本和稀疏数据情境下具有不可替代的地位。它基于超几何分布给出精确 p p 值,避免了卡方检验在小样本时近似不准确的问题。尽管存在一定的保守性和计算复杂性,随着现代计算机算力的提升,其应用已从医学、生物学扩展至社会科学和商业分析等多个领域。在实践中,研究者应结合效应量估计与精确检验结果,对分类变量间的关联做出全面判断。