Skip to content

SRM(样本比例不匹配)检查

本文档说明如何检测实验中的样本比例不匹配(SRM),以及如何调试由定向、曝光或日志问题导致的流量拆分倾斜问题。

什么是 SRM?

样本比例不匹配(Sample Ratio Mismatch,SRM) 是指各组的实际用户数预期分配比例存在显著偏差。

例如:你设定了 50/50 分流,但最终对照组 9,000 人、实验组 1,000 人 → 检测到 SRM,说明实验的随机化机制出了问题,结果不再可信。

SRM 检查机制

实验平台会自动对所有实验进行 SRM 检查,作为健康度检查的一部分。

检测方法: 卡方拟合优度检验(Chi-squared test)

χ2=(观测值i期望值i)2期望值i
  • P 值 < 0.01 → 偏差显著 → 触发 SRM 告警
  • P 值 < 0.001 → 严重偏差 → 红色告警

平台展示:

元素展示内容
健康度检查"曝光是否平衡"指标,绿色 = 无 SRM问题
累计曝光量图表各组用户数的时间序列
SRM 告警标识红色标识 + 告警信息(p < 0.001)
悬浮提示观测值 vs 期望值 + P 值

如何诊断 SRM

第一步:查看累计曝光量图表

SRM 检查用累计曝光图

时间模式可能原因
偏差从一开始就出现分桶代码缺陷或配置错误
偏差逐渐出现流失不对称(崩溃随时间累积)
偏差在特定时间点出现代码部署或配置变更引入缺陷

第二步:检查组级别指标

重点比较:崩溃率、错误率、曝光率、留存率。

如果实验组崩溃率 >> 对照组崩溃率 → 用户提前流失,SRM 是症状而非根本原因。

第三步:检查近期部署/配置变更

  • 偏差时间点附近的代码部署记录
  • 实验配置变更(流量分配、定向条件)
  • 功能开关变更

第四步:维度拆解

找出 SRM 集中在哪些维度(浏览器、OS、SDK 版本、地区等)。通过维度拆解,可以快速定位 SRM 是否只出现在特定浏览器、特定 OS 或特定 SDK 版本中。

SRM 发生后怎么办?

  1. 找到根本原因 — 这决定了实验结果是否还能使用
  2. 放弃当前实验,重新运行 — 修复根本原因后,用相同设计重新运行实验(新实验使用不同的随机化盐值,分组与上次独立)
  3. 不要试图在实验分析阶段"修复"已运行实验的数据 — 最严谨的做法是重跑