统计自救指南4: 统计功效——别让你的实验"有眼无珠

· 14 min read · Tutorials

统计自救指南4: 统计功效——别让你的实验"有眼无珠

统计自救指南4: 统计功效——别让你的实验"有眼无珠"

如果审稿人这么问你,你有信心回答好吗?

"请问作者的研究有足够的统计功效(statistical power)来检测预期的效应吗?"

什么是统计功效?为什么审稿人要问这个?更重要的是——你的阴性结果到底能不能证明"真的没差异"?统计功效至关重要,但常被忽视。  当功效低时,重要的效应可能检测不到;而在有多个条件和结果的实验中(如组学研究),大量的"显著结果"可能是错的。让我们通过Nature Methods的这篇经典文献来理解统计功效的重要性。

编者注 :统计功效就是"当差异真实存在时,你的实验能够成功检测到它的概率"。功效不足的研究,就像拿着放大镜去找显微镜才能看到的东西——即使目标就在那里,你也看不见。

功效不足:科研中的隐形危机

Nature Methods的综述揭示了一个严峻的事实:

  • 医学研究中 :只有36%的阴性结果研究能够在80%的时间里检测到50%的相对差异
  • 神经科学领域 :研究的中位统计功效只有0.2——意味着80%的真实效应会被漏掉
  • 组学研究 :因为需要在极低显著性水平下检验以控制假阳性,功效问题尤其严重

实验设计的财政限制,加上普遍缺乏统计严谨性,导致许多功效不足的研究报告了虚假的假阳性和假阴性效应。  当研究者愿意追求低概率假设以求突破性发现时,低功效的后果尤其严重。

图1 | 功效不足时,大多数"显著发现"可能是假的。  (a) 两组实验:50%和10%的假设对应真实效应(蓝色),其余为零假设(绿色)。(b) 在α=0.05下,不同功效水平的推断结果分布。阳性预测值(PPV)表示阳性结果中真阳性的比例,它随真实效应比例降低而急剧下降。

编者注 :这张图展示了一个残酷的现实。在第一组实验中,我们乐观地假设50%的假设有真实效应。如果功效是0.2(神经科学研究的中位数水平),那么80%的真阳性结果会被漏掉,20%的阳性结果是错的(阳性预测值PPV = 0.80)。

更糟糕的是第二组:当只有10%的假设对应真实效应(组学研究的常见情况)时,在0.2的功效水平下,超过三分之二的阳性结果是错的(PPV = 0.31)!即使在常规可接受的最低功效0.8下,仍有超过三分之一的阳性结果是错的(PPV = 0.64)。

为什么会这样?  虽然我们检测到了更大比例的真实效应(10个中有8个),但我们也声称了更大绝对数量的假阳性(90个零假设中有4.5个)。

功效不足的研究是对科研资源的浪费,当受试者暴露于潜在有害或劣质的实验条件时,这在伦理上也是有问题的。  解决这一缺陷是优先事项——Nature出版集团的统计和方法检查清单第一个问题就是:"如何选择样本量以确保有足够的功效来检测预先指定的效应量?"

推断错误和统计功效

让我们回到一个具体例子:测量蛋白的表达水平 x ,与假定的参考水平μ₀进行比较。我们建立了零假设分布H₀的概念,如果 x 超过某个临界值x*,就认为它在统计上显著大于参考值(图2a)。如果观察到这样的值,我们拒绝H₀作为候选模型。

图2 | 推断错误与统计功效。  (a) 假设观测值来自零假设分布(H₀),均值为μ₀。我们对大于x 的值拒绝H₀,错误率为α(红色区域)。(b) 备择假设(H_A)是具有不同均值μ_A的竞争场景。从H_A抽样但小于x 的值不会触发拒绝H₀,这种情况以β的速率发生。功效(敏感性)是1-β(蓝色区域)。(c) 推断错误与x*的关系。

第一类错误:假阳性(α)

因为H₀延伸到x之外,所以有可能错误地拒绝H₀,概率为α(图2a)。这是*第一类错误(type I error) ,对应于假阳性——即推断存在效应但实际上没有。

