概率统计:评测设计、效应量与统计陷阱
本节目标
统计方法应服务于一个预先定义的问题。完成本节后,你应能在运行 Agent A/B 评测前写清目标总体、处理、分析单位、主要指标、配对或随机化方式、最小实际差异与停止规则,并能识别重复样本、数据泄漏、多重比较和中途偷看造成的虚假确定性。
先写 estimand:到底要估计什么
Estimand(目标估计量) 是想从数据中估计的明确对象。一个可执行的问题应至少包含:
目标总体:哪些用户、任务、语言、时间和环境?
处理:A 与 B 究竟差在哪里?模型、prompt、工具、检索还是整条链路?
分析单位:唯一任务、用户、会话,还是一次生成?
结果:成功、质量分、延迟、成本或安全失败?
聚合:宏平均、按流量加权,还是关键子组最差值?
对比:B-A 的绝对差、相对差,还是非劣于某个阈值?
时间范围:即时结果、7 日留存,还是一个完整故障周期?“B 更好吗”不是 estimand。更明确的表述是:“在预先冻结的中文工具任务总体上,以任务为单位,估计 B 相对 A 的严格成功率绝对差;超时按失败计,主要决策阈值为至少提升 3 个百分点,同时 P95 延迟不增加超过 200 ms。”
离线配对与线上随机化回答不同问题
离线配对
同一任务分别交给 A 和 B,得到 ,分析 。任务难度同时影响两版结果,通过配对可让每个任务成为自己的参照。若打乱对应关系或让两版使用不同任务集,就丢失配对优势。
对随机生成模型,常见结构是:
任务 i
├─ A 的多次生成
└─ B 的多次生成多次生成嵌套在任务内,不能把所有生成都当作互相独立的任务。可以先按任务聚合,再对任务做 bootstrap;更复杂目标则需要分层或层级模型。
线上随机化
把符合条件的用户或会话随机分到 A/B,可降低已观测和未观测混杂。但随机化不自动解决:
- 入组流量不代表未来或其他地区;
- 用户在两组间串扰;
- 日志丢失、曝光失败或选择性退出;
- 同一用户多次请求形成相关;
- 实验期间产品、流量或外部服务发生变化。
随机化单位应与干预和干扰边界一致。若一个用户能在会话间看到不同版本,按请求随机可能产生污染;若按用户随机,分析也要尊重用户聚类。
配对、分块与分层
NIST 将 blocking 描述为控制重要干扰因素的方法:在较同质的 block 内比较主要处理,再随机化无法控制的因素。映射到 Agent 评测:
- 配对:同一任务对 A、B 都评一次;
- 分块:在语言、任务类型、难度或数据来源块内比较;
- 分层报告:预先定义关键子组,并报告每层样本量和区间;
- 加权:若评测集构成不同于目标流量,使用事先定义且有依据的权重。
分层越多,单层样本越少,多重比较越严重。不要看到结果后不断切片,直到找到一个“显著提升”子组。
主要指标、护栏与最小实际差异
在看数据前区分:
- 主要指标(primary metric):实验主要回答的问题,通常尽量少。
- 护栏指标(guardrail):不能明显恶化的安全、延迟、成本或拒答指标。
- 诊断指标:帮助解释机制,但不都承担主要决策。
最小实际差异(minimum practically important difference)是小于它便不值得上线、或不能补偿成本的差异。它不是从 p 值反推出来的。示例:成功率至少提升 3 个百分点,或在质量不下降超过 1 个百分点时成本降低 15%。
区间应与这个阈值一起解释:
| B-A 区间 | 与 +3 pp 阈值的关系 | 结论示例 |
|---|---|---|
[+5,+9] | 全部高于阈值 | 当前设计下与有实际价值的提升相容。 |
[+1,+5] | 跨越阈值但不跨 0 | 方向看似正,但实际价值仍不确定。 |
[-2,+2] | 跨 0 且低于阈值 | 既容许轻微退化也容许小幅提升,证据不足。 |
[-1,+1] | 若预设等效界为 ±2 pp,则全在界内 | 可能支持“差异足够小”,但需使用预先设计的等效框架。 |
pp 表示百分点;从 50% 到 53% 是 +3 pp,也是相对提升 6%。报告时不要混淆。
样本量与 power 的直觉
样本量规划应在实验前围绕以下量决定:
- 希望检测的最小实际差异;
- 指标基线和波动;
- 配对相关性或用户内相关;
- 可接受的一类错误与二类错误;
- 主要比较数量、分层和预期缺失;
- 生成随机性与评分者噪声。
样本越多,区间通常越窄,但重复、相关或偏置样本不会按行数等比例增加有效信息。所谓“统计功效不足”也不能在结果不显著后被当作万能解释;更好的做法是预先写出假设、模拟合理数据结构,并报告区间仍允许哪些效应。
多重比较与中途偷看
若独立检验 20 个完全无效的指标,每个都用 0.05 阈值,至少出现一个偶然显著结果的概率为:
真实指标通常相关,但这个计算足以说明“多试几个总能找到亮点”。防护包括:
- 预先指定主要指标、主要对比和关键分层;
- 对探索性分析明确标注,不伪装成确认性结论;
- 必要时使用 Bonferroni、Holm 或 FDR 等与目标匹配的校正;
- 保留全部尝试、失败与分析版本。
反复查看结果并在首次越过阈值时停止,会改变错误率。若业务需要连续监控,应在设计阶段使用序贯方法或预定检查时点;不能把固定样本检验当成可无限偷看的仪表盘。
泄漏、污染与适应性过拟合
- prompt、检索参数或评分规则若根据测试集反复调整,测试集已成为开发集;
- 同一道题的近重复版本横跨开发与测试,会泄漏任务模板;
- 模型可能在训练中见过公开 benchmark;
- 评分模型若与被评模型共享偏好,可能产生系统性偏差;
- 只保留成功解析的输出,会选择性删除困难失败。
置信区间只描述给定数据与模型下的随机不确定性,不能修复这些系统偏差。需要冻结独立 holdout、记录每次接触测试集的决策,并定期引入新鲜代表性任务。
缺失与失败必须预先计分
假设 B 更常触发超时,但超时行没有进入评分表。如果只比较“成功返回且被评分”的输出,B 的质量可能看起来更高。应预先规定:
- 超时、拒答、工具异常、解析失败算失败、缺失还是单独结果;
- 缺失是否与版本或任务难度有关;
- 退出与日志丢失如何追踪;
- 是否进行敏感性分析,例如把未知结果分别按最好和最坏情况计分。
排除规则改变 estimand。任何事后排除都要列出数量、原因以及对结论的影响。
评测设计卡
决策问题:
目标总体与时间窗口:
处理 A / B:
随机化或配对单位:
分析单位与聚类结构:
主要指标 / 护栏指标:
分子、分母与失败计分:
最小实际差异 / 非劣界:
预定义分层与权重:
样本量依据:
停止规则与检查时点:
多重比较策略:
holdout 与污染防护:
缺失和排除规则:
版本、随机种子与审计记录:练习与自测
- 把“比较两个 Agent”改写成包含总体、单位、结果、聚合与差异方向的 estimand。
- 为同一任务生成 5 次的离线评测画出层级结构;说明应该在哪一层重抽样。
- 设计一个主要质量指标、两个护栏指标和 +3 pp 最小实际差异。
- 说明为什么随机化能降低混杂,却不能保证样本代表未来流量。
- 你查看了 12 个 prompt × 8 个指标后只报告最好组合。列出至少三项修复措施。
- 区间
[+1,+5]没跨 0,但跨越 +3 pp 决策阈值,应怎样写结论?
- 我在看结果前固定 estimand、主要指标、阈值和停止规则。
- 我区分任务、生成、用户、会话和评分者的相关结构。
- 我保留配对,并为关键干扰因素分块或分层。
- 我不把显著性当作效应大小或上线价值。
- 我能识别多重比较、偷看、泄漏、缺失和选择性报告。
上一节:估计、置信区间与假设检验|下一节:项目:Agent 评测不确定性。
参考资料
核验日期:2026-07-14。