Fisher精确检验

来自决策链云智库
Fisher's Exact Test.png
节点状态
Windows / Windows 10 Win10及以上可用
V1.0部署
Fisher精确检验Fisher's Exact Test.svg
节点开发者决策链算法研发部 (Dev.Team-DPS)
节点英文名Fisher's Exact Test
功能主类别数据分析
英文缩写FETest
功能亚类别频数表检验
节点类型数据挖掘
开发语言R
节点简介

费舍尔精确检验是用于分析列联表(contingency tables)统计显著性检验方法,它用于检验两个分类的关联。分类需要是两分类,组成四格表,检验独立性。实际中常常使用于小数据情况。

用途:用于研究两个分类变量之间关系的统计方法。特别是在样本量较小或者数据分布不均匀时,Fisher精确检验比传统的卡方检验更为精确。

参数:选择二分类变量

端口数量与逻辑控制(PC)
Input-入口4个
Output-出口3个
Loop-支持循环
If/Switch-支持逻辑判断
输入输出
可生成图片类型(推荐)
可生成数据表类型(推荐)
相关节点
上一节点游程检验
下一节点卡方检验



费舍尔精确检验(Fisher's exact test)是用于分析列联表(contingency tables)的一种统计显著性检验[1][2][3]。尽管实际应用中多用于样本量较小的情况,但它对于所有样本量均有效。这一检验以其发明者罗纳德·费舍尔(Ronald Fisher)命名,属于精确检验的一类,所谓精确检验,是因为与零假设(null hypothesis)偏离的显著性(例如,[math]p[/math]-值)可以精确计算,而非依赖于当样本量增大至无限大时才精确的近似值,正如许多统计检验所做的那样。

据说费舍尔在听到默里尔·布里斯托尔(Muriel Bristol)的一番评论后设计了这一检验。布里斯托尔声称她能够分辨出茶和牛奶哪个先被加入她的杯子中。费舍尔通过“品茶女士”实验(lady tasting tea)来测试她的说法[4]

目的和范围

文件:Nice Cup of Tea.jpg
一个茶壶、一个奶油罐和一杯加了牛奶的茶——品鉴者能分辨出牛奶是不是先加的吗?

这一检验适用于将对象以两种不同方式分类所得到的分类数据;用于检查两种分类方式之间的关联(或称连带关系)的显著性。因此,在费舍尔最初的示例中,一个分类标准可能是牛奶或茶哪个先加入杯中;另一个可能是布里斯托尔认为是牛奶还是茶先加入的。我们想要知道这两种分类方式是否相关——也就是说,布里斯托尔是否真的能分辨出牛奶或茶哪个先倒入。费舍尔检验的大多数应用,就像这个例子一样,涉及一个2 × 2的列联表(下文将讨论)。从该检验得出的[math]p[/math]-值是在假设表格边际固定的情况下计算的,即在品茶示例中,布里斯托尔知道每种处理(先加牛奶或茶)的杯数,因此会提供每个类别中正确数量的猜测。费舍尔指出,这在独立性的零假设下导致表格单元中的数字遵循超几何分布(hypergeometric distribution)。

在大样本情况下,可以使用卡方检验(chi-squared test)(或更好的G检验(G-test))来处理这种情况。然而,它提供的显著性值只是一个近似值,因为计算出来的检验统计量的抽样分布仅近似等于理论上的卡方分布。当样本量小或数据在表格单元中的分布非常不均时,这种近似是不准确的,导致基于零假设预测的单元计数(即“预期值”)偏低。判断卡方近似是否足够好的通常规则是,当列联表中任何一个单元的预期值低于5,或在只有一个自由度(degrees of freedom)时低于10时,卡方检验不适用(现在已知这一规则过于保守[5])。事实上,对于小型、稀疏或不平衡的数据,精确和渐近[math]p[/math]-值可能会有很大不同,可能导致关于感兴趣假设的相反结论。[6][7] 相比之下,只要实验程序保持行列总数固定,费舍尔精确检验就是精确的,因此可以无论样本特性如何都可以使用。对于大样本或平衡良好的表格,费舍尔精确检验的计算变得困难,但幸运的是,这正是卡方检验适用的条件。

在手工计算中,这种检验只在2 × 2列联表的情况下是可行的。然而,这种检验的原则可以扩展到一般的m × n列联表的情况,[8][9],并且一些statistical packages提供了计算(有时使用Monte Carlo method来获得近似值)更普遍的情况。[10]

这个检验也可以用来量化两组数据之间的重叠。例如,在统计遗传学的富集分析中,一组基因可能被注释为特定的表型,用户可能对测试自己的基因组与这些基因组的重叠感兴趣。在这种情况下,可以生成一个2 × 2列联表,并通过识别以下内容应用Fisher精确检验:

  1. 同时在两个列表中提供的基因
  2. 只在第一个列表中而不在第二个列表中提供的基因
  3. 只在第二个列表中而不在第一个列表中提供的基因
  4. 没有在任何列表中提供的基因

这个检验假设列表中的基因来自更广泛的基因集合(例如,所有剩余的基因)。然后可以计算出一个p值,总结两个列表之间重叠的显著性。[11]

推导

[12]

   Class I      Class II   行总计
蓝色 a b a + b
  红色   c d c + d
列总计 a + c b + d a + b + c + d (=n)


我们建立了Fisher精确检验的以下概率模型。

假设我们有[math]a+b[/math]个蓝色球和[math]c+d[/math]个红色球。我们将它们一起扔进一个黑色的箱子里,摇晃均匀,然后一个一个地取出,直到我们刚好取出了[math]a+c[/math]个球。我们称这些球为“第一类”,剩下的[math]b+d[/math]个球为“第二类”。

问题是计算恰好有[math]a[/math]个蓝色球在第一类中的概率。一旦我们填写了表格中的一个条目,表格中的其他所有条目就固定了。

假设我们假装每个球都有标签,在我们开始取球之前,我们将它们均匀随机地排列,然后取出前[math]a+c[/math]个球。这给了我们[math]n![/math]种可能性。

在这些可能性中,我们以第一[math]a+c[/math]个球恰好包含[math]a[/math]个蓝色球的情况为条件。为了计算这些可能性,我们按以下步骤进行:首先在第一类[math]a+c[/math]个球中,均匀随机地选择一个大小为[math]a[/math]的子集,有[math]\binom{a+c}{a}[/math]种可能性,然后在第二类[math]b+d[/math]个球中,均匀随机地选择一个大小为[math]b[/math]的子集,有[math]\binom{b+d}{b}[/math]种可能性。

这两个选定的集合将被填满蓝色球。其余的将被填满红色球。

一旦我们选择了这些集合,我们可以用任意顺序填充[math]a+b[/math]个蓝色球。这给了我们[math](a+b)![/math]种可能性。红色球同样,有[math](c+d)![/math]种可能性。

总体来说,我们有[math]\binom{a+c}{a}\binom{b+d}{b}(a+b)!(c+d)![/math]种可能性。

因此,这一事件的概率是[math]\frac{\binom{a+c}{a}\binom{b+d}{b}(a+b)!(c+d)!}{n!}=\frac{\binom{a+c}{a}\binom{b+d}{b}}{\binom{n}{a+b}}[/math]


另一种推导方式:


假设每个蓝色和红色的球都有相同且独立的概率[math]p[/math]属于类别I,以及[math]1-p[/math]属于类别II。那么类别I的蓝色球的数量呈二项分布。恰好有[math]a[/math]个蓝色类别I球的概率是[math]\binom{a+b}{a}p^a[/math],而恰好有[math]c[/math]个红色类别I球的概率是[math]\binom{c+d}{c}p^c[/math]。

恰好有[math]a+c[/math]个类别I球(不论红蓝球的数量)的概率是[math]\binom{n}{a+c}p^{a+c}[/math]。

因此,在有[math]a+c[/math]个类别I球的条件下,得到如下表格的条件概率是[math]\frac{\binom{a+c}{a}\binom{b+d}{b}}{\binom{n}{a+b}}[/math]


例子

例如,一群青少年可能根据性别分为男性和女性,另一方面根据他们是否正在为统计学考试学习进行分类。例如,我们假设学习的学生比例在女性中高于男性,我们想测试我们观察到的比例差异是否显著。

数据可能看起来是这样的:

   男性      女性   行总计
学习中 1 9 10
  未学习   11 3 14
列总计 12 12 24

我们对这些数据提出的问题是:知道这24名青少年中有10人在学习,其中12人是女性,并假设男性和女性学习的可能性相等,那么这10名学生如此不均匀地分布在女性和男性之间的概率是多少?如果我们随机选择10名青少年,那么其中9人或更多在12名女性中,而12名男性中只有1人或更少的概率是多少?

第一个例子

在进行费舍尔检验之前,我们首先引入一些符号。我们用字母a, b, cd 表示单元格,称行和列的总计为边际总计,并用n表示总计。所以现在的表格看起来是这样的:

   男性      女性   行总计
学习中 a b a + b
  非学习中   c d c + d
列总计 a + c b + d a + b + c + d (=n)

费舍尔指出,基于表格边际的条件下,a的分布呈现hypergeometric distribution,从a+b个成功和c+d个失败的总体中抽取a+c次。获得这样一组值的概率由下式给出:

[math]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!}[/math]

