「显著结果的效应量平均虚高 3.5 倍」:显著性筛选怎样在你完全没造假的情况下制造赢家诅咒
【锚点】这一篇只钉一个判断:显著结果的效应量系统性偏大,不是【发表偏倚】的副产品,是【显著性筛选】本身的数学后果——即使零 p-hacking、零抽屉问题、所有跑过的研究全部发表,只要功效不足,你读到的效应量就是虚高的。
【显式】三条一眼可见的事实。 (1) Open Science Collaboration (2015, N=100):原始研究报告 97% 达到 p<0.05,复现只有 36%;原始平均 r = 0.403,复现平均 r = 0.197,大约打了对折。 (2) 那批复现研究对「原始效应量」的中位功效是 0.92。也就是说:如果原始效应量是真的,复现几乎都该成功。它们没有。 (3) 所以问题不在复现做得差,而在【被复现的那个数字本身,是条件筛选之后的产物】。
【流程节点链路】把真效应 d=0.1 走一遍(两组设计,n=100/组,σ=1,双侧 α=0.05): 起点「真效应 d=0.1」→ 节点「差值标准误 SE=√(2/100)=0.141」→ 节点「非中心参数 μ=0.1/0.141=0.71」→ 节点「临界值 z=1.96」→ 节点「功效=P(Z>1.96−0.71)=0.105」→ 节点「显著条件下的期望 E[z | z>1.96]=0.71+φ(1.25)/(1−Φ(1.25))=2.44」→ 终点「观测 d̂=2.44×0.141=0.345,是真实值的 3.45 倍」。 同一条链路,只换功效: 功效 0.10 → 膨胀 3.5× 功效 0.50 → 1.4× 功效 0.80 → 1.13× 功效 0.95 → 1.03× (Gelman & Carlin 2014 管这个叫 Type M error,M = magnitude;同族的 Type S 是方向错,在 d=0.1 那个例子里约 3.5%。)
【隐式】一步推理:这解释了复现为什么「缩水」却不等于「造假」。原始研究没做错任何事——它们只是通过了 1.96 这道闸门,而闸门是【按噪声大小收费】的:噪声大的估计更容易被筛掉,留下来的自然全是运气好的那一侧。
【细微】两处要跨段比对才看得见的细节。 (1) 预注册 + 全部发表修的是【发表偏倚】,修不了这个。即使你把所有跑过的研究都登出来,读者仍然只去读显著的那些——筛选发生在读者端,不在期刊端。 (2) Type M 是【条件期望之比】,不是「每个显著结果都虚高 3.5 倍」。它是分布的平均:单个研究可能虚高 10 倍,也可能几乎贴着真值。所以别拿它去指控某一篇具体论文,它描述的是文献整体。
【极难发现】最深的一层:用文献里的显著效应量做功效分析,是循环论证。 你查到 d=0.4(显著),按 80% 功效算出每组 n≈99;如果真效应是 0.4/1.4≈0.29,这 99 人给的实际功效只有 0.53。你用一个被筛选膨胀过的数字,去规划一个本应抵抗筛选的实验——下一轮的显著结果只会更膨胀。这个自举回路是元科学里最难拆的债务之一。
【可操作】三条。 - 功效分析别用已发表的显著 d,用【最小感兴趣效应】(SESOI),或者把文献 d 除以 1.5–2 再算。 - 报告效应量时同时给 CI,并且把 CI 和零一起画。forest plot 比 p 值更能让筛选的痕迹现形:原始研究与复现研究并排,点估计系统性右移,这就是 Type M 的可视化。 - 文献综述里写「这篇的效应量可能虚高」,而不是只写「有显著效应」。
【值得辩论的问题】如果低功效领域的显著效应量系统性虚高,而我们又几乎不可能在小样本领域做高功效研究,那么「效应量大小」还能不能作为政策与实践的依据?我的立场是:能,但必须报告【这个效应量在什么筛选条件下被观测到】——不写功效的效应量,和没有暴露时间的被引次数一样,是不可比的读数。







0 Comments