SRM(样本比例不匹配)检查
本文档说明如何检测实验中的样本比例不匹配(SRM),以及如何调试由定向、曝光或日志问题导致的流量拆分倾斜问题。
什么是 SRM?
样本比例不匹配(Sample Ratio Mismatch,SRM) 是指各组的实际用户数与预期分配比例存在显著偏差。
例如:你设定了 50/50 分流,但最终对照组 9,000 人、实验组 1,000 人 → 检测到 SRM,说明实验的随机化机制出了问题,结果不再可信。
SRM 检查机制
实验平台会自动对所有实验进行 SRM 检查,作为健康度检查的一部分。
检测方法: 卡方拟合优度检验(Chi-squared test)
- P 值 < 0.01 → 偏差显著 → 触发 SRM 告警
- P 值 < 0.001 → 严重偏差 → 红色告警
平台展示:
| 元素 | 展示内容 |
|---|---|
| 健康度检查 | "曝光是否平衡"指标,绿色 = 无 SRM问题 |
| 累计曝光量图表 | 各组用户数的时间序列 |
| SRM 告警标识 | 红色标识 + 告警信息(p < 0.001) |
| 悬浮提示 | 观测值 vs 期望值 + P 值 |
如何诊断 SRM
第一步:查看累计曝光量图表

| 时间模式 | 可能原因 |
|---|---|
| 偏差从一开始就出现 | 分桶代码缺陷或配置错误 |
| 偏差逐渐出现 | 流失不对称(崩溃随时间累积) |
| 偏差在特定时间点出现 | 代码部署或配置变更引入缺陷 |
第二步:检查组级别指标
重点比较:崩溃率、错误率、曝光率、留存率。
如果实验组崩溃率 >> 对照组崩溃率 → 用户提前流失,SRM 是症状而非根本原因。
第三步:检查近期部署/配置变更
- 偏差时间点附近的代码部署记录
- 实验配置变更(流量分配、定向条件)
- 功能开关变更
第四步:维度拆解
找出 SRM 集中在哪些维度(浏览器、OS、SDK 版本、地区等)。通过维度拆解,可以快速定位 SRM 是否只出现在特定浏览器、特定 OS 或特定 SDK 版本中。
SRM 发生后怎么办?
- 找到根本原因 — 这决定了实验结果是否还能使用
- 放弃当前实验,重新运行 — 修复根本原因后,用相同设计重新运行实验(新实验使用不同的随机化盐值,分组与上次独立)
- 不要试图在实验分析阶段"修复"已运行实验的数据 — 最严谨的做法是重跑