其中 [math] \tbinom nk [/math] 是binomial coefficient,符号 ! 表示阶乘运算符。 这可以这样理解。如果边际总计(即 [math]a+b[/math]、[math]c+d[/math]、[math]a+c[/math] 和 [math]b+d[/math])是已知的,那么只剩下一个自由度:例如 [math]a[/math] 的值足以推导出其他值。 现在,[math]p=p(a)[/math] 是在从包含总共 [math]n[/math] 个元素的更大集合中随机选择(无替换) [math]a+c[/math] 个元素时,[math]a[/math] 个元素为正的概率,其中 [math]a+b[/math] 是正的,这正是超几何分布的定义。

根据上述数据(使用等价形式之一),得到:

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

第二个例子

上述公式给出了在给定边际总计的条件下,观察到这种特定数据排列的确切超几何概率,假设null hypothesis男性和女性成为学习者的可能性相同。换句话说,如果我们假设男性成为学习者的概率是 [math]\mathfrak{p}[/math],女性也是 [math]\mathfrak{p}[/math],并且我们假设男性和女性无论是否为学习者都独立进入我们的样本,那么这个超几何公式就给出了在观察到的边际(即,假设表格边际显示的行和列总计是给定的)条件下观察到四个单元格中的a, b, c, d值的条件概率。即使男性和女性进入我们样本的概率不同,这仍然成立。唯一的要求是两个分类特征——性别和是否为学习者——没有关联。