在良好的实验设计中,α被控制并设置得很低,传统上α = 0.05,以保持高特异性(specificity, 1-α) ,即正确推断不存在效应的机会。

通俗理解 :α就是"误报率"——本来风平浪静,却拉响警报的概率。这就像冤假错案,明明没有差异,你却判断"有差异"。

第二类错误:假阴性(β)与统计功效

假设 x  > x*,导致我们拒绝H₀。我们可能发现了一些有趣的东西。如果 x 不是从H₀中抽取的,它来自什么分布?我们可以假设一个备择假设(alternative hypothesis) ,它描述观测值的备择分布H_A。

例如,如果我们预期表达值增加20%,H_A将与H₀形状相同,但均值为μ_A = 12而不是μ₀ = 10(图2b)。直观地,如果这两个分布的均值相似,我们预期更难可靠地区分它们。

从H_A抽样但小于x的值不会触发拒绝H₀,这种情况以β的速率发生。这是*第二类错误(type II error) ,对应于假阴性——明明有差异,却判断"没差异"。

统计功效(power,敏感性,sensitivity)  定义为:如果数据来自H_A,恰当地拒绝H₀的机会,即:

功效 = 1 - β

它从H₀拒绝区域中H_A的面积计算(图2b中的蓝色区域)。

通俗理解 :β是"漏检率",就像罪犯逃脱了法网。统计功效就是"破案率"——当效应真实存在时,你能发现它的概率。

效应量:信号强度的度量

分布之间的差异通常用它们均值之差以标准差σ为单位来表示。这个度量称为效应量(effect size) :

其中:

  • μ_A = 备择假设的均值
  • μ₀ = 零假设的均值
  • σ = 标准差

编者注 :效应量就是"信号强度"或"信号噪音比"。真实差异相对于噪音有多大,就越容易检测到。效应量越大,两个分布重叠越少,越容易区分。

有时效应量与样本量结合为非中心参数 d√n 。

α和β的两难困境

检验理想情况下应该既特异(低假阳性率α)  又敏感(低假阴性率β,高功效)。但α和β率呈反向关系:降低α会增加β并降低功效(图2c)。

想象你在调节一个检测仪器的灵敏度:

  • 调得太敏感  → 误报增多(α↑)但漏检减少(β↓,功效↑)
  • 调得太迟钝  → 误报减少(α↓)但漏检增多(β↑,功效↓)

通常α < β,因为假阳性推断的后果(在极端情况下是撤稿)比假阴性推断(错过发表机会)更严重。但α和β之间的平衡取决于目标:如果假阳性要经过另一轮检验但假阴性被丢弃,β应该保持较低。

特异性和功效之间的权衡

让我们回到蛋白表达的例子,看看这两种错误的大小如何相关。如果我们设α = 0.05并假设正态H₀且σ = 1,那么当 x  > 11.64时我们拒绝H₀(图3a)。如果μ_A = 12,H_A超出这个截止区域的部分是功效,为0.64。

这意味着什么?  即使真的有20%的表达增加,我们也只能在64%的情况下检测到它——有36%的概率会漏掉这个真实效应!

我们可以通过降低特异性来增加功效。将α增加到0.12会将截止值降低到 x  > 11.17,功效现在是0.80。这25%的功效增加是有代价的:我们现在做出假阳性声称的可能性增加了一倍多(α = 0.12 vs. 0.05)。

图3 | 降低特异性会增加功效。  假设H₀和H_A为正态分布,σ=1,μ₀=10,μ_A=12。(a) 当α=0.05时,x*=11.64,功效=0.64。降低特异性使α=0.12时,x*=11.17,功效提升至0.80,但假阳性风险翻倍。(b) 特异性和功效作为x*函数的关系。空心圆对应a中的两个场景。

图3b显示了我们单次表达测量的α和功效之间的关系,作为H₀拒绝截止值x 的函数。功效曲线的S形反映了x 之外H_A下面积的变化率。α和功效之间的紧密耦合表明,对于μ_A = 12,在α ≤ 0.05时我们能达到的最高功效是0.64。

问题来了:如何在不损害α(增加假阳性)的情况下提高我们检测到来自H_A的表达增加的机会(增加功效)?

