3. A/B测试原理:假设检验、第一类与第二类错误、统计功效、显著性水平
A/B测试的本质是统计假设检验在业务决策中的直接应用。在金融风控场景中,我们通过随机对照试验收集数据,并利用统计推断来判断策略变更(如新的信用评分模型、风控规则调整)是否产生了显著且非随机的效果。理解假设检验的核心概念,是正确解读A/B测试结果、避免“假阳性”或“假阴性”决策的前提。
3.1 假设检验的基本框架
假设检验的核心是构建一对互斥的假设,并基于样本数据决定拒绝哪一个。
- 原假设(H₀):通常代表“无效果”或“无差异”。在A/B测试中,H₀ 通常表述为“新策略与旧策略的效果相同”。例如:新风控模型与旧模型的坏账率无差异。
- 备择假设(H₁):代表“有效果”或“有差异”。它可以是双尾(新策略效果不同)或单尾(新策略效果更好/更差)。
检验过程遵循一个逻辑:如果样本数据在原假设为真的情况下出现的概率极低(低于预设的阈值),我们就拒绝H₀,认为H₁在统计上成立。
3.2 第一类错误与第二类错误
在做出“拒绝”或“不拒绝”原假设的决策时,我们可能犯两类错误。这两类错误在金融风控中具有截然不同的业务代价。
| 决策结果 | H₀ 为真(新策略无效) | H₁ 为真(新策略有效) |
|---|---|---|
| 拒绝 H₀(宣布新策略有效) | 第一类错误(α) 假阳性:错误地部署了一个无效策略,浪费资源并可能引入风险。 |
正确决策(1-β) 即统计功效。 |
| 不拒绝 H₀(维持旧策略) | 正确决策(1-α) | 第二类错误(β) 假阴性:错过了一个真正有效的策略,丧失优化机会。 |
3.3 显著性水平(α)与统计功效(1-β)
这两个参数是设计A/B测试的核心输入,直接决定了测试所需的样本量和可信度。
- 显著性水平(α):犯第一类错误的最大可接受概率。α 越小,对“假阳性”的容忍度越低,结论越保守。常用值为 0.05 或 0.01。
- 统计功效(Power = 1-β):当备择假设为真时,正确拒绝原假设的概率。它衡量了测试检测出真实效果的能力。通常要求功效达到 80% 或 90%。
功效受四个因素影响:显著性水平(α)、效应量(Effect Size,即策略带来的真实差异大小)、样本量(n)和总体方差。在风控测试中,我们通常通过增大样本量来提升功效,以捕捉微小的但具有商业价值的风险指标变化。
3.4 假设检验与错误类型关系图
下图直观展示了在单次检验中,两类错误与统计功效的几何关系。左侧曲线代表H₀为真时的抽样分布,右侧曲线代表H₁为真时的抽样分布。
3.5 关键参数对比与选择建议
在金融风控A/B测试中,参数的选择需要结合业务风险偏好。下表总结了不同场景下的推荐配置:
| 参数 | 定义 | 风控场景推荐值 | 业务含义 |
|---|---|---|---|
| α(显著性水平) | 犯第一类错误(假阳性)的概率 | 0.01 或 0.05 | 严格控制错误部署无效策略的风险 |
| β(第二类错误概率) | 犯第二类错误(假阴性)的概率 | 0.1 或 0.2 | 允许一定概率错过有效策略,但需权衡机会成本 |
| 统计功效(1-β) | 正确检测出真实效果的能力 | 80% 或 90% | 确保测试有足够“灵敏度”发现策略的真实差异 |
| 效应量 | 策略预期带来的最小业务差异 | 坏账率降低 0.5% 等 | 由业务方定义,直接影响所需样本量 |
3.6 样本量计算与功效分析
在测试开始前,必须进行功效分析以确定最小样本量。这可以避免因样本不足而无法得出有效结论(低功效),或因样本过大而浪费资源。计算通常涉及以下输入:
- 显著性水平(α):通常固定为 0.05。
- 统计功效(1-β):通常要求 0.8 或 0.9。
- 最小可检测效应量(MDE):业务上认为有意义的最小差异。例如,新模型至少需要将坏账率从 2% 降低到 1.8%(绝对差异 0.2%)。
- 基线转化率/指标:对照组(旧策略)的预期指标值。
statsmodels 库进行功效分析,计算两组比例检验所需样本量。
import statsmodels.stats.api as sms
# 参数设置
effect_size = sms.proportion_effectsize(0.02, 0.018) # 基线坏账率2%,目标1.8%
alpha = 0.05
power = 0.8
# 计算所需样本量(每组)
required_n = sms.NormalIndPower().solve_power(
effect_size=effect_size,
power=power,
alpha=alpha,
ratio=1.0,
alternative='smaller' # 单尾检验,期望降低
)
print(f"每组所需最小样本量: {int(required_n)}")
# 输出示例: 每组所需最小样本量: 11645
上述代码表明,在 α=0.05、功效=80% 的条件下,要检测出坏账率从 2% 降至 1.8% 的效果,每组至少需要约 11,645 个样本。如果样本量不足,测试将缺乏统计功效,容易犯第二类错误。
3.7 小结:从原理到实践
假设检验为A/B测试提供了严谨的数学基础。在金融风控中,我们必须牢记:
- 控制 α:防止因随机波动而错误部署风险策略。
- 提升功效:通过合理的样本量设计,确保能捕捉到真正有效的风控优化。
- 理解业务代价:两类错误的业务成本不同,参数选择应反映风险偏好。
掌握这些核心概念后,我们才能正确设计测试、解读p值,并做出数据驱动的、稳健的风控决策。