广告 A/B 测试样本量计算器:要多少流量才能下结论

一句话答案
A/B 测试每组所需样本量 ≈ 16 × 平均转化率 ×(1 − 平均转化率)÷ 两组转化率之差的平方(95% 置信、80% 功效)。转化率越低、想检测的提升越小,需要的样本量就越大——转化率 3% 要检测 20% 的相对提升,每组约需 1.4 万个样本。
输入参数
计算结果
广告位 · content · 部署后在 config.json 填入 AdSense ID 即自动替换

怎么用这个工具

  1. 填入对照组当前的转化率(用最近 2–4 周的稳定数据,别用单日波动值)
  2. 填入你希望检测出的最小提升幅度,想检测的提升越小,需要的样本越多
  3. 选择置信水平与统计功效,不确定就用默认的 95% 和 80%
  4. 填入每天能分到这个测试的流量(两个版本平分)
  5. 看每组所需样本量与预计天数,判断这个测试值不值得做

绝大多数人的 A/B 测试是这么失败的:跑两天,看到新版本的转化率高一点,宣布新版本赢了,上线。然后过一个月发现整体数据根本没变好。

问题不在运气,在于样本量根本不够就下了结论。两组转化率真实相同的时候,短期数据也会随机出现差异——跑得越短,这种“假胜利”出现的概率越高。要把它压到可接受的范围,就得事先算清楚需要多少样本。

三个最常见的错误做法

一、中途偷看,一见显著就停。这是最普遍也最致命的一个。样本量公式的置信水平是建立在「只看一次结果」的前提上的;你每多偷看一次,就多给随机波动一次“看起来显著”的机会。统计上这叫多重比较问题,实际后果是假阳性率可以翻倍甚至更多。正确做法:开跑之前就算好样本量,写下来,跑满之前不看结论。

二、拿小改动去测小流量。按钮颜色、字间距这类改动,效果通常在 1%–3% 的幅度。要检测这种幅度的差异,样本量是巨大的。低流量的店铺应该把测试机会留给真正的大改动:主图、标题、定价、落地页结构、包邮门槛——这些才有机会产生能被检测出来的差异。

三、一次性改太多。同时换了主图、标题和价格,结果变好了,你不知道是哪个起了作用,下次还是不知道该复制什么。一次只改一个变量,这是所有测试的基础纪律。

看不懂置信水平和功效?这样选就够了

置信水平回答的是“如果两组其实一样,我误判为有差异的概率有多大”。95% 就是允许 5% 的误判。提高到 99% 更严格,但需要的样本量会增加约 50%。

统计功效回答的是“如果新版本真的更好,我能检测出来的概率有多大”。80% 是行业惯例,意思是真有效果时八成能抓到;提到 90% 更保险,样本量增加约 34%。

对绝大多数电商场景,95% 置信 + 80% 功效就是合理的默认配置。除非这次决策代价特别高(比如要改全站模板),否则不需要调到最严格。

流量不够时怎么办

算出需要三周以上,这个测试大概率不值得做。这时有四条退路:

只测大改动。把能检测的最小提升从 10% 放宽到 30%,需要的样本量会降到原来的约四分之一(样本量与提升幅度的平方成反比)。

换指标。不要只盯着成交转化率,它的样本量要求最高。加购率、发起结账率这些上游指标动得快、样本量大,能更早给出方向性信号——但要记住它们不等于最终成交。

延长周期。跑四周甚至六周,风险在于这期间流量结构、季节、竞品可能已经变了,测试环境的稳定性会下降。

接受不确定性。对小体量店铺,有时候直接参考行业基准、凭经验拍板,比做一个统计上不合格的测试更理性。做不出结论的测试,成本不只是时间,还有机会成本。

还有两个容易被忽略的干扰

新奇效应(novelty effect):老用户看到新版本会多看一看,短期数据被抬高,但这不代表长期更好。测试周期至少要跑满一个完整的用户回访周期,一般两周起步。

流量分配的均匀性:两个版本必须同时跑、随机分流。上午给 A、下午给 B 这种分时段的做法会引入时段偏差;先跑一周 A 再跑一周 B 更糟,那已经不是 A/B 测试而是前后对比,季节和流量变化会完全污染结果。平台卖家可以用后台自带的实验功能(比如亚马逊卖家后台的实验工具)来做主图和页面内容的对照测试,分流逻辑由平台保证。

常见问题

为什么我算出要几万个样本,感觉不可能完成?

因为你的转化率太低或者想检测的提升太小。样本量与提升幅度的平方成反比——想检测的幅度砍一半,样本量涨四倍。这是低流量店铺做 A/B 测试的真实约束,不是公式有问题。解决方案是只测大改动,或者换用加购率这类样本量更充足的指标。

90% 置信水平和 95% 差多少?

从 95% 降到 90%,每组样本量大约减少 22%。代价是误判概率从 5% 升到 10%。对日常优化可以接受,对影响面大的决策不建议放宽。

我看到新版本已经领先了,为什么不能提前结束?

因为短期波动会被误当成效果。置信水平这个数字只在「按计划只看一次」的前提下成立。你多看几次,实际误判率就超过设定的 5%,而且看得越频繁超得越多。如果一定要随时监控,需要用序贯检验(sequential testing)这类专门的方法,普通的两比例检验不能这么用。

测试跑满了但两组差别很小,算谁赢?

差别没达到显著就是「没有检测到差异」,这不等于「两个一样好」。通常的做法是保留原版本(改动有成本,没证据就不改),同时把这次结果记下来——知道某个方向没效果,也是有价值的信息,能避免团队下次再走一遍。

广告位 · footer · 部署后在 config.json 填入 AdSense ID 即自动替换
相关工具