第4章 样本量计算前置条件:最小可探测效应、统计功效、显著性水平、流量比例、计算工具与查表

样本量计算是A/B测试从设计走向执行的必经关卡。本章围绕5个核心前置条件——最小可探测效应(MDE)、统计功效、显著性水平、流量比例以及计算工具/查表——给出可复用的SOP操作框架。在实验开始前完成本章流程,能有效避免“跑完发现样本量不足”或“流量浪费在无法检测的微小效应上”两类典型问题。

适用场景

场景说明优先级
设计新A/B测试实验时在编写实验计划阶段,需要确定每组最低样本量必用
评估实验可行性在给定每日流量下判断实验是否能在合理时间内完成必用
多指标实验参数调优当需要同时检测多个效应量时,对比不同参数组合下的样本需求推荐
评审已有实验方案复盘历史实验的样本量是否充足,判断结果可信度可选

前置条件

  • 明确的实验假设:已完成第3章“假设形成与指标定义”,知道核心指标(如转化率、留存率)及其基线值。
  • 基线指标数值:至少过去7天的稳定均值,用于计算相对MDE。
  • 实验设计类型:确认使用双尾检验还是单尾检验(通常为双尾)。
  • 可用流量预估:每日可进入实验的独立用户数(或事件数)。
  • 业务最小值得关注提升:产品/业务方给出“低于此值不值得投入工程资源”的效应门槛。

操作步骤

  1. 设定显著性水平(α)

    • 默认值:0.05(双尾),对应95%置信区间。
    • 严格场景(如涉及资金/安全):0.01。
    • 探索性场景:0.10。
    • 📌 输出:记录所选的α值,并在实验方案中注明。
  2. 设定统计功效(1 − β)

    • 默认值:0.80(β = 0.20)。
    • 关键决策实验(如改版核心漏斗):建议 0.90。
    • 注意:功效每提高0.10,样本量约增加30%~50%。
    • 📌 输出:记录所选的功效值。
  3. 确定最小可探测效应(MDE)

    • 定义:在给定α和功效下,实验能够可靠检测到的最小效应量。
    • MDE = 绝对提升(如转化率+1%)或相对提升(如+10%)。
    • 业务驱动:产品经理提供“最小值得投入的资源门槛”。例如:若日活提升0.5%即可覆盖开发成本,则MDE设为0.5%。
    • 经验参考:多数产品优化实验的MDE在相对提升5%~20%之间。
    • 💡 选值技巧:MDE越小,所需样本量越大。若流量有限,可适当放宽MDE,优先检测大效应。
    • 📌 输出:记录MDE的绝对值与相对值。
  4. 确定流量分配比例

    • 默认:对照组 : 实验组 = 50 : 50。
    • 若存在多个实验组,需调整比例(如40:30:30)。
    • 比例偏差会导致其中一组样本量不足,降低整体统计功效。
    • 📌 输出:记录流量分配方案(如“对照组50%,实验组50%”)。
  5. 选择计算工具并执行计算

    • 在线工具:Evan Miller’s A/B测试样本量计算器、Optimizely Sample Size Calculator。
    • Python:使用 statsmodels 或自定义函数。
    • R:使用 pwr 包。
    • 查表法:使用预计算的样本量速查表(见下方示例)。

    Python 计算示例(双样本比例检验):

    import math
    
    def calc_sample_size(p1, mde_rel, alpha=0.05, power=0.80, ratio=1):
        """
        p1       : 基线转化率 (0~1)
        mde_rel  : 相对提升 (如0.10 表示10%)
        alpha    : 显著性水平
        power    : 统计功效
        ratio    : 实验组/对照组样本量比值
        """
        p2 = p1 * (1 + mde_rel)
        z_alpha = 1.96   # alpha=0.05 双尾
        z_beta  = 0.84   # power=0.80
        p_avg = (p1 + p2 * ratio) / (1 + ratio)
        n = (z_alpha + z_beta)**2 * (p1*(1-p1)/ratio + p2*(1-p2)) / (p2-p1)**2
        return math.ceil(n)
    
    # 示例:基线转化率10%,相对提升10%,α=0.05,功效=0.80,1:1分配
    n_per_group = calc_sample_size(0.10, 0.10)
    print(f"每组所需样本量: {n_per_group}")

    查表示例(基线转化率10%,α=0.05,功效=0.80):

    相对提升(MDE)每组所需样本量
    5%~15,700
    10%~3,900
    15%~1,700
    20%~950

    📌 输出:记录每组样本量、总样本量、计算工具名称及版本。

  6. 验证流量可行性

    • 公式:所需总样本量 ÷ 每日可用流量 ≤ 可接受实验天数。
    • 若超出可用范围,需返回步骤1~4调整参数(如增大MDE、降低功效或延长实验周期)。
    • ⚠️ 常见错误:直接用总样本量除以日流量,忽略流量比例中的对照组/实验组分配。务必按“每组样本量 × 组数”计算总样本量。
    • 📌 输出:可行性结论(通过 / 需调整)。

