AB实验高阶技法(七)留白组“变脏”了?用PSI与对抗验证自查

---关注作者,送A/B实验实战工具包


在长期运行的实验体系中,我们通常会保留一个 长期留白组 (Global Holdout)。它的作用是作为一把"标尺",衡量整个算法迭代或产品策略在长周期内带来的累积收益。

但这把标尺用久了,会面临一个致命问题:它是否还准?

经过半年的流量洗礼,留白组的用户构成(人群画像)是否依然能代表大盘?如果留白组里全是"老弱病残",而大盘里涌入了大量高价值新用户,那你算出来的"累积收益"就是虚高的。

今天我们不谈实验效果分析,只谈实验健康度监控:如何用统计学手段,自动化检测留白组是否依然"纯净"。

核心误区:别拿 GMV 做对比

首先要铲除一个直觉上的错误。很多产品经理会问:"我看留白组的转化率和大盘差不多,是不是就说明没问题?"

大错特错。

留白组存在的意义,就是为了让它的转化率低于大盘(证明你的策略有效)。如果两者转化率一致,说明你的策略全是无用功。

我们要检测的不是"结果指标"(如 GMV、CTR),而是 固有属性 (Invariant Metrics)。这些属性在用户进组的那一刻就确定了,理论上不应受实验策略影响:

  • 硬属性:设备型号、操作系统、App版本。
  • 人口属性:城市等级、性别、年龄段。
  • 历史行为:进组前的历史 LTV、注册时长、历史活跃度。

只有这些指标分布一致,才能证明"人"是一样的。


方法论选型:为什么不用 T检验或 KS检验?

在工业界大数据场景下(样本量 > 10万),传统的统计检验往往会失效。

1. KS检验 (Kolmogorov-Smirnov Test) 的"P值陷阱"

KS 检验用于判断两个分布是否不同。但在大数据面前,它太敏感 了。

当样本量达到百万级时,两个分布哪怕只有 0.01% 的微小差异(业务上完全可忽略),KS 检验算出的 P值 (P-value) 也会远远小于 0.05,告诉你"显著不同"。

我们需要的是衡量差异的大小,而不是由样本量堆出来的"显著性"。

2. PSM (Propensity Score Matching) 的定位错误

PSM 是事后补救手段(当分组已经不均时,强行凑出相似组),而不是监控手段。用 PSM 来做监控,属于杀鸡用牛刀,且方向反了。

最适合的工业界解法是:PSI(主防)+ 对抗验证(辅助)。


方案一:PSI ------ 监控单特征分布偏移

PSI (Population Stability Index,群体稳定性指标) 是风控领域用来监控模型特征衰退的标准工具,同样完美适用于 AB 实验的流量监控。

1. 核心逻辑

它不关心"是否显著",只关心"分布偏离了多少"。它将一个特征(如用户年龄)切分成多个桶,计算留白组和大盘在每个桶内占比的差异。

2. 公式

P S I = ∑ ( A c t u a l % − E x p e c t e d % ) × ln ⁡ ( A c t u a l % E x p e c t e d % ) PSI = \sum (Actual\% - Expected\%) \times \ln(\frac{Actual\%}{Expected\%}) PSI=∑(Actual%−Expected%)×ln(Expected%Actual%)

  • Actual%:留白组在某分桶内的占比。
  • Expected%:大盘(或全量用户)在同分桶内的占比。
3. 判别标准(经验阈值)
  • PSI < 0.1绿灯。分布非常稳定,留白组很纯。
  • 0.1 ≤ PSI < 0.25黄灯。有轻微偏移,需关注。
  • PSI ≥ 0.25红灯。人群构成发生本质变化,留白组已失效。
4. 实战策略:PSI 矩阵

不要只看一个特征。建立一个监控看板,选取 10-15 个核心特征(城市、设备、历史LTV等),每天跑一次 PSI。
报警规则:只要有任意一个核心特征 PSI > 0.2,即视为留白组污染。


方案二:对抗验证 ------ 降维打击的高阶玩法

如果你担心 PSI 只能看单特征,忽略了特征间的组合偏差 (例如:虽然"北京"用户比例没变,"高三"用户比例也没变,但"北京的高三用户"在留白组里消失了),那么你需要 对抗验证 (Adversarial Validation)

1. 核心逻辑

这是一个"左右互搏"的思路。我们训练一个机器学习模型(分类器),让它去猜:"这个用户是属于留白组,还是属于大盘?"

  • 如果两组人完全随机分配,模型应该根本猜不出来(瞎猜的准确率是 50%)。
  • 如果模型能轻易猜对,说明两组人有明显的特征差异。
2. 实施步骤
  1. 构造样本 :将留白组标记为 Label=1,大盘用户标记为 Label=0
  2. 特征工程:放入所有固有属性(City, OS, History_LTV...)。
  3. 模型训练:使用 XGBoost 或 LightGBM 进行二分类训练。
  4. 评估指标 :看测试集的 AUC (Area Under Curve)
3. 判别标准
  • AUC ≈ 0.5 (0.45 ~ 0.55)完美。模型分不清两组的区别,说明人群高度一致。
  • AUC > 0.6轻度污染。模型发现了一些规律。
  • AUC > 0.7严重污染。模型能轻易区分两组,说明留白组已经不再代表大盘。
4. 归因优势

一旦 AUC 报警,你可以直接查看模型的 Feature Importance (特征重要性) 。模型会直接告诉你:"我之所以能分出来,是因为 App_Version 这个特征在两组里分布不一样。" 这能帮你迅速定位是哪个渠道或版本的流量分配出了 Bug。


总结与建议

在搭建留白组监控体系时,建议分三步走:

  1. 第一道防线:SRM (Sample Ratio Mismatch)

    先用卡方检验看人数比例对不对。如果设定是 5% 留白,结果实际只有 4.2%,直接报警,不用往下看了。

  2. 第二道防线:PSI 矩阵(日报级)

    选取 5-8 个对业务影响最大的"命门特征"(如教育行业的年级、电商行业的会员等级),每天监控 PSI。这是成本最低、解释性最好的方案。

  3. 第三道防线:对抗验证(月报/季度级)

    每季度做一次全面的健康度体检。用 XGBoost 跑一遍所有特征的 AUC,确保没有隐蔽的组合特征偏移。


如果这篇文章帮你理清了思路,不妨点个关注,我会持续分享 AB 实验干货文章。

相关推荐
木非哲19 天前
AB实验高级必修课(四):逻辑回归的“马甲”、AUC的概率本质与阈值博弈
算法·机器学习·逻辑回归·abtest
木非哲21 天前
AB实验高级必修课(二):从宏观叙事到微观侦查,透视方差分析与回归的本质
人工智能·数据挖掘·回归·abtest
木非哲22 天前
AB实验高阶技法(四):方差分析 ANOVA —— 当实验组不再只有A和B
abtest
木非哲22 天前
AB实验必修课(一):线性回归的深度重构与稳定性评估
线性回归·概率论·abtest
木非哲1 个月前
AB实验的关键认知(十四)实验复盘与总结
概率论·abtest
木非哲1 个月前
AB实验的关键认知(十一)A/A实验
概率论·abtest
木非哲1 个月前
AB实验的关键认知(十二)黄金时刻-最大统计功效阶段-MPR
概率论·abtest
木非哲1 个月前
AB实验的关键认知(八)实验流量规划
概率论·abtest
木非哲1 个月前
AB实验的关键认知(六)分流单元与分析单元
概率论·abtest