测多少次、看多少次、要多大效果
一个团队做了 50 次标题测试。最好的那条点击率比平均高 2.3 倍,于是它被写进模板,成为标准做法。
三个月后,按这个模板写的标题,数据回到了平均水平。
问题出在最开始的那一步:2.3 倍这个数字,在 50 次测试里几乎必然会出现一次,无论这个标题是否真的更好。
第一个数:测多少次
先把场景简化。假设你测的 50 个候选之间没有真实差别,噪声是随机的。每次测试的结果都是一个围绕零波动的数。
在这样的条件下,"最好的那个"看起来能有多好?
反复模拟,每次取最大值,统计它的平均:
| 测试次数 | 无真实差别时最高值的期望 | 换算成标准差 |
|---|---|---|
| 1 | 0.00 | 0.00 |
| 2 | 0.56 | 0.56 |
| 5 | 1.16 | 1.16 |
| 10 | 1.54 | 1.54 |
| 20 | 1.87 | 1.87 |
| 50 | 2.25 | 2.25 |
| 100 | 2.51 | 2.51 |
| 200 | 2.75 | 2.75 |
通常的显著性门槛是 1.96 个标准差。
所以只要测试次数到 50 左右,"最好的那个"就会稳定地看起来显著,而它可能什么都没做对。
这个表还有一个形状上的信息。测试次数从 10 涨到 100,涨了十倍,最高值的期望只从 1.54 涨到 2.51。这个偏差的增长是对数级的,所以它会饱和,不会无限膨胀。
饱和这件事有好有坏。好处是你不用怕"测试做得越多偏差越大"到失控。坏处是饱和的位置已经在门槛之上了。 也就是说,你无法通过少测几次来消除这个问题,你能做的只是别把最高值当成结论。
第二个数:看多少次
第二个数和上一个独立,但作用方向一样。
前面一篇文章做过一组模拟:真实没有提升、单周噪音 6 个百分点、判定线设在提升 5 个点。只在第 12 周判定一次,误判率 0.2%;每周都看一次,误判率 27%。
而且那个 27% 不随观察期延长而下降。观察 2 周是 24.2%,观察 52 周是 26.5%。
多看了十几次,结论的可靠程度差出两个数量级。
第三个数:要多大效果
第三个参数是你要检测的提升幅度。这一项决定了需要多少样本。
按双侧 5%、把握度 80% 的标准算,单周噪音 6 个点的情况下:
| 要检测的提升 | 每组所需测量点 | 按每周 5 次算 |
|---|---|---|
| 1 个点 | 565 | 约 113 周 |
| 2 个点 | 142 | 约 29 周 |
| 3 个点 | 63 | 约 13 周 |
| 4 个点 | 36 | 约 8 周 |
| 5 个点 | 23 | 约 5 周 |
| 8 个点 | 9 | 约 2 周 |
| 12 个点 | 4 | 约 1 周 |
这张表的读法有一个容易搞错的地方。它的意思是:测了这么多次,你才有资格判断有没有效果。效果是否真的出现,是另一回事。
按这个标准,要检测 2 个点的提升需要 142 个测量点,每周测五次的话是 29 周。所以"我们想验证一个 2 个点的优化"这个诉求,在多数内容团队的测量能力下是不可实现的。 承认这一点比勉强做一次没有结论的测试更省事。
三个数在同一条预算上取钱
把三个数放在一起看,会发现它们不是三段独立的技术细节。
| 加大哪个 | 表面效果 | 实际发生了什么 |
|---|---|---|
| 多测几次 | 更容易找到"好结果" | 最高值被偏差抬高 |
| 多看几次 | 更快看到"有效" | 误判率跳到两成以上 |
| 放宽标准 | 更快得出结论 | 检出的是噪音 |
三种做法的共同点是让结论更快出现。而让结论更快出现的代价,都是让结论变虚。
它们能互相交换,所以单独优化其中任何一个都没有意义。把测试次数从 50 降到 10,看起来缓解了偏差,但如果同时每周盯盘,误判率照样在两成以上。
一个典型的连环陷阱
有一种流程在很多团队里被视为严谨的做法,但它在同一个偏差上积累了两次。
第一步,准备 50 个标题候选。第二步,小流量跑一轮,挑出表现最好的前三个。第三步,把这三个再跑一轮或者盯两周,确认它们确实更好,然后定为标准做法。
第一步到第二步,用的是最高值,它已经被抬高了。第三步看起来是验证,但如果验证的方式是"再看两周",那么它同时引入了观察次数的误判。
两次操作都在从同一个虚的部分里取数。 更重要的是,第二轮的三个候选本来就是从最高值里挑出来的,它们的期望天然高于真实水平,这被称为回归均值。所以第二轮的结果一定会比第一轮差,而这个变差会被误读成"流量不稳定"。
怎么破:三件成本很低的事
一、测之前声明两个数
在开始之前写下:这次要测多少个候选,以及判定规则是什么。写下来这个动作本身就能挡住大部分事后解释。
声明之后,如果中途想加候选,那就等于改了规则。正确做法是把它记成下一次的测试,不是塞进这一次。
二、留出一部分只用来验证
把候选分成两半。一半用来筛选,另一半不参与筛选,只在最后用来验证筛出来的结论。
留出集上的效果才是可以采信的效果。因为筛出来的结论没有在留出集上被挑过,那里没有挑选偏差。
这个做法有一个代价:你能用来筛选的候选少了一半。如果你的候选本来就少,直接放弃筛选比用一半去筛更合理。
三、放一批已知无差别的候选做基准
这一条最实用,因为它不需要改流程,只需要在测试里多放几个东西。
做法是:在同一次测试里,塞入若干个你确定没有本质差别的候选。比如同一条内容换几种等价的表述,或者几个明显同质的标题。
它们之间的真实差异是零。所以测试结束后,看这几个候选里最高的那个比平均高出多少。
这个数字就是你在这个场景下的噪声基准。 它已经包含了你的样本量、时间段、平台波动等全部因素,不需要另算。
然后把判定门槛设在这个基准之上。如果被测候选的最高值没有明显超过基准的最高值,那么这次测试什么结论都给不出来。
这个做法的好处是把抽象的统计要求变成了一个当场可得的数。测一次基准,之后长期可用,只需要在测量口径变化时重测。
什么情况下可以放松
三种。
第一种,效果远超基准的时候。如果某个候选比平均高出很多倍,超过噪声基准的最大值,那么它不需要完整的流程就能采信。判断依据是"效果除以噪声基准"这个比值的大小。
第二种,测量成本极低且样本量由第三方保证的时候。有些平台自带的对照实验会按自己的规则分配流量并给出置信区间,这种情况下你不需要自己做样本量计算。
第三种,后果可逆且代价低的时候。内部选题方向的试错属于这一类,它的错误成本很低,用完整流程反而是浪费。
这三种情况的共同特征是错误代价低,或者噪声基准低。 两者都不低的时候,流程不能省。
一个当周能做的检查
三件事,成本都很低。
第一,找出最近一次"测试后得出结论"的记录,数一下当时测了多少个候选。如果超过 20 个,并且结论是"最好的那个效果特别好",那么这条结论要先打一个问号。
第二,找几个已知同质的候选,跑一次它们的分布,得到一个噪声基准。这件事只需要做一次。
第三,把判定门槛从"看起来不错"改成"明显超过基准的最高值"。
常见问题
问:测 50 次里最好的那个可能是真的好吗?
可能是,但测试本身给不出这个判断。要判断它是不是真的好,需要留出集或者后续的独立复测。测试能做的事是发现候选,不是确认效果。
问:候选很少的时候怎么办?
直接跳过筛选环节,把全部候选跑完并做一次诚实的判定。候选少的时候,最高值偏差本来就小,问题不在这一步。
问:噪声基准每隔多久要重测?
测量口径变化时重测。口径包括问题集、平台组合、采样次数、时间窗口。这些都没变的话,基准可以长期沿用。
问:这套东西对小团队是不是太重了?
如果小团队的测量量本来就低,那么它适用的部分只有一条:别从很多候选里挑出最好的那个然后当成结论。这一条不需要任何工具,只需要改变解读方式。
相关阅读
延伸阅读:AI 在企业里的三个阶段:为什么多数团队卡在第二个、"AI 提及率":企业内容效果评估的新维度与监测方法、教育培训行业AI方案:内容生产×学员运营×招生获客的三线并行。
三条交付线的额度与价格在定价页,基础版免费,可以先跑一次看结果。