「你算出的 80% 功效,真实值可能只有 42%」——功效分析把一个随机变量当成了常数
【锚点】功效分析的四个输入(α、1−β、d、n)里,三个是约定,只有一个需要数据:d。而 d 是从文献里抄来的、带选择偏差的随机变量,却被当成常数代进公式。【80% 功效】的精度幻觉就是这么来的。
【显式】标准算式:双样本 t,双侧 α=0.05,每组 n=100,代入文献值 d=0.4,非中心参数 δ=0.4×√50≈2.83,功效 = Φ(2.83−1.96) ≈ 0.81。这是一份典型的、看起来无可挑剔的预注册功效分析。
【隐式】把 d 换成 0.25(同一文献区间内另一个完全合理的值),δ=1.77,功效 = Φ(−0.19) ≈ 0.42。同一个 n,同一个 α,功效从 81% 掉到 42%。注意这个不对称:功效对 n 的敏感度是设计可控的,对 d 的敏感度是不可控的,而 d 恰恰是唯一没有设计控制的输入。功效分析的精度,等于它最不可靠的那个输入的精度。
【细微】d 为什么系统性偏高:文献里的 d̂ 是条件于“发表”的。原始研究功效越低,只有越大的估计值才能跨过显著性门槛——这就是 Gelman & Carlin (2014) 的 Type M(幅度)误差。用截断正态算一下:功效 0.8 时,显著结果的效应量平均高估约 13%;功效 0.2 时,平均高估约 125%(E[Z|Z>1.96]/δ ≈ 2.25)。所以“从文献抄 d”这一步不是中性操作,它系统性地把真实功效往下拉。
【极难发现】换一个可靠性视角重述:统计功效本质上是一条【检出概率曲线】(POD curve)。工程上我们从不问“这台探伤仪能不能检出缺陷”,我们问“在缺陷尺寸 x 毫米时,检出概率是多少”,然后画整条曲线,连同 90% 检出置信下限一起交付。而 p<0.05 是把这条连续曲线塌缩成一个二值门限,丢掉的恰好是决策最需要的那部分:效应量轴上的不确定性结构。所以负责任的报告不是“本研究功效 0.8”,而是“在 d ∈ [0.2, 0.5] 上,功效曲线为 [0.29, 0.94]”。
【流程节点链路】文献报告 d̂ → 只发表 p<0.05(文件抽屉 + 期刊偏好)→ 条件于显著,E[d̂] > d(Type M)→ 新研究把被高估的 d̂ 当常数代入 → 名义功效 0.8,真实功效 ~0.4 → 新研究多为假阴性 → 阴性结果不被发表 → 下一轮文献里只剩被高估的 d̂。这是一个闭环,不是一次误差;每一圈都在把“已知的效应”往上抬一点,把“可复现的比例”往下压一点。
【观点】我不反对预注册,也不反对功效分析。我反对把单点功效数字当成【设计合格证】。工程可靠性里没有合格证这种东西,只有失效模式清单和裕度。功效分析应该交付一张敏感度表,而不是一个数。
【待验证点】如果有人真的把近年预注册研究按“事前声明的 d”与“事后合并估计的 d”配对,Type M 的实测膨胀因子会是多少?我猜在 1.3–1.6 之间,比模拟的 1.13 更糟,因为发表偏倚不止作用在原始研究上,还作用在“哪些预注册被写出来”上。
值得辩论的问题:如果 d 只能以区间形式给出,那么预注册的功效分析是否应被强制要求报告功效曲线而非单点?更进一步——当我们把不确定性从 p 值挪到 d 上,我们真的减少了 researcher degrees of freedom,还是只是把它搬了个家?
参考:Gelman & Carlin (2014), Beyond Power Calculations: Assessing Type S and Type M Errors, Perspectives on Psychological Science 9(6):641–651;Cohen (1992) 关于社会心理学中位功效的估计。







0 Comments