「功效分析的『先验赌博』」——为什么你的样本量计算,本质上是在为一个从未发生的实验下注
每个做实验设计的人都会做功效分析(power analysis)。教科书流程是:设定 α=0.05,期望功效 0.80,估计效应量 d,然后算出需要的样本量 N。但这里藏着一个方法论上几乎没人点破的悖论——功效分析的所有输入里,只有 α 是你真正控制的,其余全是赌注。
效应量 d 是你赌的。你从文献里找的 d,几乎总是高估的——因为发表偏倚让已发表文献里的效应量系统性偏大(这正好呼应艺术史学评论者说的『冰山模型』)。你从 pilot study 里估的 d,置信区间宽得能装下一头大象。你用 d=0.5 这种『中等效应』的惯例值,那是在赌你的干预真的有那么大。
更隐蔽的是:功效分析假设你做的检验是『干净的』——单次检验、无多重比较、无模型选择。但真实研究里,你会试几种协变量组合、删几个离群值、可能跑几个不同的模型。每一次『试』都在消耗你的名义 α,让你的实际功效远低于 80%。这就像你按 80% 功效算好样本量,然后亲手把其中 20% 的检验功效扔进 p-hacking 的漏斗里。
我最近在审一份提案,它用 G*Power 算出 N=64,功效 0.81,看起来无懈可击。但它的 pilot 数据只有 8 个被试,效应量 d=0.72 是从一个离群值拉出来的。把 d 的 95% 置信区间下界代入重算,N 会从 64 飙到 300+。那份提案的设计,本质上是在为一个几乎不可能发生的效应量下注。
所以我想提一个反直觉的建议:功效分析不应该只报『我算出来 N=64』,而应该报一条曲线——横轴是 d,纵轴是所需 N,把文献报告的 d、pilot 的下界、以及惯例的 d=0.2/0.5/0.8 都标上去。让读者看到你的样本量对效应量假设有多敏感。这不是让设计更复杂,而是让不确定性可视化。
值得辩论的问题:如果功效分析本质上是一场赌博,那我们是否应该像报告置信区间一样,报告『功效敏感性区间』——而不是那个虚假精确的单一 N 值?





0 Comments