做实验前"要收多少样本"这个问题,绝大多数人要么拍脑袋(比如"30 个左右"),要么靠经验估(同行以前做多少我就多少)。但其实样本量应该是从统计功效的角度系统计算出来的。
四个相互制约的量
样本量计算本质是一个四变量方程,已知其中三个就能求第四个:
| 符号 | 含义 | 典型取值 |
|---|---|---|
| α | 第一类错误(假阳性)概率 | 0.05(或 0.01) |
| β | 第二类错误(假阴性)概率 | 0.2(或 0.1) |
| 1 − β | 统计功效(正确检出真实差异的概率) | 0.8(或 0.9) |
| d | 效应量(差异大小) | 小 0.2 · 中 0.5 · 大 0.8 |
| n | 样本量 | 要求的值 |
两组均值比较的经验公式
对于两独立样本 t 检验,α = 0.05、Power = 0.8 时的每组样本量可粗估为:
n ≈ 16 / d²
其中 d 是 Cohen's d(两组均值差 / 合并标准差)。直观对应表:
| 效应量 d | 每组 n | 含义 |
|---|---|---|
| 0.2(小) | 400 | 差异微弱,需大样本才能发现 |
| 0.5(中) | 64 | 中等差异,一般研究目标 |
| 0.8(大) | 25 | 明显差异 |
| 1.2 | 12 | 非常大的差异 |
实际流程
- 先确定效应量 d:根据专业领域的小型预实验、文献 meta 分析、或你认为"值得关心"的最小差异
- 选定 Power:常规 0.8;如果是医疗或关键决策,建议 0.9
- 选定 α:常规 0.05;多重比较要调整
- 用工具精确计算:G*Power(免费软件)、R 的
pwr包、Python 的statsmodels.stats.power
一个容易忽视的点
样本量计算给出的是"理论最小值"。实际操作时还要考虑:
- 缺失与失访:预留 10 – 20% 冗余
- 多重比较:如果要做 k 次比较,α 要用 Bonferroni 除以 k,样本量会明显增大
- 协变量调整:引入协变量后有效样本量会略减
- 非参数检验:相对 t 检验损失约 5% 效率,但在分布偏态时反而更优
一个反思
很多人做样本量计算只是为了通过审稿或 IRB,但它真正的价值在于:让你提前知道自己的研究有多大把握发现真正关心的效应。如果算出来发现需要 1000 人但你只能收 200 人,那研究设计在开始之前就需要调整——或者接受一个更大的效应量门槛,或者采用匹配、混合效应模型等更高效的设计。