样本量的影响:最直接的武器

如果图3a中的分布更窄,它们的重叠会减少,x*截止值之外的H_A部分会更大,功效会提高。我们对σ无能为力,尽管我们可以尝试通过减少测量误差来降低它。然而,更直接的方法是进行多次采样。

现在,我们不使用单个表达值,而是使用来自样本的平均表达值x̄来构建零假设和备择分布。样本均值的散布(标准误)为:

图4 | 样本量(n)和效应量(d)对功效的影响。  假设H₀和H_A为正态分布,σ=1。(a) 增加n会按1/√n的比例减少样本平均值分布的散布。显示了μ₀=10、μ_A=11(d=1)和α=0.05时n=1、3和7的场景。右图:d=1时四个不同α值下功效作为n的函数。圆圈对应三个场景。(b) 功效随d增加,使检测更大的效应更容易。分布显示n=3和α=0.05时效应量d=1、1.5和2(对应μ_A=11、11.5、12)。右图:n=3时四个不同α值下功效作为d的函数。

图4a显示了使用H₀和H_A下样本均值的分布时样本量对功效的影响。随着n增加,H₀拒绝截止值与标准误成比例地降低,减少了分布之间的重叠。

样本量的效果(μ₀=10,μ_A=11,即10%增加,d=1,α=0.05):

样本量n 统计功效 解读
1 0.26 基本没用
3 0.53 和抛硬币差不多
7 0.84 勉强达标

在我们的例子中,样本量对功效有实质性影响。  如果我们平均7次测量(n = 7),我们能够在84%的时间里检测到10%的表达水平增加(μ_A = 11, d = 1),α = 0.05。

通过改变n,我们可以为给定的效应量d达到期望的功效和α组合。例如:

  • 对于d = 1,α = 0.05,要达到功效0.80,需要n ≈ 17
  • 对于d = 1,α = 0.01,要达到功效0.99,需要n = 22

重要提醒 :这里的n指生物学重复 ,不是技术重复!

  • ✅ 7只独立的小鼠
  • ❌ 同一只小鼠测7次

效应量的影响

增加功效的另一种方法是增加我们想要可靠检测的效应的大小。我们可能能够通过更极端的实验处理来诱导更大的效应量。  随着d增加,功效也增加,因为两个分布之间的重叠减少(图4b)。

效应量的效果(μ₀=10,n=3,α=0.05):

效应量d μ_A 实际含义 统计功效
1.0 11 表达提高10% 0.53
1.5 11.5 表达提高15% 0.83
2.0 12 表达提高20% 0.97

这些计算是理想化的,因为假设H₀和H_A的确切形状是已知的。在实践中,因为我们从样本估计总体σ,功效会降低,我们需要稍大的样本量来达到期望的功效。

重要提醒 :效应量越大,越容易检测。但记住:统计显著 ≠ 生物学重要 。一个很小但统计显著的效应可能没有生物学意义;一个很大但不显著的效应可能因为样本量不足而被漏掉。

平衡样本量、效应量和功效

平衡样本量、效应量和功效对于良好的研究设计至关重要。  标准流程如下:

第一步:设定统计标准

  • 第一类错误 : α = 0.05(传统标准)
  • 功效 : 1-β = 0.80(最低可接受水平)

这些是传统值,在特殊情况下可以调整,但需要充分理由。

第二步:确定最小感兴趣效应量

根据我们希望测量的最小效应确定效应量d。这需要回答:

  • 多大的差异才有生物学意义?
  • 基于文献或预实验,预期的效应量是多少?
  • 总体标准差σ大约是多少?

第三步:计算所需样本量

使用功效分析确定n。可以使用R语言:

# R语言示例:双样本t检验
library(pwr)
pwr.t.test(d = 1.0,           # 效应量
           sig.level = 0.05,   # α水平
           power = 0.80,       # 期望功效
           type = "two.sample", # 双样本检验
           alternative = "two.sided")
# 结果:每组需要n = 17

第四步:可行性评估

如果所需样本量太大,我们可能需要:

  • 重新评估研究目标
  • 更严格地控制实验条件以减少方差(降低σ)
  • 选择检测更大的效应(增加预期的d)
  • 接受更低的功效(但要明确说明这个限制)
  • 或者:暂缓研究,寻求合作扩大样本

