2. 实验设计基础:假设检验、显著性水平、统计功效与样本量计算

在启动模型 A/B 测试之前,必须建立严谨的实验设计框架。本章聚焦于假设检验的数学基础、显著性水平与统计功效的权衡,以及样本量计算的核心公式。这些概念是后续 SQL 数据准备与结果判定的理论基石。

2.1 假设检验:原假设与备择假设

假设检验是 A/B 测试的决策引擎。每次实验都涉及两个互斥的统计假设:

假设类型 符号 含义 A/B 测试中的典型表述
原假设(零假设) H₀ 无差异、无效果、无变化 新模型与旧模型的转化率相同(μ新 = μ旧)
备择假设(对立假设) H₁ 或 Hₐ 存在差异、有效果、有变化 新模型的转化率高于旧模型(μ新 > μ旧)
关键原则:原假设是“保守”立场,除非数据提供充分证据,否则不轻易拒绝。A/B 测试的目标就是收集数据,判断是否有足够统计证据推翻 H₀。

2.2 显著性水平 α:控制第一类错误

显著性水平 α 是拒绝原假设时犯第一类错误(假阳性)的概率——即实际无差异,但误判为有差异。α 通常设定为 0.05 或 0.01。

  • α = 0.05:每进行 20 次无差异的实验,平均会有 1 次错误地宣称有效果。
  • α 越小,结论越保守,但需要更大的样本量才能检测到真实效果。
  • 常见误区:α 不是“模型有效的概率”,而是“原假设为真时拒绝它的概率”。
行业惯例:大多数模型 A/B 测试采用 α = 0.05(双侧)或 α = 0.025(单侧)。在风险较高的场景(如金融风控模型),建议使用 α = 0.01。

2.3 统计功效(Power):控制第二类错误

统计功效 = 1 - β,其中 β 是第二类错误(假阴性)的概率——即实际存在差异,但未能检测出来。功效衡量实验发现真实效果的能力。

错误类型 通俗名称 概率 后果
第一类错误(Type I) 假阳性 α 错误上线无效模型,浪费资源
第二类错误(Type II) 假阴性 β 错过真正有效的模型,失去业务增益

统计功效的典型目标值为 0.80(β = 0.20)或 0.90(β = 0.10)。功效越高,实验所需的样本量越大。

常见陷阱:样本量不足时,即使模型真实效果显著,实验也可能因功效过低而得出“无显著差异”的错误结论。务必在实验前完成功效分析。

2.4 假设检验与错误类型关系图

下图展示了假设检验的四种可能结果,以及 α 与 β 在决策空间中的位置:

假设检验决策矩阵与错误类型 接受 H₀ 拒绝 H₀ H₀ 为真 H₁ 为真 ✅ 正确接受 概率 = 1 - α ❌ 第一类错误 概率 = α(假阳性) ❌ 第二类错误 概率 = β(假阴性) ✅ 正确拒绝 概率 = 1 - β(统计功效) 统计功效 = 1 - β,代表实验发现真实效果的能力

2.5 样本量计算:核心公式与影响因素

样本量计算是实验设计的关键步骤。对于两样本比例检验(最常见的 A/B 测试场景),样本量公式为:

n = ( (Z_α/2 + Z_β)² × (p₁(1-p₁) + p₂(1-p₂)) ) / (p₂ - p₁)²

其中:

  • n:每组所需样本量
  • Z_α/2:对应显著性水平 α 的双侧 Z 值(α=0.05 时 Z=1.96)
  • Z_β:对应功效 1-β 的 Z 值(功效=0.80 时 Z=0.84)
  • p₁:对照组基准转化率
  • p₂:实验组预期转化率
  • p₂ - p₁:最小可检测效果(MDE,Minimum Detectable Effect)
样本量计算三要素:
  1. 显著性水平 α:α 越小,所需样本越大。
  2. 统计功效 1-β:功效越高,所需样本越大。
  3. 最小可检测效果 MDE:效果越小,所需样本越大(呈平方反比关系)。

2.6 样本量计算流程与参数关系

下图展示了样本量计算的核心流程,以及各参数之间的权衡关系:

样本量计算流程与参数权衡 输入参数 α, 1-β, MDE, 基准率 样本量公式 n = f(α, β, δ, p) 每组样本量 n 总样本 = 2n 参数权衡关系 α ↓(更保守) → n ↑(样本增大) 功效 ↑(更敏感) → n ↑(样本增大) MDE ↓(更精细) → n ↑↑(平方增长) 核心权衡:更严格的实验标准(小 α、高功效、小 MDE) 必然需要更大的样本量,需在统计严谨性与业务成本间平衡

2.7 实际案例:SQL 中的样本量估算

在 SQL 环境中,我们可以通过查询历史数据来估算基准转化率,进而代入样本量公式。以下示例基于用户行为表计算对照组基准率:

-- 计算历史基准转化率(用于样本量估算)
WITH historical_data AS (
  SELECT
    COUNT(DISTINCT user_id) AS total_users,
    SUM(CASE WHEN converted = 1 THEN 1 ELSE 0 END) AS converted_users
  FROM user_behavior
  WHERE experiment_date BETWEEN '2024-01-01' AND '2024-03-31'
)
SELECT
  total_users,
  converted_users,
  ROUND(converted_users * 1.0 / total_users, 4) AS baseline_rate
FROM historical_data;
实操建议:
  • 使用历史数据估算基准率时,确保时间窗口足够长(至少 1-3 个月)以消除季节性波动。
  • MDE 通常设定为基准率的 5%-20%,具体取决于业务预期提升幅度。
  • 在 SQL 中实现完整样本量计算时,建议使用 Python 或 R 的统计库,或预先计算好 Z 值查表。

2.8 常见误区与避坑指南

误区 正确理解
α = 0.05 意味着模型有 95% 概率有效 α 是原假设为真时拒绝它的概率,不是模型有效的后验概率
功效越高越好,直接设 0.99 功效过高会导致样本量需求激增,需在成本和精度间平衡
样本量越大越好,无需提前计算 样本量过大会浪费资源,且可能检测到统计显著但业务无意义的微小差异
MDE 可以事后根据结果调整 MDE 必须在实验前设定,事后调整会导致 p-hacking 和数据窥探偏差
核心原则:实验设计阶段的假设检验参数(α、功效、MDE)必须在数据收集前确定并记录在实验文档中。任何事后修改都需要重新计算样本量并重启实验,否则结论不可信。