ARTICLE
Fisher精确检验
Fisher精确检验 (Fisher's Exact Test) Fisher精确检验 (Fisher's Exact Test),又称Fisher精确概率法,是由英国统计学家Ronald Fisher于1935年提出的一种假设检验方法。它专门用于分析列联表(Contingency Table)中两个分类变量之间的关联性,尤其适用于小样本情境。与卡方检验(C
Fisher精确检验 (Fisher's Exact Test)
Fisher精确检验 (Fisher's Exact Test),又称Fisher精确概率法,是由英国统计学家Ronald Fisher于1935年提出的一种假设检验方法。它专门用于分析列联表(Contingency Table)中两个分类变量之间的关联性,尤其适用于小样本情境。与卡方检验(Chi-squared Test)不同,Fisher精确检验不依赖大样本近似,而是直接通过超几何分布(Hypergeometric Distribution)计算精确的p值,因此被称为"精确"检验。该检验的提出源于Fisher对孟德尔遗传学和实验设计的研究,是数理统计在小样本推断领域的重要里程碑。
适用场景与核心问题
Fisher精确检验最常见的应用场景是分析2×2列联表,即两个二分类变量(每个变量只有两个水平)构成的四格表。例如:研究某种药物是否与治疗效果相关,将病人分为"服药组/安慰剂组"和"有效/无效"四类。当样本量较小(例如任一格子的期望频数小于5)时,卡方检验的近似效果不佳,此时Fisher精确检验成为首选。该检验也适用于更一般的列联表,但计算复杂度随之大幅上升。
该检验的零假设()为:行变量与列变量之间相互独立,即两个分类变量不存在关联。备择假设()为:两变量之间存在关联。与大多数统计检验一样,研究者根据p值是否小于预先设定的显著性水平(通常为0.05或0.01)做出判断。
超几何分布与精确p值的计算
Fisher精确检验的核心数学基础是超几何分布。对于一个2×2列联表:
| | 成功 | 失败 | 合计 | |-------|------|------|------| | 组A | | | | | 组B | | | | | 合计 | | | |
在行合计和列合计都固定的条件下,表中左上角的值 服从超几何分布。观察到特定 值的概率由下式给出:
Fisher的思想是:在边际合计固定的前提下,所有可能的列联表构成一个概率空间。p值等于在当前数据以及所有更极端(更偏离零假设)的列联表下,对应概率之和。若p值小于显著性水平(通常取0.05),则拒绝零假设,认为两变量存在显著关联。这一逻辑与似然比检验(Likelihood Ratio Test)有相通之处,都是通过比较观测结果与零假设下预期结果的偏离程度来做出推断。
单侧检验与双侧检验
Fisher精确检验既可以做单侧检验(One-tailed test),也可以做双侧检验(Two-tailed test)。
单侧检验的p值计算方式为:将当前表中格子的值记为,将所有小于等于(或大于等于,取决于方向)的表格概率累加。例如,若备择假设是"组A的成功率高于组B",则仅计算的概率。单侧检验统计功效更强,但要求研究者事先明确关联方向。
双侧检验更常见且更保守,其p值定义为:所有概率小于或等于当前表格概率的表格的概率之和。即:
这一方法被称为"概率叠加法",它不要求对称性,适用于任意2×2列联表。双侧检验的p值通常约为单侧检验的两倍,但并非严格如此,因为超几何分布不一定对称。
计算示例
考虑一个经典案例:某新药临床试验中,治疗组5人中有4人痊愈,对照组5人中仅有1人痊愈。列联表如下:
| | 痊愈 | 未愈 | 合计 | |-------|------|------|------| | 治疗组 | 4 | 1 | 5 | | 对照组 | 1 | 4 | 5 | | 合计 | 5 | 5 | 10 |
在边际合计(5, 5, 5, 5)固定的条件下,左上角的可能取值为0到5。当前表格的概率为:
更极端的情况是,其概率为:
因此,单侧检验(治疗组更优方向)的p值为 。若取显著性水平0.05,则不能拒绝零假设,即没有足够证据表明该药物显著有效。这一结果直观反映了小样本下统计检验的局限性——即使效应看起来很大,样本量过小仍可能导致结果不显著。若将样本扩大至每组20人且保持相同比例,结果很可能变为显著。
与卡方检验的比较
Fisher精确检验与卡方检验的核心区别在于方法论。卡方检验基于χ²统计量在大样本下近似服从χ²分布的渐近性质,而Fisher精确检验直接枚举所有可能情况并计算精确概率。当样本量较小时,卡方检验的近似效果差,容易产生第一类错误(错误拒绝零假设)的偏差;Fisher精确检验则无此问题,因此在小样本条件下更为可靠。
然而,Fisher精确检验的主要代价是计算复杂度。对于2×2表,手动计算尚可接受;但对于更大的列联表(如3×3、4×4),枚举所有可能表格的组合数呈指数级增长,早期只能局限于2×2表。随着计算机性能的提升,现代统计软件(如R语言、Python(SciPy)、SPSS等)已能高效地执行Fisher精确检验,甚至推广到列联表,称为Freeman-Halton扩展。此外,蒙特卡洛模拟(Monte Carlo Simulation)方法也被用于近似计算更复杂表格的精确p值。
历史背景
Fisher精确检验最早由Ronald Fisher在其1935年著作《实验设计》(The Design of Experiments)中提出。Fisher以著名的"品茶女士"(Lady Tasting Tea)实验为例阐述了这一方法:一位女士声称能够辨别奶茶是先加茶还是先加牛奶的顺序,Fisher设计了8杯茶(4杯先茶后奶、4杯先奶后茶)来检验她的能力。这一经典案例不仅展示了Fisher精确检验的用法,也奠定了现代随机化实验(Randomized Experiment)的理论基础。
局限性
尽管名为"精确检验",Fisher精确检验也有其局限性。第一,它假定行合计和列合计均为固定值,这一假设在部分研究设计中并不自然,例如观察性研究(Observational Study)中边际合计往往并非事先固定;第二,对于大样本数据,计算量巨大,此时卡方检验是更高效的选择;第三,该方法倾向于保守性(Conservative),即实际的显著性水平往往低于名义水平,这可能导致检验功效(Power)降低;第四,对于2×2列联表,存在更优越的中性无偏检验(如Mid-p检验)可作为替代。
应用领域
Fisher精确检验广泛应用于生物统计学、医学研究、遗传学、社会科学以及自然语言处理等领域。凡是涉及小样本分类数据分析的场景,Fisher精确检验都是不可或缺的标准工具。在生物信息学中,Fisher精确检验常被用于基因表达数据的富集分析(Enrichment Analysis),以判断特定基因集是否在某生物通路中显著富集。在机器学习的特征选择任务中,它也用于评估分类变量与目标变量之间的独立性。