例如,假设我们已知概率 [math]P, Q, \mathfrak{p,q}[/math],且有 [math]P + Q = \mathfrak{p} + \mathfrak{q} = 1[/math],使得(男性学习者、男性非学习者、女性学习者、女性非学习者)在我们的抽样程序下分别具有概率 [math](P\mathfrak{p}, P\mathfrak{q}, Q\mathfrak{p}, Q\mathfrak{q})[/math]。那么,即使我们计算了条件给定边际的单元格条目分布,我们也会得到上述公式,其中既不包含 [math]\mathfrak{p}[/math] 也不包含 [math]P[/math]。因此,我们可以计算24名青少年按照表格的四个单元格的任何排列的确切概率,但费希尔表明,为了生成显著性水平,我们只需要考虑边际总数与观察表中相同的情况,在这些情况中,只有排列与观察到的排列一样极端或更极端的情况。(Barnard's test 放松了对其中一组边际总数的限制。)在这个例子中,有11种这样的情况。其中只有一种在与我们数据相同的方向上更极端;它看起来像这样:

   男性      女性   行总计
学习 0 10 10
  非学习   12 2 14
列总计 12 12 24

对于这个表格(学习比例极不平衡),概率是 [math]{p = {\tbinom{10}{0}} {\tbinom{14}{12}} }/{ {\tbinom{24}{12}} } \approx 0.000033652[/math]。

p值检验

为了计算观察到的数据的显著性,即如果null hypothesis为真时观察到的数据为极端或更极端的总概率,我们必须计算这些表格的p值,并将它们相加。这给出了一个one-tailed testp值约为 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-值)。这个值可以解释为由观察数据提供的证据总和——或任何更极端的表格——支持null hypothesis(男性和女性学习者比例没有差异)。p值越小,拒绝零假设的证据越大;因此这里证据强烈表明男性和女性成为学习者的可能性并不相同。

