Menu

A/B 测试计算器

输入每个版本的访客数和转化数。你会得到一句话结论、附计算过程的 p 值、置信区间、B 更好的贝叶斯概率、流量分配是否正常的检查,以及这次测试最多能看出的最小提升。

作者 Nethanel Bar, Co-founder & CEO

最后更新

准备好真正学会编程了吗?

Coddy 让你在浏览器里编写真实代码来学习:互动课程、即时反馈,卡住时还有 AI 帮忙。

这个计算器能告诉你别的计算器不说的东西

每个 A/B 测试计算器都会给出 p 值。大多数到此为止,于是创业者们只能盯着 87% 的置信度,琢磨它到底是什么意思。这个计算器回答的,是真正决定你下一步怎么做的问题。差异是否大于偶然能产生的程度?真实提升最差可能是多少,最好可能是多少?如果测试结果“不显著”,以这样的样本量,它有可能检测出任何东西吗?流量分配本身是否健康,还是你在比较两个从一开始就不对等的组?

它运行的是标准的两比例 z 检验,和 Optimizely 经典引擎、VWO 频率学派模式以及所有统计学教科书用的是同一种方法,并展示每一行计算:合并比率、标准误、z 分数和尾部面积。旁边还有贝叶斯的答案,也就是 B 的真实转化率高于 A 的概率;因为“B 更好的概率是 91%”才是大多数人希望从 p 值得到的那句话,而它是另一个数字。

我们是在看了自己的数据看板之后才做了这个工具。Coddy 运行过大约二十个有名字的实验,其中十个是在小部分流量上做的分国家定价测试,而我们的内部工具在置信度不到 95% 时显示一条置信度进度条,下面写着“继续运行”。这就是披着友好外衣的提前停止。旁边的三个标签页,也就是样本量、现实检验和偷看模拟器,之所以存在,是因为一个只报告显著性的计算器,只会帮你更快地自欺欺人。

相信这个数字之前你需要知道的

  • “不显著”并不意味着“没有差异”,而是数据无法判断。显示这次测试能看出的最小提升的那个卡片,才是诚实的解读:如果你观察到的提升低于它,这次测试本来就不可能给出答案。
  • p 值不是你判断错误的概率,而是在两个版本完全相同时,看到这么大差距的概率。赢家有多大可能是真的,还取决于你的想法有多常奏效,现实检验标签页会把它变成一个数字。
  • 进度条第一天变绿就停止测试,是 A/B 测试中代价最高的习惯。每天查看并提前停止,会把 5% 的假阳性率变成 20% 甚至更高。偷看模拟器会用你自己的流量展示这一点。
  • 流量分配出问题会毁掉一切。如果你计划 50/50,结果却是 46/54,说明有东西在用户进入测试之前就对他们做了分流:缓存层、机器人过滤器、重定向。计算器会先做这项检查,检查不通过时拒绝给出结论。
  • 每组转化数少于约 25 时,z 检验背后的正态近似只是一个草图,而不是测量。计算器会直接说明这一点,而不是打印出三位小数的虚假精度。

如何使用 A/B 测试计算器

  1. 输入 A 和 B 的访客数和转化数

    访客是被分到这个版本的人,而不是页面浏览量。转化是完成了你所衡量的行为的人:注册、付费、点击。两组必须用同样的方式计数。

  2. 选择置信水平和假设

    默认是 95% 双侧,当 B 可能更好也可能更差时,这是诚实的选择。只有当 B 更差和没有变化会被同样对待时,才用单侧,而这种情况比人们想象的少。

  3. 先看结论,再看置信区间

    横幅说明数据支持什么结论。相对提升卡片显示置信区间:真实效应可能落在区间内的任何位置,做计划时应该用区间的下限,而不是点估计。

  4. 检查两个警告

    如果流量分配被标记为异常,先修好测试,再看其他内容。如果最小可检测提升大于你观察到的提升,说明测试的统计功效不足:去样本量标签页看看需要多少访客。

  5. 复制结果或链接

    “复制结果”会给你一段摘要,可以贴到消息或文档里。“复制链接”会把四个数字放进 URL,打开链接的人会看到同样的计算。

如何解读输出

每个卡片的含义,一句话说清。

卡片它是什么怎么解读
相对提升(B 的转化率减 A 的转化率)除以 A 的转化率核心数字。旁边的置信区间是真实提升可能所在的范围。
p 值如果 A 和 B 完全相同,出现这么大差距的概率在 95% 置信水平下,小于 0.05 即为显著。它不是结果出错的概率。
置信度1 减 p,以百分比表示大多数工具显示的数字。87% 不是差一点到 95%,而是落在线的另一边。
B 更好的概率B 的真实转化率高于 A 的贝叶斯概率人们想要的那句话。91% 表示 B 很可能更好,而不是 B 好了 91%。
这次测试能看出的最小提升在当前各组样本量下,以 80% 统计功效能检测到的相对提升如果你观察到的提升低于它,“不显著”的意思是“无法判断”。
流量分配各组访客的实际占比与计划占比的对比当偏差超出偶然所能解释的范围时会被标记。先修好测试,再看结果。

三个测试,三个不同的教训

经典的“差一点”

A:10,000 个访客,500 次转化(5.00%)。B:10,000 个访客,560 次转化(5.60%)。相对提升 +12%,p = 0.058。

在 95% 下不显著,置信区间大约从负 0.4% 到正 24%。诚实的解读是“可能有小幅正向提升,也可能什么都没有”。这次测试能检测到的最小提升约为 17%,所以 12% 的效应注定会落在灰色地带。它需要大约两倍的流量,而不是再多等一周碰运气。

