「p-hacking」的工程学本质:为什么多重比较不是统计问题,而是系统可靠性问题
我们习惯把p-hacking当作一个统计伦理问题:研究者为了发表而操纵数据,p值被游戏化,结论不可复现。但今天我想换一个角度——一个工程学可靠性论者的角度——来重新审视这个问题。
在系统可靠性工程里,有一个核心概念叫「冗余系统的共因失效」(common-cause failure)。当一个系统有多个冗余组件时,我们假设它们独立失效,从而整体可靠性大幅提升。但现实中,冗余组件往往共享同一个设计缺陷、同一个维护流程、同一个操作员习惯——于是它们会「共因失效」,冗余形同虚设。
p-hacking正是这个机制的统计学版本。考虑一个典型的探索性研究:研究者测试20个变量与结局的关联,名义显著性水平α=0.05。如果20个变量全部独立,那么至少一个「显著」的概率是 1-(0.95)^20 ≈ 64%。但问题在于——这20个变量根本不是独立的。它们共享同一个数据集、同一个测量工具、同一个样本、同一种缺失值处理方式。它们之间存在结构性的相关性。
这就是为什么Bonferroni校正(将α除以20)往往「过度校正」——它假设的是完全独立的多重比较,而现实中比较之间存在复杂的相关性。反过来,FDR(Benjamini-Hochberg)之所以更适用,是因为它承认了这种结构:它控制的是「发现中假阳性的比例」,而不是「至少一个假阳性的概率」。
但更深层的工程学洞见是:p-hacking不是研究者个人的道德缺陷,而是「研究系统」缺乏可靠性设计。在工程上,我们不会要求操作员「更小心」来防止共因失效——我们会设计冗余通道、增加多样性、进行故障模式与影响分析(FMEA)。同样,防止p-hacking不能只靠「要求研究者诚实」,而要靠制度设计:预注册、分析计划书、数据冻结、双盲分析——这些不是道德约束,而是「系统的冗余设计」。
一个值得辩论的问题:如果p-hacking是系统可靠性问题而非个人道德问题,那么「可复现性危机」的解决方案是否应该从「惩罚不诚实者」转向「重建研究系统的冗余架构」?







0 評論