FDR / FWER
多重比较:FDR 与 FWER
检验多个假设会增加假阳性的机会。校正方法会改变判定显著性的阈值。比较方法时既要看错误控制,也要看检出真实效应的能力。
为何多重检验需要校正
若有 20 个相互独立且真实成立的零假设,α = 0.05,则至少出现一个假阳性的概率为 1 − (1 − 0.05)²⁰ ≈ 64%。假阳性的期望数量为 20 × 0.05 = 1。两者是不同的量:一个是概率,一个是数量。
什么是错误发现率?
FDR = E[V / max(R, 1)],其中 V 是错误发现数,R 是发现总数。在方法假设成立时,5% 的 FDR 目标控制的是重复实验中该比例的平均值。这并不表示每个显著结果为假的概率都是 5%。
FWER 有什么不同?
FWER = P(V ≥ 1):在一组检验中至少出现一次错误发现的概率。Bonferroni 和 Holm 控制 FWER;Benjamini–Hochberg 控制 FDR。控制 FWER 也会为 FDR 提供上界,但往往会检出更少的真实效应。
实例:Bonferroni 与 BH
取五个排序后的 p 值:0.001、0.008、0.039、0.041、0.300,且 α = q = 0.05。Bonferroni 使用 0.05 / 5 = 0.01,拒绝前两个零假设。BH 按秩比较 0.01、0.02、0.03、0.04、0.05。满足条件的最大秩为 2,因此 BH 也拒绝前两个。若最后一个 p 值改为 0.045,BH 会拒绝全部五个:应采用满足条件的最大秩,而不是第一个未通过的秩。
比较全部 11 种校正方法
未校正
当 p < α 时拒绝各零假设。不控制检验族层面的错误率。可作为观察假阳性如何累积的基线。
Bonferroni
当 p < α/m 时,Bonferroni 拒绝零假设。对于有效的 p 值,它在任意依赖结构下都能控制 FWER,但检验很多时可能遗漏真实效应。
Holm
将 p 值从小到大排序。将秩 r 与 α/(m−r+1) 比较,并在首次未通过时停止。Holm 在任意依赖结构下控制 FWER,且至少拒绝 Bonferroni 拒绝的全部零假设。
Šidák
使用单一阈值 1−(1−α)^(1/m)。Šidák 在检验相互独立时控制 FWER,比 Bonferroni 略不保守。
Holm–Šidák
按 Holm 的逐步递减逻辑使用阈值 1−(1−α)^(1/(m−r+1))。本模拟采用独立检验;不要假设该方法适用于任意依赖结构。
Hochberg
找到满足 p(r) ≤ α/(m−r+1) 的最大秩 r,并拒绝截至 r 的所有零假设。Hochberg 在独立性或适当的正依赖条件下控制 FWER。
Hommel
Hommel 使用基于 Simes 检验的闭合检验程序。它在独立性或支持 Simes 不等式的条件下控制 FWER,功效至少与 Hochberg 一样高,但计算成本更大。
Benjamini–Hochberg
找到满足 p(r) ≤ (r/m)q 的最大秩 r,然后拒绝截至 r 的所有零假设。Benjamini–Hochberg 在检验独立或满足特定正依赖条件(PRDS)时控制 FDR。
Benjamini–Yekutieli
使用 BH,但将 q 除以 Hm = Σ(1/k),k = 1…m。Benjamini–Yekutieli 在任意依赖结构下控制 FDR,通常以降低功效为代价。
Storey 式方法(探索性)
此简化的探索性变体根据大于 0.5 的 p 值所占比例估计 π₀,然后以 q/π̂₀ 运行 BH。它并非完整的 q 值实现,也不提供普遍适用的有限样本 FDR 保证。
自适应 BH(探索性)
此探索性双轮变体先以 q 运行 BH,将 m₀ 估计为 max(1, m−R₁),再以 q·m/m̂₀ 运行 BH。它不是 BKY 程序,也不声称具备该程序的有限样本保证。
常见问题
这是用于我自己的 p 值的 FDR 计算器吗?
这是教学模拟器,不是上传 p 值的计算器。它生成已知真实情况的实验,让你观察错误发现和遗漏的效应;仅凭真实数据通常无法知道这些情况。
q 值为 0.05 能保证只有 5% 的假阳性吗?
不能。目标 q = 0.05 指在程序假设成立时,发现结果中错误发现比例的期望值。单次实验的错误发现比例可能更高或更低。
应该选择哪种校正方法?
先确定研究设计需要控制哪类错误。FWER 方法限制一组检验中出现任何错误发现的风险;FDR 方法控制发现结果中错误发现比例的平均值。请检查依赖性假设,并在查看结果前定义假设族。