贝叶斯-Beta-Binomial-AB检验

贝叶斯-Beta-Binomial-AB检验是AB测试方法论中一种基于贝叶斯统计的先进方法,特别适用于想要直观理解成功概率的二分类指标测试场景。

适用场景

  • 指标类型:二分类指标(转化率、点击率等)
  • 使用优势:输出成功概率分布而非点估计值
  • 特殊价值:天然支持连续监测,避免多重检验问题
  • 适用情况:需要对效果大小有直观概率估计的场景

基本原理

与传统的两比例Z-t检验等频率学派方法不同,贝叶斯方法将参数视为随机变量,通过先验分布和似然函数计算后验分布。

数学模型

对于二分类指标(如转化率),Beta-Binomial模型是自然选择:

  1. 先验分布:使用Beta分布作为转化率参数的先验

    • - 实验组转化率的先验
    • - 对照组转化率的先验
  2. 似然函数:基于观察到的数据

    • 实验组:
    • 对照组:
  3. 后验分布:结合先验和似然

其中:

  • 是两组样本量
  • 是两组成功次数
  • 是Beta分布的参数

推断与决策

贝叶斯框架提供了丰富的推断方式:

  1. 概率提升计算

    • 计算 - 实验组优于对照组的概率
    • 通常使用蒙特卡洛模拟从后验分布抽样计算
  2. 效应大小估计

    • 计算 - 期望提升
    • 构建 95% 可信区间,了解不确定性范围
  3. 决策规则

    • (如0.95)时,认为存在显著效果
    • 或结合业务要求,设置最小实际显著性标准

连续监测优势

贝叶斯方法的一个显著优势是支持连续监测:

  • 频率学派方法中连续查看结果会导致显著性膨胀(p-hacking)
  • 贝叶斯方法允许随时停止实验而不影响错误率
  • 实现”尽早发现明显效果,及时终止无效实验”

与其他方法对比

特性贝叶斯-Beta-Binomial两比例Z-t检验
输出完整概率分布点估计和p值
解释直观的成功概率统计显著性
先验信息可纳入不使用
小样本表现良好不适用
连续监测支持不支持
计算复杂度较高

实施步骤

  1. 先验设定

    • 使用无信息先验(如Beta(1,1))或
    • 基于历史数据或专家判断设置信息先验
  2. 收集数据

    • 记录每组样本量和成功次数
    • 可根据需要动态调整样本量
  3. 计算后验

    • 更新Beta分布参数
    • 通过抽样或数值积分计算提升概率
  4. 决策与解读

    • 基于后验概率和业务阈值做决策
    • 提供概率表述的结论,而非二元答案

实现示例

import numpy as np
from scipy import stats
 
# 假设数据
success_A = 120  # 实验组成功次数
trials_A = 1000  # 实验组总样本量
success_B = 100  # 对照组成功次数
trials_B = 1000  # 对照组总样本量
 
# 先验参数(无信息先验)
alpha_prior = 1
beta_prior = 1
 
# 计算后验分布参数
alpha_A_post = alpha_prior + success_A
beta_A_post = beta_prior + (trials_A - success_A)
alpha_B_post = alpha_prior + success_B
beta_B_post = beta_prior + (trials_B - success_B)
 
# 从后验分布抽样
samples = 100000
theta_A_samples = np.random.beta(alpha_A_post, beta_A_post, samples)
theta_B_samples = np.random.beta(alpha_B_post, beta_B_post, samples)
 
# 计算实验组优于对照组的概率
prob_A_better_than_B = np.mean(theta_A_samples > theta_B_samples)
print(f"实验组优于对照组的概率: {prob_A_better_than_B:.4f}")
 
# 计算预期提升
expected_lift = np.mean(theta_A_samples - theta_B_samples)
print(f"预期提升: {expected_lift:.4f}")
 
# 95% 可信区间
lift_samples = theta_A_samples - theta_B_samples
credible_interval = np.percentile(lift_samples, [2.5, 97.5])
print(f"95% 可信区间: [{credible_interval[0]:.4f}, {credible_interval[1]:.4f}]")

贝叶斯-Beta-Binomial-AB检验在用户增长与营销优化方法论中特别适用于需要连续监测和获取直观成功概率的场景,与AB回流闭环与迭代优化结合可提供更灵活的实验决策机制。