跳到主要内容

02 统计直觉:常见的统计学陷阱

组学分析本质上是大规模统计检验。当你同时检验 20000 个基因时,统计学的直觉和单基因实验完全不同。在传统实验中,p < 0.05 是一个合理的显著性标准;但在组学分析中,p < 0.05 意味着你会得到 1000 个假阳性。这一章用 5 个具体场景讲解组学分析中最常踩的统计学坑,帮你建立正确的"大规模检验"直觉。

场景一:无意识的 p-hacking

故事: 小王在做 TCGA-LIHC 的生存分析。他想看基因 X 的表达和预后的关系,于是用中位数把患者分成高表达和低表达两组,画 KM 曲线——p = 0.12,不显著。他想"也许中位数不是最好的 cutoff",于是试了三分位(取上 1/3 vs 下 1/3)——p = 0.08,还是不显著。他又试了 surv_cutpoint(自动找最优 cutoff)——p = 0.02,显著了!他在文章中报告了这个结果。

为什么这是 p-hacking: 小王试了 3 种分组方式,只报告了最显著的那个。每种分组方式都是一次独立的统计检验。试 3 次取最好的,等价于把显著性阈值从 0.05 放宽到了约 0.14(1 - 0.95³ ≈ 0.14)。他报告的 p = 0.02 实际上应该乘以一个校正因子。

p-hacking 在组学分析中的常见形式:

行为本质后果
试多种 cutoff 只报最好的多次检验取最优假阳性率膨胀
去掉"异常"样本直到显著选择性排除结果不可重复
试多种归一化方法选结果最好的分析路径选择过拟合
换不同的基因集数据库直到富集显著多数据库检验假阳性通路
调整 log2FC 阈值直到差异基因数"合理"后验阈值选择结果依赖阈值

如何避免:

  • 在分析之前预定义所有参数选择(cutoff、阈值、排除标准)
  • 如果确实需要探索多种方案,在文章中如实报告所有尝试过的方案
  • 使用 surv_cutpoint 时,必须做 bootstrap 验证确认 cutoff 的稳定性
  • 把探索性分析和验证性分析明确分开

场景二:多重检验的直觉理解

一个思想实验: 假设你有 20000 个基因,它们和肝癌预后完全无关(null hypothesis 全部为真)。你对每个基因做单因素 Cox 回归,用 p < 0.05 筛选。问:你会得到多少个"显著"基因?

答案:20000 × 0.05 = 1000 个。

这 1000 个基因全部是假阳性——它们和预后没有任何真实关联,只是随机波动恰好达到了 p < 0.05。如果你从中挑一个基因写文章,你写的是一个不存在的发现。

多重检验校正的直觉:

三种常用校正方法的核心思想:

Bonferroni(最严格): 把显著性阈值除以检验次数。20000 个基因 → 阈值变成 0.05/20000 = 2.5e-6。只有 p < 2.5e-6 的基因才算显著。优点:几乎不会有假阳性。缺点:太严格,很多真阳性也被漏掉了。

Benjamini-Hochberg / FDR(最常用): 控制的不是"是否有假阳性",而是"假阳性占所有显著结果的比例"。FDR < 0.05 意味着:在你报告的所有显著基因中,预期最多 5% 是假阳性。如果你报告了 200 个显著基因,其中最多 10 个是假的。这是组学分析中最常用的校正方法。

Permutation-based(最灵活): 打乱数据的对应关系(比如打乱生存时间和表达值的配对),重新做分析,看在 null 条件下能得到多少"显著"结果。这个数字就是你的假阳性基线。适用于非标准检验或复杂设计。

什么时候该用哪种:

场景推荐方法理由
DESeq2 差异分析BH (FDR)DESeq2 内置,标准做法
单因素 Cox 筛选BH (FDR)大规模筛选,需要平衡灵敏度和特异度
候选基因验证(<10 个)Bonferroni检验次数少,可以用严格标准
复杂设计的 GSEAPermutation分布未知,用经验分布

场景三:样本量、效应量与统计功效

故事: 两个研究组都在做肝癌中基因 Y 的差异表达分析。

  • 研究组 A:10 tumor vs 10 normal,发现基因 Y log2FC = 2.5,p = 0.08(不显著)
  • 研究组 B:371 tumor vs 50 normal(TCGA-LIHC),发现基因 Y log2FC = 0.3,p = 0.001(显著)

问:哪个结果更有生物学意义?

答案:研究组 A 的结果更有生物学意义,尽管它"不显著"。

log2FC = 2.5 意味着 5.7 倍的表达差异——这是一个巨大的效应,Western Blot 都能看到。它不显著只是因为样本量太小(统计功效不足)。而 log2FC = 0.3 意味着只有 1.23 倍的差异——这在生物学上几乎没有意义,它"显著"只是因为 TCGA 的样本量太大,连微小的差异都能检测到。

