统计功效(statistical power)是指当备择假设为真时,检验能够正确拒绝零假设的概率,通常表示为 1 减去第二类错误概率 β。显著性水平 α 控制的是零假设为真时误拒的概率,而功效则是检验对真实效应的敏感程度。样本量不足会直接影响检验统计量的标准误,使置信区间变宽、p 值波动增大,最终导致即便存在实质性效应也无法获得统计显著的结果。因此,理解功效与显著性的关系,是设计研究和解释结果的基础。

一、样本量如何影响统计功效与显著性
在常见的两组均值比较中,检验统计量通常可以写成效应量除以标准误的形式。样本量 n 增大时,标准误会按平方根关系缩小,检验统计量随之增大,p 值相应降低,功效自然提高。举例来说,假设两组均值差为 5,合并标准差为 10,每组样本量为 20 时,t 值约为 1.58,p 值大约在 0.12 附近,无法拒绝零假设;而如果每组样本量增加到 100,t 值会变成约 3.54,p 值会降至 0.001 以下。同样的效应量,因为样本量不同,结论可能完全相反。
这说明 p 值本身并不直接量化效应大小,它只是反映了当前样本量下证据的强度。样本量不足时,真实效应容易被噪声掩盖,研究者可能错误地得出无差异的结论。与此同时,功效也不是越高越好,过大的样本量会使微小的、实际无意义的差异也变得统计显著。因此,在设计阶段就需要评估效应量、样本量和功效之间的关系,而不是等数据收集结束后再补救。
效应量 d 是均值差与标准差的比值,它把效应从测量单位中独立出来。Cohen 曾给出 d 为 0.2、0.5 和 0.8 分别对应小、中、大效应的参考标准,但这些只是经验值,具体领域和研究问题中可接受的效应量往往不同。理解样本量、效应量与功效的三角关系,是避免研究设计失败的关键。
二、先验功效分析:在数据收集前确定最小样本量
先验功效分析的作用是在实验开始之前,根据预期效应量、显著性水平和目标功效,计算需要多少样本。通常目标功效会设定为 0.8,显著性水平设定为 0.05,这意味着如果真实效应确实存在,研究有 80% 的机会检测到它。如果样本量达不到要求,研究从设计上就存在功效不足的风险。
下面的 Python 代码使用 statsmodels 库进行独立样本 t 检验的功效分析,给定效应量 0.5、显著性水平 0.05、目标功效 0.8,计算每组所需的最小样本量。
from statsmodels.stats.power import TTestIndPower
analysis = TTestIndPower()
n_per_group = analysis.solve_power(
effect_size=0.5,
alpha=0.05,
power=0.8,
alternative='two-sided'
)
print('每组至少需要样本量:', round(n_per_group))
运行结果会显示每组大约需要 64 个观测值。如果预期效应量更小,比如 d 为 0.3,所需样本量会大幅上升。这也解释了为什么很多小规模研究无法得到显著结果:它们在一开始就没有足够的功效来检测预期效应。
效应量的估计可以来自已有文献、前导实验或理论判断,但必须警惕发表偏差,因为已发表研究中显著的效应量往往被高估。若拿高估的效应量去计算样本量,实际需要的数据量会被低估,研究仍可能功效不足。更稳妥的做法是结合多个来源,采用保守的效应量估计,并在分析时报告相应的不确定性。
三、样本量已经固定时的补救策略
现实中样本量往往受经费、时间或伦理限制,无法无限增加。此时可以从减少误差方差入手来提升功效。误差方差越小,效应量 d 就越大,同样的样本量下检验统计量也会更大。提高测量工具的信度、标准化操作流程、对同一对象进行多次测量取平均,都是降低误差方差的有效手段。下面的代码展示了当测量改进使标准差从 10 降至 7 时,相同均值差下的效应量变化。
mean_diff = 5
sd_before = 10
sd_after = 7
d_before = mean_diff / sd_before
d_after = mean_diff / sd_after
print('改进前效应量:', d_before)
print('改进后效应量:', d_after)
另一种策略是在分析中引入协变量或采用重复测量设计。协变量可以解释结果变量中的部分变异,从而降低残差方差。例如在比较教学效果的实验中,如果把学生的前测成绩作为协变量,组间比较的精度会明显提高。重复测量设计则利用同一受试者在不同条件下的相关性,减少个体差异带来的噪声,这在心理学和医学研究中尤其常见。
调整显著性水平或改用单侧检验也能改变功效,但必须谨慎。将 α 从 0.05 提高到 0.10 会增加功效,但同时也会提高第一类错误率,可能被质疑为放宽标准。单侧检验只有在有充分先验理由认为效应只会朝一个方向时才能使用,否则容易被视作变相提高显著性的手段。更稳健的做法是采用贝叶斯分析,报告效应的后验分布和可信区间,而不是单纯依赖一个二元的显著性判断。
如果数据已经收集完毕且无法补充,还可以考虑与已有研究进行元分析,或者在预注册的前提下使用序贯分析。但序贯分析必须在数据收集前规划好停止规则,不能边看数据边决定是否继续。数据窥探和多重比较会严重破坏显著性检验的可靠性,是样本量不足时最容易犯的错误。
四、解读不显著结果时容易踩的坑
样本量不足时,p 值高于 0.05 只能说明现有证据不足以拒绝零假设,并不能证明零假设为真。把不显著解读为无效应,是功效不足研究中最常见的误解。一个效应可能真实存在,只是因为样本量太小而没有被检测出来。此时更合适的表述是:在当前的样本量和变异性条件下,没有足够证据支持该效应存在。
反过来,如果功效不足的研究意外得到了显著结果,反而需要警惕赢家诅咒。由于显著结果更容易被发表,这些研究报告的效应量往往会高于真实效应,后续重复实验时效应量会缩水甚至消失。因此,报告效应量的置信区间比单纯报告 p 值更有价值,置信区间能够直观展示估计的不确定性。
事后功效分析也经常被误用。用观察到的效应量去计算当前研究的功效,本质上只是 p 值的一种转换,并不能提供额外信息。真正有用的做法是在研究开始前进行先验功效分析,并在结果报告时呈现置信区间和效应量估计,而不是在数据出来之后用事后功效来辩解不显著的原因。
总的来说,样本量不足的核心问题不是无法计算显著性,而是检验缺乏足够的效力去发现真实效应。解决思路应当前移:在设计阶段通过先验功效分析确定合理样本量,在执行阶段尽量降低误差方差,在分析阶段避免数据窥探,在解读阶段结合效应量和置信区间而非只看 p 值。只有把功效和显著性放在同一个框架中考虑,才能避免统计推断被样本量不足所左右。