Fisher 精确检验计算器(2×2 四格表)

输入四格表的四个频数,即可得到精确的双侧、单侧 p 值,比值比(OR)及其 95% 置信区间,以及可直接复制的 APA 7 结果句。专为卡方检验不可靠的小样本设计,所有计算都在浏览器内完成。

结果
统计量数值
P 值0.054
Left tail0.995
Right tail0.027
OR4.50
95% CI OR[1.17, 17.37]

APA 报告

Fisher's exact test, p = p = .054, OR = 4.50

有完整研究数据?

上传数据集,一键生成含统计分析、图表与参考文献的论文草稿——免费预览。

生成论文

使用步骤

1. **输入四格表**:直接填 a、b、c、d 四个频数,或粘贴原始数据 / 导入含两个二分类变量的 CSV,由计算器自动交叉汇总。 2. **给行和列命名**(如“治疗组 / 对照组”“有效 / 无效”),这样输出和 APA 结果句才通顺。 3. **查看 p 值**:给出精确双侧 p 值和两个方向的单侧 p 值。只有在看数据之前就确定了方向,才能使用单侧 p 值。 4. **查看比值比 OR** 及其 95% 置信区间。 5. **复制 APA 7 结果句**。

计算在本地浏览器中运行,输入的频数不会发送到任何地方。

Fisher 精确检验是什么,什么时候用

Fisher 精确检验用于判断两个二分类变量是否有关联,例如治疗组和对照组的有效率是否不同。

它和卡方检验不同,不依赖大样本近似。它把行合计和列合计视为固定,用超几何分布精确算出在这些合计下所有可能四格表出现的概率,p 值就是“与观测结果同样极端或更极端”的那些表的概率之和。

适用场景:

  • 数据是 **2×2 四格表**的频数;
  • 样本量**小**,或有**理论频数(期望频数)**小于 5 的格子(这是[卡方检验](/zh/tools/chi-square-calculator)不再可靠的常用判断标准);
  • 罕见事件,如小规模试验中的不良反应。

大样本时 Fisher 精确检验与卡方检验结果接近,此时 Fisher 检验依然有效,只是计算量更大。

适用条件

  • **观测相互独立**:每个对象只计入一个格子。同一批人前后测的配对数据应使用 McNemar 检验。
  • **两个二分类变量**,形成 2×2 的频数表——不能是百分比、均值或率。
  • **边际固定**:检验以行、列合计为条件。实际研究中即使只有一个边际由设计固定,也普遍使用该检验,这会使它略偏保守。

没有最小样本量要求——这正是“精确”检验的意义。

计算公式

四格表记为:

| | 结局是 | 结局否 | 合计 | |---|---|---|---| | 组 1 | a | b | a + b | | 组 2 | c | d | c + d | | 合计 | a + c | b + d | n |

在边际固定时,某一张表出现的概率服从超几何分布:

`P = [ (a+b)! (c+d)! (a+c)! (b+d)! ] / [ a! b! c! d! n! ]`

**单侧 p 值**:观测表及假设方向上更极端的所有表的 P 之和。

**双侧 p 值**:所有概率小于或等于观测表概率的表的 P 之和(R 和 SciPy 使用的标准方法)。

**样本比值比**:`OR = (a · d) / (b · c)`

**95% 置信区间(Woolf 对数法)**:`exp[ ln(OR) ± 1.96 · √(1/a + 1/b + 1/c + 1/d) ]`

若有格子为 0,样本 OR 为 0 或无穷大,对数区间需要校正(常见做法是每格加 0.5)。

计算示例

一项小型预试验中,10 名患者接受新疗法,10 名接受标准疗法:

| | 有效 | 无效 | 合计 | |---|---|---|---| | 新疗法 | 9 | 1 | 10 | | 标准疗法 | 3 | 7 | 10 | | 合计 | 12 | 8 | 20 |

“无效”列两个格子的理论频数为 4,小于 5,因此应使用 Fisher 精确检验。

结果(已用 Python + SciPy 核对):

  • **双侧 p = .020**(0.0198)
  • 单侧 p(新疗法更好)= .0099
  • **比值比 OR = 21.0**,95% CI(Woolf)**[1.78, 248.11]**

新疗法有效的优势(odds)是标准疗法的 21 倍(9:1 对 3:7)。置信区间非常宽,因为只有 20 名患者,且有一个格子只有 1 例:数据既支持中等效应,也支持极大效应。

作为对照,不做连续性校正的 Pearson 卡方检验会得到 χ²(1) = 7.50,p = .006,明显小于精确 p 值,说明这种样本量下卡方近似并不可靠。

注意:R 的 `fisher.test()` 报告的是另一种 OR,即条件最大似然估计(本例为 17.27,精确 95% CI [1.39, 1047.84])。两者都合理,报告时说明用的是哪一种即可。

如何解读结果

  • **p 值**:在“无关联”的原假设下、边际固定时,得到与观测表同样极端或更极端的表的概率。本例 p = .020,在 α = .05 水平下有证据表明两组有效率不同。
  • **双侧与单侧**:默认报告双侧 p。只有事先规定了方向才可用单侧,不能用来“挽救”不显著的双侧结果。
  • **比值比**:OR > 1 表示第一行发生结局的优势更高,OR < 1 表示更低,OR = 1 表示无关联。置信区间不包含 1 与显著结果一致。
  • **置信区间宽度**:小样本时往往很宽,务必报告,让读者看到估计的精确程度。
  • **Fisher 检验偏保守**:p 值是离散跳变的,实际假阳性率通常低于名义 α。

如需相对危险度(RR)或率差,可使用[比值比计算器](/zh/tools/odds-ratio-calculator)。

APA 7 格式报告

写明检验名称、各组频数或百分比、精确 p 值,以及 OR 和置信区间:

> 新疗法组的有效率(10 例中 9 例,90%)高于标准疗法组(10 例中 3 例,30%)。Fisher 精确检验显示两者存在显著关联,*p* = .020(双侧),*OR* = 21.0, 95% CI [1.78, 248.11]。

Fisher 精确检验没有检验统计量和自由度需要报告。请注明 p 值是双侧还是单侧。

如果这张四格表只是你整份数据中的一部分,Data2Paper 的[论文生成](/zh/generate-paper)可以根据 CSV 或 Excel 完成全部分析并写出论文初稿,前半部分免费预览。

常见错误

  • **把“期望频数小于 5”的规则套用到实际频数上**:这个规则针对的是由边际合计算出的理论频数。
  • **输入百分比而不是频数**:检验需要原始计数。
  • **配对数据用 Fisher 检验**:同一批对象的前后比较应使用 McNemar 检验。
  • **看完数据再改用单侧 p**,只为了让 p < .05。
  • **只报 p 值**,不报 OR、各组比例和置信区间。
  • **把比值比说成相对危险度**:结局常见时 OR 可能远大于 RR(本例 RR = 0.9 / 0.3 = 3.0,而 OR = 21.0)。
  • **小样本下把不显著当成“没有效果”**:请看置信区间。

常见问题

相关计算器