核心概念:统计功效(Power)

统计功效 = 在真实效应存在时,你的检验能检测到它的概率。影响功效的三个因素:

  1. 样本量:样本越多,功效越高
  2. 效应量:真实差异越大,越容易检测到
  3. 显著性阈值:阈值越宽松(如 0.1 vs 0.05),功效越高(但假阳性也更多)

在组学分析中的实际意义:

  • 大样本(TCGA, n > 300): 几乎所有微小差异都会显著。需要同时设置效应量阈值(如 |log2FC| > 1)来过滤"统计显著但生物学无意义"的基因。
  • 小样本(n < 20): 只有很大的效应才能被检测到。不显著不代表没有差异,可能只是功效不足。
  • 中等样本(n = 30-100): 最需要仔细解读的区间。建议做 power analysis 估算你的数据能检测到多大的效应。

一个实用的计算:

# 在 TCGA-LIHC (371 tumor vs 50 normal) 中:
# 假设基因的表达标准差 = 1(log2 scale)
# 要检测 log2FC = 0.5 的差异,power ≈ 99%
# 要检测 log2FC = 0.2 的差异,power ≈ 85%
# 要检测 log2FC = 0.1 的差异,power ≈ 45%

# 在小样本 (10 vs 10) 中:
# 要检测 log2FC = 0.5 的差异,power ≈ 25%
# 要检测 log2FC = 1.0 的差异,power ≈ 65%
# 要检测 log2FC = 2.0 的差异,power ≈ 98%

结论:在 TCGA 中,不要只看 p 值,必须同时看 log2FC。在小样本中,不显著不代表没有效应。

场景四:相关性 ≠ 因果性

故事: 你在 TCGA-LIHC 中发现基因 A 和基因 B 的表达高度相关(Pearson r = 0.85, p < 2.2e-16)。你在文章中写道:"基因 A 可能调控基因 B 的表达"。

为什么这个推断是错的: 两个基因表达相关,至少有 5 种可能的解释:

  1. A 调控 B(A → B)
  2. B 调控 A(B → A)
  3. 第三个因子 C 同时调控 A 和 B(C → A, C → B)
  4. A 和 B 在同一种细胞类型中共表达(细胞组成混杂)
  5. A 和 B 在同一个染色体区域,受相同的表观遗传调控

在 bulk RNA-seq 中,第 4 种解释特别常见。如果你的 tumor 样本中免疫细胞浸润程度不同,那么所有免疫细胞 marker 基因之间都会高度相关——不是因为它们互相调控,而是因为它们都在同一种细胞中表达。

在组学分析中"相关≠因果"的常见误区:

观察到的相关常见错误推断更可能的解释
基因 A 和基因 B 共表达A 调控 B被同一个 TF 调控 / 同一细胞类型
突变 X 的样本中基因 Y 高表达X 突变导致 Y 上调X 突变和 Y 高表达都与某个亚型相关
甲基化和表达负相关甲基化沉默了基因低表达基因的启动子容易被甲基化(因果反向)
药物敏感性和基因表达相关该基因是药物靶点该基因是某种细胞状态的 marker

如何正确处理相关性:

  • 在文章中用"associated with"而不是"regulated by"或"caused by"
  • 如果要暗示因果关系,需要额外证据:时间序列数据、扰动实验(knockdown/overexpression)、Mendelian randomization
  • 在 Discussion 中明确说明"our data suggest a correlation but cannot establish causality"

场景五:回归到均值(Regression to the Mean)

故事: 你在 TCGA-LIHC 中筛选出 top 20 个差异最大的基因(log2FC 最极端的),然后在 ICGC-LIRI 中验证。你发现这 20 个基因在 ICGC 中的 log2FC 普遍比 TCGA 中小。你担心"验证失败了"。

为什么这不一定是验证失败: 这是"回归到均值"现象。当你选择极端值时,这些极端值中包含了真实效应 + 随机波动。在新数据中,随机波动的部分会消失,只剩下真实效应——所以效应量看起来"缩小"了。

具体例子: 假设基因 Z 的真实 log2FC = 1.5,但在 TCGA 中由于随机波动被估计为 2.3。你因为它的 FC 大而选中了它。在 ICGC 中,随机波动不同,估计值可能是 1.6——更接近真实值。这不是验证失败,而是估计值回归到了真实值。

在组学分析中的影响:

  • 训练集中 top 基因的效应量在验证集中几乎总是更小——这是正常的
  • 不要因为验证集的 log2FC 比训练集小就认为验证失败
  • 判断验证是否成功的标准是:方向是否一致 + 是否统计显著,而不是效应量是否完全一致