切记 :样本量严重不足的研究,不如不做。功效不足的研究既浪费资源,又可能产生误导性结果。

当功效低时,只能检测到大的效应,阴性结果无法可靠解释。确保样本量足够大以检测感兴趣的效应是研究设计的重要组成部分。

常见误区

误区1:"P<0.05很多,功效应该没问题"

错误!  显著的P值不等于功效充足。可能的原因:

  • 效应量特别大(容易检测)
  • 样本量特别大
  • 或者只是运气好(5%的假阳性)

功效是事前 的概念,描述你能够 检测到效应的概率;P值是事后 的概念,描述观察到的数据。

误区2:"预实验不显著,说明没效应"

错误!  预实验通常样本量很小,功效不足。不显著可能只是因为检测不到。

正确做法 : 用预实验估算效应量和标准差,然后计算正式实验需要的样本量。

误区3:"事后功效分析"补救阴性结果

问题很大!  功效分析应该在实验设计阶段 完成,而非事后补救。事后功效分析(observed power)基于观察到的效应量,存在循环论证的问题,不被推荐。

误区4:"技术重复可以替代生物学重复"

错误!  对同一个样本重复测量3次(技术重复)不能替代测3个独立样本(生物学重复)。技术重复只能降低测量误差,不能增加推广能力。

报告规范对比

❌ 不规范的写法

"我们比较了对照组(n=3)和处理组(n=3),发现150个基因显著差异(P<0.05)。其余基因没有显著差异。"

问题 :

  • 没说明样本量如何确定
  • n=3通常功效不足
  • 没报告效应量
  • "没有显著差异"在功效不足时不可信

✅ 规范的写法

"基于预实验数据(观察到的效应量d≈1.2,标准差σ≈0.8),我们通过功效分析(α=0.05,power=0.80,双侧检验)确定每组需要至少6个生物学重复。实际纳入对照组6例和处理组6例。

采用DESeq2进行差异分析,使用Benjamini-Hochberg方法控制假发现率(FDR<0.05)。鉴定到523个差异表达基因(平均|log2FC|=1.8),其中312个基因的|log2FC|>1。

对于未达到显著性阈值的基因,在当前样本量下(每组n=6),我们的研究具有80%的功效检测log2FC≥1(对应d≈1.2)的差异。更小的效应可能因功效不足而未被检测到。"

总结

记住这些核心要点:

1. 功效的定义与重要性

统计功效 = 当效应真实存在时,能够正确检测到它的概率 = 1 - β

  • 功效不足→假阴性泛滥(漏掉真实效应)
  • 功效不足+多重检验→假阳性泛滥(很多"发现"是假的)

2. 三个关键因素

影响功效的三个因素:

  • 效应量d : 信号强度(真实差异相对于噪音)
  • 样本量n : 最直接可控的因素
  • 显著性水平α : 通常固定为0.05,不轻易改变

3. 两类错误的权衡

  • 第一类错误(α,假阳性) : 特异性 = 1-α
  • 第二类错误(β,假阴性) : 功效 = 1-β
  • 降低α会降低功效,需要增加n来平衡

4. 实践原则

  • 样本量计算不是可选项 ——应在实验设计阶段完成
  • 阴性结果只有在功效充足时才可信
  • 生物学重复 ≠ 技术重复
  • 功效分析是事前规划,不是事后补救

5. Nature的要求

Nature出版集团统计检查清单的第一个问题 就是:"如何选择样本量以确保有足够的功效来检测预先指定的效应量?"——这不是巧合,而是对科研质量的基本要求。

最后的建议 : 功效不足的研究不仅浪费资源和受试者,还可能产生误导性结果,在伦理上也是有问题的。从下一个实验开始,让功效分析成为你的标准流程。不要等到审稿人质疑才想起来——那时候已经晚了。

统计功效是研究设计的基石。别让你的实验"有眼无珠"。

参考文献

Krzywinski, M. & Altman, N. Power and sample size. Nat. Methods10 , 1139–1140 (2013).

Statistics R Bioinformatics