对于two-tailed test,我们还必须考虑那些同样极端但方向相反的表格。不幸的是,根据表格是否“同样极端”进行分类存在问题。R中的fisher.test函数使用的方法是计算观察表格的概率小于或等于的所有表格的概率总和来计算p-值。在这个例子中,双边p-值是单边值的两倍——但通常对于计数较小的表格,这两者可能相差很大,不像具有对称采样分布的测试统计量的情况。

争议

尽管费希尔检验给出了精确的p-值,但一些作者认为它是保守的,即实际拒绝率低于名义显著性水平。[13][14][15] 表面上的矛盾源于离散统计量与固定显著性水平的结合。[16][17] 为了更精确,考虑以下提议的5%水平的显著性检验:拒绝费希尔检验分配给p-值等于或小于5%的每个表格的零假设。因为所有表格的集合是离散的,可能不存在一个表格能够实现等式的精确成立。如果[math]\alpha_e[/math]是小于5%的最大的p-值,并且对某个表格来说实际可能发生,那么所提出的测试实际上就是在[math]\alpha_e[/math]水平上进行测试。对于小样本量,[math]\alpha_e[/math]可能明显低于5%。[13][14][15] 虽然这种效应会在任何离散统计量(不仅仅是在列联表中,或是费舍尔检验中)中出现,但有人认为这个问题因为费舍尔检验条件依赖于边际值而加剧了。[18] 为了避免这个问题,许多作者不鼓励在处理离散问题时使用固定的显著性水平。[16][17]

