样本量计算与统计功效

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. 看板自动生成“建议方案”并写入日志。
样本量计算与统计功效关系图 显著性水平 α 统计功效 1−β 效应量 δ / σ 最小样本量公式 n = (Zα/2 + Zβ)² · 2σ² / δ² 实验可行性决策 核心关系 · α 越小 → 所需 n 越大 · 功效越高 → 所需 n 越大 · 效应量越大 → 所需 n 越小 · 公式自动适配均值/比率类 输入参数 计算引擎 输出决策

5. 异常解释

看板中常见的三类异常信号及其根因分析。

  • 信号一:“样本量不足,功效 < 0.60”
    原因:效应量设定过小或 α 太严格。业务动作:增大效应量目标(如从 3% 提升到 5%),或放宽 α 到 0.10。
  • 信号二:“所需样本量超过流量池 2 倍”
    原因:当前指标波动大(σ 过高)或目标功效过高。业务动作:使用 CUPED 等方法降低方差,或接受更长的测试周期。
  • 信号三:“效应量置信区间跨越零”
    原因:历史数据太少,效应量估计不准。业务动作:引入先验数据或运行小型预实验校准效应量。
看板解读:异常区域用红/黄/绿三色指示灯表示。红灯亮起时,看板自动弹出“建议参数调整卡”,列出可选的 α、功效、效应量组合方案,并预估每个方案所需的测试天数。决策者可直接点击“应用方案”一键更新参数。

6. 业务动作

基于看板输出,将样本量计算转化为可执行的测试计划。

  1. 设定检验标准:在看板输入区固定 α = 0.05,1−β = 0.80。
  2. 输入效应量预期:从业务目标反推最小可检测提升(如转化率提升 0.5%)。
  3. 读取最小样本量:看板输出 n = 32,500(每组)。
  4. 评估流量可行性:日均可用流量 10,000 用户,则单组需 3.25 天,取整 4 天,总周期 8 天。
  5. 执行参数校验:使用 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.050.05
1−β0.800.80
效应量0.280.28
最小样本量(每组)—12,800
日均流量6,0006,000
建议测试天数—5 天(总 10 天)
实际执行天数—12 天(因流量波动增加 2 天缓冲)

实际运行 12 天后,实验组转化率 8.9%,对照组 8.0%,Δ=0.9pp,p=0.032,功效复核为 0.83。看板复盘区显示“样本量充足,结论可信”,决策顺利推动全量上线。

看板解读:复盘看板的“事后功效计算器”读取真实数据,输出事后功效 0.83(大于 0.80),验证了前期样本量计算的准确性。若事后功效低于 0.70,看板会标记“结论需谨慎”,并建议延长实验或增加流量再做验证。