出问题的流量分配

A:5,000 个访客,100 次转化。B:4,300 个访客,120 次转化。计划分配 50/50。

B 看起来以 +40% 明显胜出。计算器拒绝这么说:在 50/50 的计划下,5,000 对 4,300 的分配偶然出现的概率不到百万分之一。有什么东西在 B 的用户被计数之前就把他们移除了,常见的是某个浏览器上失败的重定向,或者对变体区别对待的机器人过滤器。不管是什么,两组已经不可比,这个提升也就毫无意义。

小网站

A:400 个访客,12 次转化(3.0%)。B:400 个访客,19 次转化(4.75%)。相对提升 +58%,p = 0.20。

58% 的提升听起来很大,p 值约为 0.19。只有 12 次和 19 次转化,计算器会标记数据不足:在这样的规模下数字波动太大,多一个注册就能让转化率变动四分之一个百分点。以这样的流量,一个月内能确认的最小提升超过 100%。这不是要你测得更久的理由,而是该去看看现实检验标签页的理由。

这个计算器专门要帮你发现的错误

  • 把 90% 的置信度理解成“大概没问题”。在 95% 水平下,门槛就是 95%。低于它的数字说明数据没有越过你设定的门槛;错误在于看了结果再挪门槛,而不在于这个数字。
  • 把不显著的测试当成平局。平局是围绕零的一个很窄的区间。区间很宽的不显著测试,是一个还没有答案的问题,样本量标签页会告诉你回答它要付出多少代价。
  • 进度条第一天早上变绿就宣布赢家。偷看模拟器会运行两千个什么都没变的测试,展示每天偷看的人会上线多少个“赢家”。
  • 测试五个变体,然后按 95% 报告其中最好的那个。五次比较、每次 5%,出现虚假赢家的概率是 23%。添加变体时,样本量标签页会帮你拆分 alpha。
  • 拿页面浏览量和独立用户比较,或者统计转化的时间窗口和访客不一致。z 检验假设每个访客都是一次独立的试验;其他任何情况都会夸大置信度。
  • 忽略流量分配。100,000 个访客中出现 48/52 的分配不是偶然,而是 bug,由此得出的每个结果都不可信。

A/B 测试计算器常见问题

怎么知道我的 A/B 测试是否统计显著?

输入每个版本的访客数和转化数,选择置信水平(标准是 95%),然后看结论。当 p 值小于 1 减去你的置信水平时,测试就是显著的,所以在 95% 下就是小于 0.05。这个页面还会告诉你真实提升的置信区间,以及这次测试是否有能力检测到你关注的效应,这些是单独一个 p 值说不出来的。

p 值为 0.08 对我的测试意味着什么?

意思是如果 A 和 B 的真实转化率相同,大约有 8% 的概率会偶然出现至少这么大的差距。它不是结果出错的概率,也不是“有 92% 的把握 B 更好”。在 95% 置信水平下,它意味着测试没有越过门槛;看看最小可检测提升卡片,就知道它到底有没有可能越过。

90% 的置信度够用吗?

可以够用,前提是你在测试开始前就定好了 90%,并且接受十分之一的假阳性率。永远不够用的做法是:按 95% 运行,看到 91%,然后认定 90% 才是真正的门槛。置信水平是一个承诺,说明你愿意多常被骗;看了结果再改,就破坏了这个承诺。

每个版本需要多少次转化?

没有神奇的数字,但每组少于约 25 次转化时,z 检验只是一个粗略的草图,而大多数真实测试需要几百次。真正重要的是你想检测的提升:在 5% 的基准转化率下,要以 95% 置信度和 80% 统计功效看出 10% 的相对提升,每个版本大约需要 31,000 个访客,也就是各约 1,550 次转化。样本量标签页会按你自己的转化率计算。

频率学派的 p 值和贝叶斯的“B 更好的概率”有什么区别?

p 值问的是“如果什么都没变,这个差距有多令人意外?”,并在某个门槛上给出是或否。贝叶斯数字问的是“根据我看到的数据,B 的真实转化率高于 A 的可能性有多大?”,并给出一个概率。对同一份数据,两者的方向通常一致:在双侧检验中,p 为 0.05 大致对应 B 更好的概率为 97%。这个页面两个都显示,因为人们说“置信度”时指的是贝叶斯那句话,而他们的工具显示的是 p 值。

为什么流量分配异常时计算器拒绝给出结论?

因为样本比例不匹配意味着两组不是随机分配的,而随机化正是 A/B 测试成立的全部理由。如果你计划 50/50,而实际分配靠运气出现的概率不到千分之一,就说明有某种机制在决定谁进入哪一组,而它可能和转化相关。你看到的提升可能来自这个机制,而不是你的改动。

可以用这个计算器分析人均收入或平均订单金额吗?
不行。这个页面检验的是比例:每个访客要么转化了,要么没有。人均收入是连续且严重偏斜的指标,需要对每个用户的金额做 t 检验或 bootstrap,这需要原始数据,而不是四个总数。有了每个用户的数值之后,Coddy 数学计算器中的 t 检验计算器 可以处理均值的比较。
最小可检测提升是怎么来的?

用的是和样本量计算器相同的公式,只是反过来算。根据你各组的样本量和 A 的转化率,它会找出在你的置信水平下,这种规模的测试有 80% 的把握能发现的相对提升。如果你观察到的提升低于它,说明测试对这个效应的统计功效不足,“不显著”几乎无法说明这次改动是否有效。

其他开发者工具

Coddy 编程语言插图

和 Coddy 一起学编程

开始