关于是否基于表格的边际值条件也是有争议的。[19][20] 从费舍尔检验得出的p-值来自于基于边际总数条件的分布。在这个意义上,这个检验只对条件分布是精确的,而不是对原始表格,其中边际总数可能会因实验而变化。当边际值不固定时,可以为2×2表格获得一个精确的p-值。例如,Barnard的检验允许边际值随机。然而,一些作者[16][17][20](包括后来的Barnard本人)[16]基于这个特性批评了Barnard的检验。他们认为边际成功总数是一个(几乎[17]ancillary statistic,几乎不包含关于被测试属性的信息。

从2×2表格中对边际成功率的条件化可以被显示为忽略了数据中关于未知赔率比的一些信息。[21] 边际总数几乎是辅助的这一论点意味着,对这个赔率比的推理应该基于对边际成功率的条件概率函数。[21] 这种丢失的信息对于推理目的是否重要是这一争议的本质。[21]

替代方法

已经发展了一个替代的精确检验,Barnard的检验,并且支持者[22] 建议这种方法更为强大,特别是在2×2表格中。[23] 此外,Boschloo's test是一个构造上比费舍尔精确检验更有力的精确检验。[24]

大多数现代statistical packages将计算费舍尔检验的显著性,在某些情况下,即使卡方近似也是可接受的。统计软件包执行的实际计算通常会与上述描述不同,因为阶乘的大数值可能导致数值困难。一个简单、稍微更好的计算方法依赖于gamma function或对数伽玛函数,但对超几何和二项概率进行精确计算的方法仍是一个活跃的研究领域。

对于分层分类数据,必须使用Cochran–Mantel–Haenszel test而不是费舍尔检验。

Choi等人[21]提出了一个基于条件分布的odds ratio的似然比检验得出的p-值。这个p-值在推理上与经典的正态分布数据测试以及基于这种条件似然函数的似然比和支持区间一致。它也容易计算。<ref name="Choi2011">Choi, Leena (2011). "ProfileLikelihood: profile likelihood for a parameter in commonly used statistical models; 2011. R package version 1.1". {{cite web}}: Missing or empty |url= (help)

节点使用的R语言示例代码

Fisher精确检验

fisher.test(x, y = NULL, workspace = 200000, hybrid = FALSE,
            hybridPars = c(expect = 5, percent = 80, Emin = 1),
            control = list(), or = 1, alternative = "two.sided",
            conf.int = TRUE, conf.level = 0.95)

节点使用指南

  • 用于检验两个分类变量之间是否独立的统计显著性检验。
  • 用于样本量较小或数据分布不均匀的情况,尤其当任何期望频数小于5时
  • 通常用于2x2列联表(contingency table)

方法选择

  • 无方法选择

参数配置

  • 统计变量1:选择二分类变量
  • 统计变量2:选择一个或多个二分类变量,每个变量将与变量1做一次Fisher精确检验
  • 置信区间百分比:输入百分比,95%置信区间就是0.95
  • 检验方向: 双侧检验和单侧检验。单侧检验又分为左侧检验和右侧检验
  • 筛选阈值:选择需要的P值阈值,节点会自动将满足阈值的变量筛选出,数据集也会同步筛选出满足的变量。
  • 统计变量1和统计变量2要规避复用
  • 此算法兼容空值

注意事项

  • 两个分析的变量必须是二分类

引用

  1. Fisher, R. A. (1922). "On the interpretation of χ2 from contingency tables, and the calculation of P". Journal of the Royal Statistical Society. 85 (1): 87–94. doi:10.2307/2340521. JSTOR 2340521.
  2. Fisher, R.A. (1954). Statistical Methods for Research Workers. Oliver and Boyd. ISBN 0-05-002170-2.
  3. Agresti, Alan (1992). "A Survey of Exact Inference for Contingency Tables". Statistical Science. 7 (1): 131–153. CiteSeerX 10.1.1.296.874. doi:10.1214/ss/1177011454. JSTOR 2246001.
  4. Fisher, Sir Ronald A. (1956) [[[The Design of Experiments]] (1935)]. "Mathematics of a Lady Tasting Tea". In James Roy Newman (ed.). The World of Mathematics, volume 3. Courier Dover Publications. ISBN 978-0-486-41151-4.
  5. Larntz, Kinley (1978). "Small-sample comparisons of exact levels for chi-squared goodness-of-fit statistics". Journal of the American Statistical Association. 73 (362): 253–263. doi:10.2307/2286650. JSTOR 2286650.
  6. Mehta, Cyrus R; Patel, Nitin R; Tsiatis, Anastasios A (1984). "Exact significance testing to establish treatment equivalence with ordered categorical data". Biometrics. 40 (3): 819–825. doi:10.2307/2530927. JSTOR 2530927. PMID 6518249.
  7. Mehta, C. R. 1995. SPSS 6.1 Exact test for Windows. Englewood Cliffs, NJ: Prentice Hall.
  8. Mehta C.R.; Patel N.R. (1983). "A Network Algorithm for Performing Fisher's Exact Test in r Xc Contingency Tables". Journal of the American Statistical Association. 78 (382): 427–434. doi:10.2307/2288652. JSTOR 2288652.
  9. [mathworld.wolfram.com] 提供了Fisher精确检验一般形式公式的页面,用于m × n列联表
  10. Cyrus R. Mehta; Nitin R. Patel (1986). "ALGORITHM 643: FEXACT: a FORTRAN subroutine for Fisher's exact test on unordered r×c contingency tables". ACM Trans. Math. Softw. 12 (2): 154–161. doi:10.1145/6497.214326. S2CID 207666979.
  11. Mi, Huaiyu; Muruganujan, Anushya; Casagrande, John T.; Thomas, Paul D. (2013). "Large-scale gene function analysis with the PANTHER classification system". Nature Protocols. 8 (8): 1551–1566. doi:10.1038/nprot.2013.092. PMC 6519453. PMID 23868073.
  12. STAT 226: Lecture 7, Section 2.6, Fisher’s Exact Tests. Yibi Huang, University of Chicago
  13. 13.0 13.1 Liddell, Douglas (1976). "Practical tests of 2×2 contingency tables". The Statistician. 25 (4): 295–304. doi:10.2307/2988087. JSTOR 2988087.
  14. 14.0 14.1 Berkson, Joseph (1978). "In dispraise of the exact test". Journal of Statistical Planning and Inference. 2: 27–42. doi:10.1016/0378-3758(78)90019-8.
  15. 15.0 15.1 D'Agostino, R. B.; Chase, W. & Belanger, A. (1988). "The appropriateness of some common procedures for testing equality of two independent binomial proportions". The American Statistician. 42 (3): 198–202. doi:10.2307/2685002. JSTOR 2685002.
  16. 16.0 16.1 16.2 16.3 Yates, F. (1984). "Tests of significance for 2 × 2 contingency tables (with discussion)". Journal of the Royal Statistical Society, Series A. 147 (3): 426–463. doi:10.2307/2981577. JSTOR 2981577. S2CID 15760519.
  17. 17.0 17.1 17.2 17.3 Little, Roderick J. A. (1989). "Testing the equality of two independent binomial proportions". The American Statistician. 43 (4): 283–288. doi:10.2307/2685390. JSTOR 2685390.
  18. Mehta, Cyrus R.; Senchaudhuri, Pralay (4 September 2003). "Conditional versus unconditional exact tests for comparing two binomials". {{cite web}}: |access-date= requires |url= (help); Missing or empty |url= (help)
  19. Barnard, G.A. (1945). "A new test for 2×2 tables". Nature. 156 (3954): 177. Bibcode:1945Natur.156..177B. doi:10.1038/156177a0.
  20. 20.0 20.1 Fisher (1945). "A New Test for 2 × 2 Tables". Nature. 156 (3961): 388. Bibcode:1945Natur.156..388F. doi:10.1038/156388a0. S2CID 4113420.; Barnard, G.A. (1945). "A new test for 2×2 tables". Nature. 156 (3974): 783–784. Bibcode:1945Natur.156..783B. doi:10.1038/156783b0. S2CID 4099311.
  21. 21.0 21.1 21.2 21.3 Choi L, Blume JD, Dupont WD (2015). "Elucidating the foundations of statistical inference with 2×2 tables". PLOS ONE. 10 (4): e0121263. Bibcode:2015PLoSO..1021263C. doi:10.1371/journal.pone.0121263. PMC 4388855. PMID 25849515.
  22. Lydersen, S., Fagerland, M. W., and Laake, P. (2009). "Recommended tests for association in 2× 2 tables". Statistics in Medicine. 28 (7): 1159–1175. doi:10.1002/sim.3531. PMID 19170020. S2CID 3900997.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  23. Berger R.L. (1994). "Power comparison of exact unconditional tests for comparing two binomial proportions". Institute of Statistics Mimeo Series No. 2266: 1–19.
  24. Boschloo R.D. (1970). "Raised Conditional Level of Significance for the 2x2-table when Testing the Equality of Two Probabilities". Statistica Neerlandica. 24: 1–35. doi:10.1111/j.1467-9574.1970.tb00104.x.

查找其他类别的节点,请参考以下列表