核心参数速查表

参数符号常见取值对样本量的影响
显著性水平α0.05(默认)、0.01、0.10α↓ → 样本量↑
统计功效1−β0.80(默认)、0.90功效↑ → 样本量↑
最小可探测效应MDE5%~20%(相对提升)MDE↓ → 样本量↑↑
流量比例r1:1(默认)、2:1、3:1偏离1:1 → 总样本量↑
样本量计算前置条件决策流程 设定显著性水平 α 设定统计功效 1−β 确定最小可探测效应 MDE 确定流量分配比例 选择计算工具 或查表 计算每组样本量 评估流量可行性 💡 提示 MDE 越小、功效越高、α 越低,所需样本量越大。建议先使用默认参数(α=0.05, 功效=0.80) 估算后,再根据实际流量情况调整 MDE 或实验周期。

输入输出物

类别项目说明
输入α 值显著性水平(默认0.05)
功效值统计功效(默认0.80)
基线指标值当前核心指标数值(如转化率10%)
最小可探测效应(MDE)绝对或相对提升值
输出每组所需样本量对照组和实验组各自需要的最小样本量
总样本量各组样本量之和
预估实验天数总样本量 ÷ 每日可用流量

责任边界

角色职责交付物
产品经理提供业务层面的MDE期望值,确认“最小值得关注的提升”MDE 业务定义文档
数据分析师设定统计参数(α、功效),执行计算,输出样本量报告样本量计算表 + 可行性结论
工程团队确认流量分配的技术可行性,提供每日可用流量数据流量预估数据
实验负责人审批最终参数组合,确保方案在资源和时间上可执行实验计划审批单

记录材料

  • □ 显著性水平 α:_____(默认0.05)
  • □ 统计功效 1−β:_____(默认0.80)
  • □ MDE 绝对值:_____,相对值:_____
  • □ 流量分配比例(对照组:实验组):_____
  • □ 计算工具名称/版本:_____
  • □ 每组样本量:_____,总样本量:_____
  • □ 每日可用流量:_____,预估实验天数:_____
  • □ 可行性结论:□ 通过 □ 需调整

异常处理

异常现象根本原因处理措施
所需样本量远超可用流量MDE设置过小,或功效/α要求过高增大MDE(接受只检测较大效应),或降低功效至0.80,或延长实验周期
MDE无法被业务方明确给出缺乏历史效应量参考使用行业经验值(如相对提升10%),或做一次小流量预实验估算效应量
流量比例不是1:1技术限制或多实验组冲突使用支持非均衡比例的计算公式,重新计算每组样本量
计算工具输出结果差异大不同工具使用的近似公式或参数默认值不同统一使用同一种工具(推荐 Python + statsmodels),并在实验方案中注明计算方式

验收标准

  • 所有5个前置条件(α、功效、MDE、流量比例、计算工具)均已明确记录。
  • 样本量计算结果在可用流量范围内,或已给出明确的调整方案。
  • 计算过程可复现:使用的工具、参数值、计算公式(或代码)均已存档。
  • 业务方已确认MDE符合“最小值得关注”的业务预期。
  • 数据组和工程组已签字确认流量分配方案可行。