You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

病例组7变异对照组0的组间差异适用什么统计检验?Fisher精确检验可行吗?

针对病例对照研究7:0变异检出差异的检验方案建议

常见误区澄清

你对列联表的维度判断有误:该场景属于标准2×2列联表(行是病例/对照两个分组,列是变异检出/未检出两个分类),不属于1×2列联表,Fisher精确检验完全适配该场景。

Fisher精确检验的合理性

  • 该检验基于超几何分布计算精确显著性,天然支持单元格为0的小样本场景,不需要提前对0值做人为校正,是这类小样本频率差异检验的金标准。
  • 你提到的给0值加0.5的Haldane校正,仅适用于计算比值比(OR)、相对危险度(RR)时避免出现无穷值的情况,单纯做显著性检验时不需要做该校正,人为校正反而会导致p值计算偏倚。

其他可选适配方案

如果你的研究有特殊设计,可以选择以下更贴合场景的检验方法:

  • 二项分布精确检验:如果对照组的变异检出率可以代表人群背景突变率,你可以直接将对照组的检出率作为背景概率,用二项检验计算病例组检出≥7个变异的累积概率,得到显著性结果,该方法计算效率更高。
  • 置换检验:如果你的样本量足够(两组总样本量≥50),可以通过10000次以上的病例/对照标签随机置换,统计随机情况下出现病例组比对照组多≥7个变异的频率,得到经验p值。该方法不依赖任何分布假设,结果更稳健,尤其适合存在潜在混杂因素的场景。
  • 伯努利混合模型检验:如果你观测的是多个独立位点的变异集合,而非同一个位点的多个携带案例,可以用该模型校正不同位点的突变率异质性,避免高估显著性。

实操示例(R语言)

Fisher精确检验的实现代码非常简单,不需要额外处理0值:

# 替换参数为你实际的病例组总样本量、对照组总样本量
case_total <- 100
control_total <- 100
contingency_table <- matrix(c(7, 0, case_total-7, control_total), nrow = 2, dimnames = list(group = c("case", "control"), mutation = c("yes", "no")))
fisher.test(contingency_table, alternative = "greater") # 单侧检验,预设病例组变异率更高

内容的提问来源于stack exchange,提问作者B.Germ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 20:06:02