如何用SPSS进行Fisher精确检验?详细操作步骤及结果解读
本文详细介绍如何使用SPSS进行Fisher精确检验,包括适用条件、数据准备、SPSS操作步骤、结果解读、论文写法及常见问题,帮助医学、生物学、公共卫生等领域科研人员快速掌握Fisher精确检验的实际应用。
更新于2026年7月28日

Fisher精确检验(Fisher's Exact Test)是医学、生物学、公共卫生、护理学以及社会科学研究中最常用的小样本分类变量统计方法之一。当样本量较小、列联表中部分理论频数过低时,传统的Pearson卡方检验(Pearson Chi-square Test)可能无法得到可靠结果,此时应采用Fisher精确检验。
虽然SPSS提供了Fisher精确检验功能,但许多初学者在实际操作时仍会遇到不少问题,例如不知道在哪里开启Fisher检验、是否需要勾选卡方检验、输出结果应该看哪一个P值,以及如何将结果写入SCI论文。
本文将以IBM SPSS Statistics为例,详细介绍Fisher精确检验的适用条件、SPSS操作步骤、结果解读以及论文写作方法,帮助科研人员快速掌握这一统计分析方法。
什么情况下需要使用Fisher精确检验?
Fisher精确检验主要用于分析两个分类变量之间是否存在统计学关联。
在样本量较大的情况下,通常使用Pearson卡方检验即可完成分析。但卡方检验建立在近似理论基础上,当样本量过小或理论频数不足时,其计算结果可能出现偏差。为了避免这种情况,就需要采用基于精确概率计算的Fisher精确检验。
一般认为,出现以下情况时,应优先选择Fisher精确检验:
- 数据为2×2列联表(Fourfold Table)
- 至少20%的单元格理论频数(Expected Count)小于5
- 任意一个单元格理论频数小于1
- 总样本量较小(通常小于40)
需要说明的是,SPSS在进行交叉表分析时,可以同时计算Pearson卡方检验和Fisher精确检验。因此,即使已经选择了卡方分析,也无需担心,两种结果通常都会一起输出,研究者只需根据数据特点选择合适的统计结果进行报告即可。
下面简单比较两种检验方法。

SPSS进行Fisher精确检验前的数据准备
在开始分析之前,需要先整理数据。
假设研究吸烟与疾病发生是否存在关联,可以建立如下数据:

在SPSS变量视图中建立两个变量:

然后在数据视图(Data View)中逐行录入每位受试者的数据即可。
需要注意的是,Fisher精确检验只能用于分类变量,因此变量测量水平(Measure)应设置为Nominal(名义变量)。
如何用SPSS进行Fisher精确检验?
下面以IBM SPSS Statistics 29为例介绍具体操作步骤,不同版本界面略有差异,但整体流程基本一致。
第一步:打开交叉表分析
点击菜单:
Analyze → Descriptive Statistics → Crosstabs
此时会弹出"Crosstabs"设置窗口。

第二步:设置行变量和列变量
将研究结局变量放入Rows。
例如:
Disease
将影响因素放入Columns。
例如:
Smoking
实际上,两者互换并不会影响P值,仅影响交叉表显示方式,因此按照个人阅读习惯即可。
第三步:勾选Chi-square统计方法
点击右侧Statistics按钮。
勾选:Chi-square

很多初学者误以为这里已经完成了Fisher检验,其实并不是。
Chi-square只是告诉SPSS需要进行列联表统计分析,而真正开启Fisher精确检验,还需要下一步设置。
第四步:开启Fisher精确检验
返回主窗口。
点击右侧:
Exact...
随后会出现Exact Tests窗口。
选择:
Exact
不要选择:
Monte Carlo
然后点击Continue。
这是整个操作过程中最重要的一步。
其中:
- Exact表示采用Fisher精确检验计算精确P值;
- Monte Carlo表示利用随机模拟方法估计P值,通常用于计算量较大的复杂列联表。
对于常见的2×2列联表分析,建议直接选择Exact。
第五步:设置输出内容
点击:
Cells...
建议勾选以下内容:
在Counts中:
- Observed
- Expected
在Percentages中:
- Row
- Column
这样输出结果不仅包含观察频数,还包含理论频数以及百分比,便于后续判断是否满足卡方检验条件。

第六步:运行分析
完成以上设置后,点击OK。
SPSS即可自动输出分析结果。
如何查看SPSS中的Fisher精确检验结果?
SPSS通常会输出多个统计表,但真正需要关注的主要有以下三个。
1. Case Processing Summary

该表主要显示:
- 总样本数
- 有效样本数
- 缺失值数量
一般无需重点解释,仅用于确认数据是否完整。
2. Crosstabulation
交叉列联表展示了各组之间的实际观察频数(Observed Count)和理论频数(Expected Count)。
例如:

如果发现多个单元格的Expected Count小于5,就说明Pearson卡方检验可能不再适用,应重点参考Fisher精确检验结果。
因此,Expected Count也是科研人员最容易忽视、但非常重要的一项指标。
3. Chi-Square Tests

这是整个分析中最重要的一张表。
对于Fisher检验,应重点查看:
Exact Sig. (2-sided)
如果:
P<0.05
说明:
两组分类变量之间存在统计学关联。
如果:
P≥0.05
则认为差异无统计学意义。
一般SCI论文默认报告双侧检验结果。
只有在研究开始之前已经明确提出单侧研究假设时,才考虑报告单侧P值。
Monte Carlo和Exact有什么区别?
不少读者会发现,在SPSS的Exact窗口中除了Exact之外,还有Monte Carlo选项。
两者最大的区别在于计算方式。
Exact采用枚举所有可能结果的方法计算精确概率,因此结果最准确,也是多数科研论文推荐的方法。
而Monte Carlo则利用随机模拟估计P值,当列联表较大、精确计算耗时过长时,可以显著提高计算速度。
对于绝大多数医学、生物学和公共卫生研究中的2×2列联表分析,建议直接选择Exact。
Fisher精确检验结果如何写入论文?
完成统计分析后,还需要将结果规范地写入论文。
下面给出SCI论文中常见的写法。
英文示例
Fisher's exact test demonstrated a statistically significant association between smoking status and disease occurrence (P = 0.031).
中文示例
采用Fisher精确检验分析两组分类变量之间的关系,结果显示吸烟与疾病发生之间存在统计学关联,差异具有统计学意义(P=0.031)。
需要注意的是,Fisher检验反映的是两个分类变量之间是否存在关联,而不能直接说明两者具有因果关系。因此,在论文中应使用“存在统计学关联”“差异具有统计学意义”等表述,而避免写成“吸烟导致疾病”等因果性结论。
常见问题
为什么SPSS中找不到Fisher精确检验?
多数情况下,是因为没有点击Exact...按钮。
还有一种可能是所使用的SPSS版本未包含 IBM SPSS Exact Tests 模块授权。在部分旧版本中,Fisher精确检验属于单独授权功能;而近年来的部分授权方案已将其整合,但具体仍取决于许可证配置。
Fisher精确检验一定比卡方检验好吗?
不是。两种方法各有适用场景。
对于样本量较大且理论频数满足要求的数据,Pearson卡方检验效率更高,也更常用于大样本分析;只有在样本量较小或理论频数不足时,Fisher精确检验才是更合适的选择。
Fisher精确检验只能分析2×2列联表吗?
经典Fisher精确检验主要针对2×2列联表设计,但统计学上也存在适用于更高维列联表(如3×3、4×2等)的扩展Fisher精确检验。不过随着列联表规模增大,计算复杂度会迅速增加,因此SPSS可能需要 IBM SPSS Exact Tests 模块,或采用Monte Carlo方法近似计算。
Fisher检验可以计算效应量吗?
不能。
Fisher精确检验仅用于检验变量之间是否存在统计学关联,并不提供效应量指标。如果需要进一步描述关联强度,可以结合**优势比(Odds Ratio,OR)**及其95%置信区间(95% Confidence Interval,95% CI)进行报告。
总结
Fisher精确检验是处理小样本分类数据的重要统计方法。当2×2列联表中理论频数不足或样本量较小时,应优先采用Fisher精确检验,而不是直接依赖Pearson卡方检验。利用SPSS进行分析并不复杂,只需通过 Analyze → Descriptive Statistics → Crosstabs 建立交叉表,在 Statistics 中勾选 Chi-square,并在 Exact 选项中选择 Exact,即可完成分析。
结果解读时,应重点关注 Exact Sig. (2-sided) 对应的P值,并结合交叉列联表中的理论频数综合判断统计结论。同时,在论文写作中,应规范使用“存在统计学关联”“差异具有统计学意义”等学术表述,避免将统计关联误写为因果关系。
对于科研人员而言,熟练掌握SPSS中的Fisher精确检验,不仅能够提高统计分析的准确性,也有助于提升论文统计方法部分的规范性和可信度。
