「p<0.05 的发现有一半是错的」——这个数字本身,也在犯它指控的那个错
【锚点】这一篇只钉一个判断:一个 p 值能提供多少证据,不由 p 值决定,由【这个领域的先验赔率】决定。所以「显著」不是可携带的货币;跨文献搬运它,就是在做一次伪换算。
【显式】三条可查证的事实: 1. Ioannidis 2005(PLoS Medicine,《Why Most Published Research Findings Are False》)给出的不是一句口号,而是一张表:在 α=0.05 固定不变的前提下,阳性预测值 PPV 随先验赔率 R 和检验力 (1−β) 变化,从 0.001 到 0.94,跨了三个数量级。 2. 换算只有一行:PPV = (1−β)R / [(1−β)R + α(1−R)],R 是「研究开始前该假设为真的赔率」。 3. 被到处引用的「一半」,来自一个特定格子:R=1:10、检验力 0.5。1000 个假设里 100 个为真、抓到 50 个;900 个为假、假阳性 45 个。50/(50+45)=0.53。
【流程节点链路】起点【领域先验赔率 R】→ 中间节点【为真假设数 = 1000R】→ 中间节点【真阳性 = 1000R(1−β)】→ 中间节点【假阳性 = 1000(1−R)α】→ 终点【PPV = 真阳性/(真阳性+假阳性)】。
同一套算术,只换 R 和检验力,α 一次都没动:
| 场景 | R | 检验力 | 显著结果里为真的比例 |
|---|---|---|---|
| 大样本 RCT,有强理论先验 | 1:1 | 0.8 | 0.94 |
| 常规流行病学 | 1:10 | 0.8 | 0.64 |
| 小样本、探索性 | 1:10 | 0.5 | 0.53 |
| 高通量筛选 | 1:100 | 0.5 | 0.09 |
| 小样本 + 灵活设计 + 多团队抢发 | 1:1000 | 0.2 | <0.01 |
变的只有一件事:这个领域在问的问题,事先有多大可能为真。
【隐式】由此得到一条对科学记者最有用的操作规则:读到「新研究显示 X 与 Y 相关」,第一个该问的不是样本量,是【这个领域此前对 X–Y 关系有多少独立证据】。同一个 p=0.03,出现在一个已被三次独立重复的效应上,和出现在一个从 200 个候选里筛出来的效应上,证据重量差两个数量级。这也是为什么「复制危机」在不同领域严重程度差那么多——不是统计水平差,是先验赔率差。
【细微】「一半是错的」这个流行版本,本身漏掉了它自己的前提。它把 R=1:10、检验力 0.5 这个格子当成普遍常数,然后像引用一个物理常数一样引用它。原文给的是区间,不是点估计;把区间读成点估计,恰好是他所诊断的那种错误——忽略「这个数字在什么条件下成立」。更麻烦的是「false」的定义要求原假设精确为真(效应恰好等于 0)。现实中几乎不存在恰好为 0 的效应,所以更可辩护的说法不是【方向错了】,而是【方向对了但幅度被系统性放大】——Gelman & Carlin 的 Type M 误差:低功效研究里,跨过显著线的效应量系统性偏大,功效 0.2 时偏差可达数倍。
【极难发现】真正反直觉的一层在这里:PPV 框架假设每个假设被独立检验一次。但真实文献不是独立抽签,是【一个有记忆的生态】——同一批数据被反复切分、同一批作者反复挖同一个队列、同一个显著结果被反复引用却很少被重复检验。一旦检验之间相关,「有效假设数」就远小于论文数;而「有效假阳性数」也不是 α×N,因为 p-hacking 把 α 变成了内生变量。结论:PPV 的算术是对的,但它的两个输入(R 和 α)在真实文献里都不可观测。所以它是一个【诊断工具】,不是一个【估计量】。把它当估计量用,就是又一次把区间读成点。
【值得辩论的问题】如果「显著」不可携带,那科学新闻里「新研究显示……」这个句式的正确替代是什么?我的候选是把它换成一条带先验的句子:「这与此前 N 项独立研究一致/冲突」——把读者该知道的赔率写进第一句。但这要求记者为每条新闻配一段文献先验,而这正是编辑最不愿付的成本。这值得吗,还是说它只是把同行评审的负担又转嫁了一次?







0 Comments