声明:本文为独立方法论沉淀,基于公开资料与个人实践整理,不代表任何雇主或客户观点。
tl;dr(4 条)
- 经典固定窗 t / Z 检验只允许到点看一次。实验期间每天刷看板、一看到 p<0.05 就停,属于 optional stopping——名义 5% 的假阳性会被抬到 20% 量级(精确数字取决于偷看次数和停止规则,不是普适常数)。
- 序贯检验(sequential / anytime-valid)在设计阶段就把「允许反复查看」写进 Type I 控制:α-spending、SPRT、mSPRT、always-valid p-value / 置信序列是三族主流实现。
- 合法早停有代价:对弱效应更慢、置信区间更宽;早停的点估计偏乐观(winner’s curse),不能直接拿去做财务 forecast;它也不能让 30 天留存提前成熟。
- 小团队默认策略:序贯检验 + 至少跑满 7 个完整自然日 + guardrail 达标 + 无 SRM 才允许早停。选实验平台时直接问一句:是否 peek-safe / always-valid,而不是问会不会算 p-value。
一、一个每天都在发生的错误
我做实验诊断时最常见的场景不是"团队不会算 t 检验",而是:
- 实验周一上线,看板每天刷新;
- 周三运营发现转化率 p<0.05,业务群里一句"显著了,全量吧";
- 周五全量,下周核心指标没动,甚至回落,但没人再把它和那次"显著"联系起来。
这个流程里,分流可能是对的、指标口径可能是对的、Welch t 也算得没错——错在决策时序。固定窗检验的统计保证有一个前提:分析次数和停止时间不依赖数据。你答应它"跑到第 14 天看一次",结果第 3 天看了一次、第 5 天看了一次、第 7 天显著就停,前提被破坏了。
固定窗检验不是"不能看监控",而是不能用未校正的中期显著性作为停实验的充分条件。看健康度(有没有崩、SRM 是否正常)随时可以;把"显著"当全量按钮,不行。
二、为什么多看几次,5% 就守不住了
直觉是这样的:在两组其实没有任何真实差异(A/A)的情况下,累计检验统计量是一条随机游走的线,5% 的显著性阈值是线两边的围栏。你答应只在终点看一次,误入围栏的概率就是 5%。但如果你每天都看一眼,这条线在 14 天里任何一天蹭进围栏你就宣布"赢了"——蹭到的机会自然随查看次数累积。
这不是我的推算,是有公开研究背书的:
- Optimizely 的 Johari 等人在 KDD 2017《Peeking at A/B Tests》和后续 Always Valid Inference(arXiv:1512.04922)里系统刻画了连续监控下经典 p-value 的失效;
- Statsig 2026-10-28 的博文 Sequential testing explained 用"计划跑四周、两周想停"的例子说明,第一次看到显著就全量,假阳性风险会放大到约 20% 量级——注意这是博文级的量级表述,精确倍率由你的 peek 日程和停止规则决定,别当成常数写进 PPT;
- 心理学的可重复性危机里,Simmons、Nelson & Simonsohn(2011)的《False-Positive Psychology》用仿真证明了同一件事:灵活停止可以大幅抬高假阳性。
所以问题不是"你们统计学得不好",而是把固定窗工具用在了序贯决策场景。工具和场景不匹配。
三、合法早停:三族序贯方法
序贯检验不是一个单一公式,主流有三族,解决的是同一个问题:让你在任意时间点停下时,推断仍然有效。
| 方法族 | 代表 | 怎么控制假阳性 | 产品化形态 |
|---|---|---|---|
| α-spending(成组序贯) | Pocock、O’Brien–Fleming、Lan–DeMets | 事前规定有限次中期查看,每次用更严的临界值,把 5% 的 α「分期花完」 | 临床试验主流;线上适合能承诺最大样本量、查看次数有限的场景 |
| SPRT | Wald(1945) | 持续累乘似然比,越上界接受 H₁、越下界接受 H₀,中间继续 | Statsig 的 SPRT 分析类型;需要事前给目标效应量,好处是能「接受无效应」,直接支持早杀 |
| always-valid / mSPRT | Johari 等;Robbins 的 mixture SPRT | 对备择效应做混合,得到任意停止时间都成立的 p-value 和置信序列 | Optimizely Stats Engine、Statsig Frequentist Sequential(图上用虚线 wings 扩宽 CI)、Uber 监控、Adobe ExP |
几个容易混淆的点:
O’Brien–Fleming 和 Pocock 的取舍。 前者早期极严、末期临界值接近固定窗,适合"默认跑完、只在效果炸裂时提前停";后者各次查看门槛较平,早期更容易显著。线上日历和流量都不确定,Lan–DeMets 的 α-spending 花费函数更实用——不必提前锁死每次查看的具体日期。
SPRT 的「接受 H₀」不是「证明效应为零」。 这是我见过最多的误读。它只说明"效应没达到你事前设定的目标 MDE",更小的效应依然可能存在。另一个坑:如果真实效应远小于你设的目标,似然比可能长期在两条边界之间漂移,实验迟迟不收口。
贝叶斯读出是另一条路,但别混为一谈。 Bayes factor / 后验赔率在合适停止规则下可以按贝叶斯方式解释(Deng, Lu & Chen, 2016),Optimizely 也提供 chance to beat、expected loss 这类读出。但它的"可信"依赖先验和阈值,不等于频率派 α=5% 的保证。向管理层汇报时两套语言不要互换。
四、序贯检验不是免费的:四个代价
向团队推这个能力之前,先把代价讲清楚,否则第一次出现"序贯说不显著、固定窗说显著"时,信任就崩了。
- 弱效应更慢。 合法地"随时可停"靠的是更严的边界。如果真实效应本来就小,序贯方法需要的样本可能不少于、甚至多于固定窗。它省的是强效应场景的时间,不是普适加速。
- 区间更宽。 看图时永远并排展示「标准 CI」和「序列校正 CI(wings)」,只暴露未校正的窄区间等于诱导团队偷看决策。
- Winner’s curse:早停的点估计偏乐观。 序贯校正保护的是假阳性率,不自动消除点估计上偏——你恰恰是在数据"看起来很好"的那一刻停的。需要精确 lift 做财务预测时,继续跑到计划终点。
- 它不能让指标提前成熟。 30 天留存、退款率、长期 LTV 该等多久还是多久。短窗转化序贯显著 + 长周期指标没成熟,不构成全量依据。
五、和 CUPED、互斥/重叠流量是什么关系
这三样东西各管一段,不互相替代,我在做平台规划时坚持分开讲:
- 流量框架(互斥 → 重叠/多层正交) 管的是分配与干扰:实验之间互不污染、并发能上去;
- CUPED / 回归调整 管的是功效:降方差,证据积累更快,在合法边界下往往更早穿界;
- 序贯检验 管的是推断时序:反复查看和数据依赖停止下的错误率;
- SRM / 质量门禁 管的是数据本身能不能用:分流比例错了,上面三层都白搭。
工程上这三者通常共享同一套点估计和标准误,只是套不同的临界值或序列变换。Netflix 已把 anytime-valid 推广到回归调整的因果估计,说明"降方差 + 时齐有效推断"可以同栈。一个成熟平台还应允许混合策略:主决策走固定窗,护栏和事故监控走 mSPRT 序列告警(Uber 的模式)——不是所有实验都必须序贯。
六、小团队的默认策略:7 日硬门槛
如果你服务的是资源有限的增长团队(我给休闲游戏和应用团队做诊断时的默认建议),不必一上来建完整序贯引擎,五条规则先落地:
- 看板层默认启用序列校正(mSPRT 调 CI 或 always-valid),α=0.05;
- 硬门槛:至少 7 个完整自然日,覆盖工作日 / 周末行为差异——这也是 Statsig 文档给的实操建议;
- 早停全量必须同时满足:主指标序列显著 且 核心 guardrail 无显著恶化 且 无 SRM;
- 到预定时长校正区间仍含 0:继续跑到事前功率分析的样本量,或直接宣布 inconclusive——禁止回头用未校正 p 强行全量;
- 复盘动作:把团队最近三次"两周看数就全量"的决策,用序列校正区间重算一遍,看结论是否还成立。这一条往往比任何培训都有说服力。
七、选平台时怎么问
评估自研或采购实验平台(Statsig、Optimizely、GrowthBook、自建)时,统计部分我建议直接问这四句:
- 是否支持 sequential / always-valid / peek-safe 的结果读出?还是只在终点给固定窗 p-value?
- 早停规则能否配置成「序列显著 + guardrail + 最小运行时长」的组合条件?
- 看板上标准 CI 和序列校正 CI 是否并排展示?
- 最小运行时长、检查频率、α 花费规则是否可配置,还是平台黑盒决定?
只会算 p-value 的平台,等于把"不许偷看"的全部责任压在团队纪律上——而我的经验是:只要看板每天刷新,纪律必输。把 peek-safe 做成平台默认,而不是写在 wiki 里的流程要求,才是解法。
想知道你的实验平台在「统计可信度」这一维度处于什么段位? 可以用 实验能力自检(15 题 · 5 分钟),从需求就绪度 × 能力段位 L1–L4 给定位和切入建议;自检结果带在 1v1 沟通里,可以直接过你的真实决策场景。