每周看一次数据,误判率就不再下降了:一个模拟出来的结论

每周看一次数据,误判率就不再下降了

第 3 周,你打开监测表,提及率比基线高了 4 个百分点。这个数字比预期来得早,于是你决定把预算往这个方向加。

第 9 周,数字回落到基线附近。加的预算已经花了。

这类故事在内容效果测量里反复出现,但很少有人把它的概率算出来。所以下面做一件不常见的事:用模拟把误判率算清楚,然后看它随哪些东西变化。

先设定一个干净的场景

要让计算有意义,得先假定真实情况。这里的前提是:所做的一切其实没有效果。

听起来是在假设失败,但只有在这个前提下算出来的数才有用。因为如果有效果,你看得出来;问题是当效果不存在时,你有多大概率误认为它存在。

参数取我们上一篇文章测过的量级:

  • 每周测量一次的噪音,标准差 6 个百分点
  • 判定线设在提升 5 个百分点
  • 观察窗口 12 周

判定线的意思很直白:观察到的提升超过 5 个点,就认为动作生效了。

模拟结果

在真实无提升的前提下反复模拟,统计两种看法的误判率。第一种是只在第 12 周看一次就下结论,第二种是每周都打开看一次。

观察周数只在终点判定每周都看放大倍数
2 周11.9%24.2%2
4 周4.7%26.2%6
8 周1.1%27.1%26
12 周0.1%27.1%181
26 周接近 027.2%极大
52 周接近 026.5%极大


这张表里最要紧的地方在右边那一列的走势,放大倍数反而其次。

左边那一列随着观察周数增加迅速下降,这是符合直觉的:测得越久,噪音被平均得越充分,误判自然越少。

右边那一列几乎不动。2 周时 24.2%,52 周时 26.5%。从两周到一年,每周看的误判率稳定在 27% 附近。

这个结论意味着什么

它的意思是:在每周偷看的习惯下,"我们再多观察一段时间"这句话是没有用的。

你可能以为把窗口从 4 周拉到 26 周,判断会更可靠。如果只看终点,确实如此,误判率从 4.7% 降到接近零。但如果你保持每周打开看的习惯,4 周和 26 周的误判率都是 27% 左右。

耐心只有在你不看的时候才起作用。

这是这件事最容易误解的地方。人们把"观察期长"和"判断可靠"当成同一件事,但真正决定可靠性的是你在观察期内做了多少次判定。做一次判定,长窗口有效;做二十六次判定,每一次都在给自己增加一次误判机会。

为什么机制是这样

先看一个错误但常见的推算方式。

如果每次看是独立的测试,每周 5% 的误判率,12 周至少中一次的概率是:

`text

1 - 0.95¹² = 46%

`

46% 这个数字方向是对的,但偏高。原因是每周看的时候,你用的是同一条数据路径在不同时点的截面,它们彼此并不独立。第 3 周和第 4 周的累计均值高度相关,是同一个东西稍微变了一下。所以实际的误判率低于独立假设给出的数字,模拟结果是 27%。

另一个角度看这件事。一条随机游走在 52 周里游荡的幅度,远大于它在第 52 周的落点。终点只是一个点,路径上的极值是另一回事。而且随着时间推移,游走的空间变大,极值也在变大。这两件事的增速接近,所以在累计均值上取极值时,概率不随时间明显下降。

判定线要多保守才够

既然问题出在"看了很多次",一个直接的解法是把判定线抬高,高到无论怎么看都不会被噪音触发。

同样条件下,每周偷看一次,不同判定线的误判率:

判定线每周偷看的误判率
提升 5 个点27.0%
提升 7 个点14.3%
提升 9 个点7.2%
提升 11 个点3.7%
提升 14 个点1.0%


作为对照,判定线设在提升 5 个点、只在第 12 周看一次,误判率是 0.2%。

要在每周看的前提下把误判率压到 5% 以内,判定线得从 5 个点抬到 11 个点,也就是翻一倍还多。

这个数字有代价。判定线抬到 11 个点,意味着真实提升在 5 到 10 个点之间的动作,你永远验证不了它有效。用高频观察换来的,是对中等效果的永久失明。

噪音大小会改变一切

上面的数都是在周噪音 6 个点的前提下算的。噪音变小,整个量级会变。

周噪音判定线 5 个点时的每周误判率
3 个点明显低于上表,需要重新算
6 个点27%
10 个点更高


这里不填具体数字,因为它很容易自己算:判定线和噪音的比值才是决定性的。 判定线是噪音的 0.83 倍时,误判率约 27%。这个比值降到 0.5 以下,误判率会明显下降。

由此得到一个比"抬高判定线"更好的办法:降低噪音,而不是降低标准。

噪音可以通过三种方式压下来:增加每次测量的样本量(同一问题问更多次)、增加测量频次后取平均、把问题集做大。这三种都是在同样的判定线下提高分辨力,比把标准定高更划算,因为它不会让你对中等效果失明。

那是不是干脆别看

不是,这也是一个常见的过度反应。

如果你完全不看,会错过另一类信息:数据是否在正常范围内。指标突然掉一半,或者某个平台开始完全不再提及你,这类事情需要立即知道。它们和"有没有效果"是两个问题。

所以正确的划分是把观察分成两种:

用途频率回答的问题
监测随便看数据有没有异常
判定按预定窗口动作有没有效果


监测可以每天做,它问的是"有没有出问题"。判定必须锁在窗口上,它问的是"有没有用"。

这两件事混在一起,就是误判的来源。 你打开表看的是监测,得出的结论却是判定。

一个操作上的规则

如果有条件,最省事的做法是预注册:在动作开始之前,写下三件事。

第一,观察窗口多长。第二,判定线是多少。第三,到窗口结束时,什么情况算有效、什么情况算无效。

写下来之后,中途看数据是被允许的,但只允许回答监测问题。看到峰值的时候要在心里保留一句:这个数还没有资格下结论。

如果确实需要在过程中做判断,有一个折中的做法:把判定线按观察次数上调。 从上面的表看,每周看一次的情况下,判定线大约要翻倍。这个折中不优雅,但它比假装自己只看了一次要诚实。

什么情况下可以提前下结论

有一种情况是合理的:效果远超噪音。

如果提升幅度达到噪音的好几倍,那么它在早期就能稳定看出来,继续等只是浪费。判断标准可以按住比值来估:提升幅度除以周噪音,这个比值超过 2 的时候,提前下结论的风险已经很低。

反过来说,比值小于 1 的时候,任何在窗口结束前的结论都不值得采信,哪怕它看起来正好符合预期。

常见问题

问:样本量和观察时长,先加哪个?

先加样本量。观察时长增加只能压低终点的噪音,而且它会带来更多的观察次数;样本量增加是直接压低噪音,不带来额外观察次数。

问:如果窗口结束发现动作无效,之前投入的时间怎么算?

这部分损失是必要的。真正需要避免的是一边观察一边加码,那种情况下的最大损失来自按照误判结论持续追加的预算,时间只是小头。

问:论文里说的 p 值能不能直接用在业务上?

它的前提是一次预定检验。业务场景里几乎没有人只检验一次,所以直接套用会低估风险。要么锁住观察次数,要么按观察次数调整标准,两条路都不走的话,算出来的显著性没有意义。

相关阅读

延伸阅读:中小企业营销团队的 AI 外挂:每周 Sprint 交付询盘、两周看见变化:Onworkly 四步上手的试点复盘怎么做、AI 客服 / AI 内容 / AI 数据:岗位专家和通用大模型差在哪。

三条交付线的额度与价格在定价页,基础版免费,可以先跑一次看结果。