样本量计算与统计功效
A/B 测试的结论是否可信,很大程度上取决于样本量是否充足。样本量过小,统计功效不足,真实差异无法被检测;样本量过大,资源浪费且容易捕获无业务意义的微小波动。本章围绕最小样本量公式、功效函数与实践工具,构建从参数设定到决策落地的完整看板体系。
1. 指标定义
样本量计算涉及四个核心指标,它们共同决定了实验的“探测能力”。
| 指标名称 | 符号 | 定义 |
|---|---|---|
| 显著性水平 | α | 当原假设为真时,错误拒绝原假设的概率(第一类错误)。通常取 0.05。 |
| 统计功效 | 1−β | 当备择假设为真时,正确拒绝原假设的概率。通常取 0.80 或 0.90。 |
| 效应量 | δ / σ | 实验组与对照组之间标准化差异。效应量越大,越容易被检测。 |
| 最小样本量 | n | 在给定 α、1−β 和效应量下,所需每组最小实验单元数。 |
看板解读:在看板的“参数输入区”设定 α 与 1−β,在“效应量估计区”输入预期提升幅度和标准差,结果区直接输出最小样本量 n。若当前可用样本量 < n,看板自动标记“功效不足”,提示调整参数或延长周期。
2. 数据口径
各参数的取值标准与数据来源需统一,以保证看板输出的可比性。
| 参数 | 推荐取值 / 口径 | 来源说明 |
|---|---|---|
| α(显著性水平) | 0.05(单侧)或 0.05/2(双侧) | 行业惯例,风险承受力高时可取 0.10 |
| 1−β(统计功效) | 0.80(标准) / 0.90(严格) | 0.80 为最小可接受线 |
| 效应量(均值类) | δ / σ,δ 为绝对差异,σ 为历史标准差 | 取自最近 30 天同类指标 |
| 效应量(比率类) | ∣p₂−p₁∣ / √(p(1−p)),p 为合并率 | 基线转化率取稳定期均值 |
看板解读:看板“数据口径卡”内置默认阈值(α=0.05,1−β=0.80),当用户修改口径时,看板实时重算 n 并刷新“可行周期”预测。任何口径变更都会记录在日志区,供复盘追溯。
3. 维度拆解
不同指标类型和业务场景,样本量计算方式及敏感度差异明显。
- 均值类指标(如人均时长、客单价):需要输入标准差 σ,公式为 n = (Zα/2 + Zβ)² · 2σ² / δ²。
- 比率类指标(如点击率、转化率):基于基线率 p₁ 和预期率 p₂,公式为 n = (Zα/2 + Zβ)² · (p₁(1−p₁) + p₂(1−p₂)) / (p₂−p₁)²。
- 效应量维度:小效应量(0.2)需极大样本;中等效应量(0.5)为常见设计目标;大效应量(0.8)所需样本较小但业务改进难度高。
- 分层与聚类:若使用分层随机或整群抽样,需引入设计效应(DEFF)调整样本量。
看板解读:在看板“维度切面”下拉菜单中选择“均值”或“比率”,输入框自动切换为标准差/基线率。看板右侧的“效应量热力图”用颜色深浅标示不同效应量下所需最小样本,帮助决策者直观判断当前改进力度是否“够得着”。
4. 看板结构
样本量计算看板分为“参数输入—计算引擎—结果输出—决策建议”四个区域,形成闭环决策流。
| 区域 | 模块 | 内容 | 决策用途 |
|---|---|---|---|
| 参数输入 | 显著性水平 α | 0.01 / 0.05 / 0.10 单选 | 设定检验严格度 |
| 参数输入 | 统计功效 1−β | 0.80 / 0.85 / 0.90 滑条 | 平衡灵敏度与资源 |
| 参数输入 | 效应量预期 | 手动输入 δ 或选择“小/中/大” | 明确业务改进目标 |
| 计算引擎 | 公式适配器 | 自动识别均值/比率指标 | 确保公式匹配 |
| 结果输出 | 最小样本量 n | 精确数值 + 可视化对比线 | 判断当前流量是否达标 |
| 决策建议 | 测试周期预估 | n / 日活流量 → 天数 | 排期与资源协调 |
SOP 决策步骤:1. 在看板参数区设定 α 与功效 → 2. 输入预期效应量或选择“中效应”作为初始值 → 3. 读取结果区 n → 4. 若 n > 可用样本量,调整效应量或接受更长周期 → 5. 看板自动生成“建议方案”并写入日志。
5. 异常解释
看板中常见的三类异常信号及其根因分析。
- 信号一:“样本量不足,功效 < 0.60”
原因:效应量设定过小或 α 太严格。业务动作:增大效应量目标(如从 3% 提升到 5%),或放宽 α 到 0.10。 - 信号二:“所需样本量超过流量池 2 倍”
原因:当前指标波动大(σ 过高)或目标功效过高。业务动作:使用 CUPED 等方法降低方差,或接受更长的测试周期。 - 信号三:“效应量置信区间跨越零”
原因:历史数据太少,效应量估计不准。业务动作:引入先验数据或运行小型预实验校准效应量。
看板解读:异常区域用红/黄/绿三色指示灯表示。红灯亮起时,看板自动弹出“建议参数调整卡”,列出可选的 α、功效、效应量组合方案,并预估每个方案所需的测试天数。决策者可直接点击“应用方案”一键更新参数。
6. 业务动作
基于看板输出,将样本量计算转化为可执行的测试计划。
- 设定检验标准:在看板输入区固定 α = 0.05,1−β = 0.80。
- 输入效应量预期:从业务目标反推最小可检测提升(如转化率提升 0.5%)。
- 读取最小样本量:看板输出 n = 32,500(每组)。
- 评估流量可行性:日均可用流量 10,000 用户,则单组需 3.25 天,取整 4 天,总周期 8 天。
- 执行参数校验:使用 Python 脚本交叉验证看板结果。
以下为使用 statsmodels 进行样本量计算的校验脚本:
import statsmodels.stats.power as smp
# 均值类指标:两组独立样本
power = smp.tt_ind_solve_power(
effect_size=0.2, # 效应量 d
alpha=0.05, # 显著性水平
power=0.80, # 统计功效
ratio=1.0, # 实验组/对照组比例
alternative='two-sided'
)
print(f"每组所需样本量: {round(power)}")
# 比率类指标:使用 proportions_ztest 近似
from statsmodels.stats.proportion import proportion_effectsize
from statsmodels.stats.power import zt_ind_solve_power
es = proportion_effectsize(prop1=0.10, prop2=0.12) # 基线10%,目标12%
n = zt_ind_solve_power(effect_size=es, alpha=0.05, power=0.80, ratio=1.0)
print(f"每组所需样本量: {round(n)}")
看板解读:在“业务动作”面板中,看板将 n 与当前流量池匹配,自动生成三个可选方案——保守方案(高功效长周期)、标准方案(推荐)、加速方案(低功效短周期)。决策者勾选一个方案后,看板锁定参数并生成《测试排期确认单》。
7. 复盘分析
案例:提升会员订阅转化率
某内容平台计划改版订阅页,预期将转化率从 8.0% 提升至 8.8%(效应量 d = 0.28)。
| 参数 | 初始设定 | 看板输出 |
|---|---|---|
| α | 0.05 | 0.05 |
| 1−β | 0.80 | 0.80 |
| 效应量 | 0.28 | 0.28 |
| 最小样本量(每组) | — | 12,800 |
| 日均流量 | 6,000 | 6,000 |
| 建议测试天数 | — | 5 天(总 10 天) |
| 实际执行天数 | — | 12 天(因流量波动增加 2 天缓冲) |
实际运行 12 天后,实验组转化率 8.9%,对照组 8.0%,Δ=0.9pp,p=0.032,功效复核为 0.83。看板复盘区显示“样本量充足,结论可信”,决策顺利推动全量上线。
看板解读:复盘看板的“事后功效计算器”读取真实数据,输出事后功效 0.83(大于 0.80),验证了前期样本量计算的准确性。若事后功效低于 0.70,看板会标记“结论需谨慎”,并建议延长实验或增加流量再做验证。