如何正确处理:

  • 在文章中报告训练集和验证集的效应量,承认差异的存在
  • 用 shrinkage 方法(如 DESeq2 的 apeglm)可以减轻这个问题——shrinkage 本质上就是把极端估计值往均值方向"拉"
  • 选择基因时不要只看 FC 大小,要综合考虑 FC + p 值 + 表达水平

建立正确的统计直觉

组学分析中的统计直觉可以总结为几条核心原则:

原则一:检验越多,假阳性越多。 这是多重检验的核心。每次你多做一个检验、多试一个参数、多看一个基因,你的假阳性风险就增加一点。解决方法:做多重检验校正,或者预先确定分析计划。

原则二:显著 ≠ 重要。 p 值只告诉你"这个差异不太可能是随机的",不告诉你"这个差异有多大"或"这个差异有没有生物学意义"。永远同时看 p 值和效应量。

原则三:大样本放大一切。 在 TCGA 这种大样本中,微小的技术噪声、微小的混杂效应、微小的批次差异都可能达到统计显著。大样本不是万能的——它让你更容易发现真信号,但也更容易被假信号误导。

原则四:相关是廉价的,因果是昂贵的。 在 20000 个基因中找到相关性太容易了。任何两个基因只要在同一种细胞类型中表达,就会相关。不要把相关性当成发现。

原则五:极端值会回归。 你选中的"最好"的基因/模型/参数,在新数据中表现几乎总是更差。这不是失败,是统计学规律。

常见坑

  • 只报 p 值不报效应量:审稿人无法判断结果的实际意义。一个 p = 1e-20 但 log2FC = 0.2 的基因,在生物学上可能完全不重要。解决方法:在所有结果中同时报告 p 值(或 FDR)和效应量(log2FC、HR、Cohen's d)。

  • FDR 和 p 值混用:在文本中写"p < 0.05"但实际用的是 FDR 阈值,或者反过来。这会误导读者。解决方法:明确标注"adjusted P-value (BH method) < 0.05"或"FDR < 0.05",不要简写为"p < 0.05"。

  • 小样本做太多检验:10 个样本检验 20000 个基因,统计功效极低,BH 校正后几乎不会有显著结果。然后放弃校正直接用 p < 0.05——这是错误的。解决方法:承认样本量不足的局限性,用更宽松但诚实的方式报告(如"suggestive evidence, p < 0.01 without multiple testing correction")。

  • 把 WGCNA module 当成调控网络:WGCNA 找到的是共表达 module(一起变化的基因),不是调控网络(谁调控谁)。解决方法:在描述 WGCNA 结果时用"co-expressed"而不是"regulated"或"interacting"。

  • 忽略 multiple testing 的隐性形式:你只做了一次正式的差异分析,但之前"看了看"数据、"试了试"不同的过滤标准、"比较了"几种归一化方法——这些都是隐性的多重检验。解决方法:把探索性分析和确认性分析明确分开,在 Methods 中说明分析计划是预先确定的还是数据驱动的。

下一步

接着深入: 统计学告诉你"显著",但生物学常识告诉你"不可能"——这时候该信谁?03 生物学常识 vs 统计显著性 会用 5 个冲突场景训练你在统计和生物学之间做判断。

横向延伸: 如果你想看多重检验校正在实际代码中怎么操作,可以看 05 主线分析 中 DESeq2 差异分析和单因素 Cox 筛选的部分。

参考资源

  • Benjamini Y, Hochberg Y (1995) "Controlling the False Discovery Rate: A Practical and Powerful Approach to Multiple Testing." Journal of the Royal Statistical Society B 57:289-300. BH 方法的原始论文。
  • Nuzzo R (2014) "Statistical errors: P values, the 'gold standard' of statistical validity, are not as reliable as many scientists assume." Nature 506:150-152. 关于 p 值误解的科普文章。
  • Wasserstein RL, Lazar NA (2016) "The ASA Statement on p-Values: Context, Process, and Purpose." The American Statistician 70:129-133. 美国统计学会关于 p 值的官方声明。
  • Button KS et al. (2013) "Power failure: why small sample size undermines the reliability of neuroscience." Nature Reviews Neuroscience 14:365-376. 关于统计功效不足的系统性分析。
  • Altman DG, Bland JM (2015) "Statistics notes: Absence of evidence is not evidence of absence." BMJ 311:485. 关于"不显著≠没有效应"的经典论述。
AI 陪学

让 AI 陪我学这一篇

AI 会读这篇文章后给你 3-5 步学习计划, 逐步陪你学完,最后出 1-3 道题验证你掌握得怎么样。 登录后 AI 才能记住你的进度。

静态文件

离线资料下载

手册 HTML / PDF 已在后台预生成,点击后直接下载网站静态资源。