第2章 前置条件检查:实验设计完整性、样本量验证、随机性校验
章节目标:在A/B测试正式启动前,通过三项强制性前置检查(实验设计完整性、样本量验证、随机性校验),确保实验具备统计有效性与可归因性,避免因设计缺陷、统计功效不足或分流偏差导致决策误导。
适用场景
- 实验上线前质量门禁:任何A/B测试在分配流量之前,必须完成三项前置检查,未通过不得开闸。
- 多团队协作实验审计:当产品、算法、运营等多方共同参与实验设计时,前置检查作为统一验收标准,消除认知偏差。
- 实验复盘与迭代:历史实验被质疑结论可靠性时,可通过追溯前置检查记录判断是否因条件不满足导致误判。
前置条件
执行本章检查前,需确认以下输入工件已就绪:
- 实验设计方案文档(含假设、变量定义、指标体系、分桶方案)。
- 分桶配置表(实验组/对照组编号、流量比例、层域设置)。
- 近7日全量流量日志(用于随机性校验的历史基线)。
- 最小效应量(MDE)声明(由需求方与数据科学家共同确认)。
常见遗漏:团队常跳过“最小效应量声明”,直接使用默认值,导致样本量计算与业务预期脱节。务必在实验设计阶段完成效应量对齐。
操作步骤
本章检查流程按串行门禁方式执行,前一项未通过则终止后续检查。具体分为三个子步骤:
-
步骤一:实验设计完整性检查
对照检查清单逐项核验实验设计文档,确保无缺失项。核验维度包括:
- 假设清晰度:是否明确写出原假设 H₀ 与备择假设 H₁,且指标可量化。
- 变量定义:自变量(干预措施)与因变量(核心指标)是否操作化定义,避免歧义。
- 对照组设置:是否存在合理对照组(如空跑组、旧策略组),且与实验组仅一个变量不同。
- 实验周期:是否明确开始/结束时间,且覆盖完整业务周期(含周末/月末)。
- 分流方案:分桶算法、层域策略、流量比例是否记录。
输出物:实验设计完整性检查清单(通过/不通过 + 缺失项记录)。
-
步骤二:样本量验证
基于历史基期指标与声明的最小效应量,使用独立双样本 z 检验公式计算所需最小样本量:
n = (Z_α/2 + Z_β)² × [p₁×(1-p₁) + p₀×(1-p₀)] / (p₁ - p₀)² 参数说明: Z_α/2 = 显著性水平 α=0.05 对应的双尾临界值(1.96) Z_β = 统计功效 1-β=0.80 对应的临界值(0.84) p₀ = 对照组基线转化率(来自历史数据) p₁ = 实验组预期转化率(p₀ × (1 + MDE)) n = 每组所需最小样本量将计算结果与实验计划流量进行对比:
- 若计划流量 ≥ 2×n(两个组),则通过;
- 否则,需延长实验周期或重新协商 MDE。
输出物:样本量计算表(含参数取值、计算结果、通过/不通过结论)。
-
步骤三:随机性校验
利用实验上线前的历史流量日志,对实验组与对照组在核心前协变量(如用户活跃度、历史转化率、设备分布)上进行均衡性检验:
- 连续变量:使用双样本 t 检验或 Kolmogorov-Smirnov 检验;
- 分类变量:使用卡方检验。
检验通过标准:所有协变量的 p-value > 0.05,且标准化均值差异(SMD)< 0.1。
示例 R 代码片段(校验用户历史活跃度): t.test(activity ~ group, data = pre_period_log)$p.value # 输出:0.372 → p > 0.05,通过随机性校验输出物:随机性校验报告(含各协变量 p-value 与 SMD 表、通过/不通过结论)。
📊 关键指标看板:前置检查量化标准
| 指标名称 | 定义 | 合格阈值 | 异常解释 |
|---|---|---|---|
| 设计完整性指数 | 检查清单通过项 / 总项 × 100% | 100%(零缺失) | 任何缺失项均视为不通过,需打回补充 |
| 统计功效 | 1 − β,检验能检测到效应存在的概率 | ≥ 0.80 | 功效不足时,即使存在真实效应也可能被遗漏 |
| 最小样本量满足率 | 计划样本量 / 所需最小样本量 × 100% | ≥ 100% | 低于100%需延长周期或增大流量比例 |
| 随机性 p-value | 各协变量的均衡性检验 p 值 | > 0.05 | p ≤ 0.05 表明分组存在系统性偏差,需排查分桶逻辑 |
| SMD(标准化均值差异) | (μ₁ − μ₀) / σ_pooled | < 0.1 | SMD ≥ 0.1 说明协变量分布差异不可忽略 |
输入输出物
| 类别 | 名称 | 格式/载体 | 责任方 |
|---|---|---|---|
| 输入 | 实验设计方案 | 文档(Confluence / 飞书文档) | 产品经理 |
| 输入 | 分桶配置表 | JSON / YAML 配置文件 | 工程团队 |
| 输入 | 历史流量日志 | Parquet / CSV 表 | 数据工程 |
| 输入 | 最小效应量声明 | 邮件确认 / 会议纪要 | 需求方 + 数据科学家 |
| 输出 | 前置条件检查报告 | PDF / 在线看板 | 数据分析师 |
| 输出 | 校验结论标志 | 通过 / 不通过 + 异常记录 | 数据科学家 |
责任边界
| 角色 | 职责 | 不跨越的边界 |
|---|---|---|
| 产品经理 | 提供实验设计方案,确认业务指标与 MDE | 不直接操作分桶配置或执行统计检验 |
| 数据科学家 | 执行样本量计算、随机性校验、出具检查报告 | 不修改实验假设或干预流量分配 |
| 工程团队 | 提供分桶配置与流量日志,配合排查分流异常 | 不参与统计检验结论的判定 |
| 数据分析师 | 维护检查清单模板,归档检查记录 | 不承担最终通过/不通过的裁决权 |
| 决策委员会 | 根据检查结论决定实验是否上线 | 不绕过检查流程直接放行 |
记录材料
每次前置检查完成后,需归档以下三类记录,保存至实验复盘结束:
- 实验设计完整性检查清单(含逐项打勾记录与缺失项截图)。
- 样本量计算表(含参数取值、计算公式、计算过程截图)。
- 随机性校验报告(含协变量列表、p-value 与 SMD 值、通过/不通过结论)。
建议:将三项记录合并在同一份 PDF 报告中,作为实验的“出生证明”,后续任何结论争议均可追溯至此。
异常处理
| 异常场景 | 表现 | 处理措施 | 责任人 |
|---|---|---|---|
| 实验设计不完整 | 检查清单出现缺失项 | 立即打回,由产品经理补齐缺失项后重新提交 | 产品经理 |
| 样本量不足 | 计划流量 < 所需最小样本量 | ① 延长实验周期以积累更多流量;② 重新协商扩大 MDE;③ 增加实验组流量比例 | 数据科学家 + 产品经理 |
| 随机性校验失败 | 某协变量 p-value ≤ 0.05 或 SMD ≥ 0.1 | ① 检查分桶算法是否存在哈希偏斜;② 检查分层变量是否与协变量相关;③ 重新分桶后再次校验 | 工程团队 + 数据科学家 |
| 历史数据不足 | 近7日流量日志缺失或异常 | 延长回溯窗口至14日,或使用同周期历史数据替代 | 数据工程 |
| MDE 未达成共识 | 需求方与数据科学家对效应量有分歧 | 召开联合评审会,基于业务成本与统计可行性确定 MDE | 决策委员会 |
验收标准
本章三项前置检查全部通过后,方可进入实验上线流程。具体验收标准如下:
- 设计完整性:检查清单所有项均为“通过”,无任何缺失或模糊项。
- 样本量验证:计划样本量 ≥ 最小需求样本量,且实验组与对照组均满足该要求。
- 随机性校验:所有前协变量的 p-value > 0.05 且 SMD < 0.1,无显著分组差异。
- 文档归档:三项记录材料完整、可审计,且经数据科学家签字确认。
⚠️ 硬性规则:任一验收标准未达标,实验不得上线。严禁以“先跑起来再看”为由跳过前置检查。历史教训表明,前置条件不满足的实验,结论反转率高达 37%。
🔑 核心原则:前置条件检查不是“走形式”,而是实验可信度的基石。三项检查分别对应实验的可归因性(设计完整性)、统计功效(样本量验证)和无偏性(随机性校验)。任何一项缺失,实验结论都可能在评审时被挑战。