免费工具 贝叶斯 A/B 测试计算器
p 值说的是「如果 A、B 没差别,这样的数据有多意外」。老板和产品经理真正想问的是另一件事:B 比 A 好的可能性有多大?选错了会损失多少?填上两个版本的访客数和转化数就能算。
- Beta-二项模型
- B 胜过 A 的概率
- 本地计算
B 比 A 好的概率有多大
结果由后验分布的数值积分算出:确定性的,每次都一样,精度约 1e-9。
对照组的访客数(或用户数)。
A 组里完成转化的人数。
实验组的访客数。
B 组里完成转化的人数。
看到数据之前对转化率的假设。均匀先验是常用的中性选择。
表格里区间的宽度。
先验「转化数」+ 1。Beta(α, β) 的均值是 α ÷ (α + β)。
先验「未转化数」+ 1。
B 胜过 A 的概率
96.9%
B 的真实转化率高于 A 的后验概率。
选 B 的预期损失(百分点)
0.003
如果 B 其实更差,平均会损失的转化率。
保留 A 的预期损失(百分点)
0.528
如果 B 其实更好,平均会错过的转化率。
双尾 p 值(z 检验)
0.062
同一组数据的频率学派结论,作对照。
估计值和可信区间
按所选水平的等尾区间。提升 = B ÷ A − 1。
| 指标 | 估计值 | 下限 | 上限 |
|---|---|---|---|
| A 组转化率 | 3.01% | 2.65% | 3.40% |
| B 组转化率 | 3.54% | 3.14% | 3.95% |
| 差值 B − A | +0.52 个百分点 | −0.03 个百分点 | +1.08 个百分点 |
| 相对提升 | +17.4% | −0.8% | +39.2% |
分享这组输入:数值写在链接的 # 后面,不会发到服务器。
https://tapcub.com/zh/tools/bayesian-ab-test-calculator
版本 v1.0更新于 更新记录
这几个结果是什么意思
贝叶斯结果直接描述转化率本身(在给定数据和先验的前提下),所以很容易拿来做决定。
B 胜过 A 的概率
A 组 8,000 人转化 240、B 组 8,000 人转化 282 时,B 的真实转化率更高的概率是 96.9%。它不说明高多少,这要看区间。
预期损失
选错时平均损失多少转化率,同时考虑了「选错的可能性」和「选错的代价」。上线 B 的风险是 0.003 个百分点,保留 A 的风险是 0.53 个百分点。不少团队事先定一个阈值,领先版本的预期损失低于它就上线。
可信区间
在这组数据下,提升幅度有 95% 的概率落在 −0.8% 到 +39.2% 之间。区间很宽,而且碰到了 0:B 很可能更好,但好多少还很不确定。
旁边的 p 值
同一组数据用双尾 z 检验得到 p = 0.062,按 0.05 的标准「不显著」。均匀先验、数据较多时,B 胜过 A 的概率约等于 1 − 单尾 p 值(1 − 0.062 ÷ 2 ≈ 0.969),但两者回答的不是同一个问题。
概率再好看,也取决于数据本身。先用 SRM 检查确认分流正常;样本量事先定好,不要概率一高就停。
三步读一个跑完的实验
用整个实验期间、所有被分组用户的计数。
-
1
填计数
A(对照组)和 B(实验组)的访客数和转化数。按用户分流就填去重用户数。
-
2
选先验
没有特别理由就用均匀先验。每组几千人以上时先验几乎不影响结果;只有几十人时影响很大。
-
3
结合概率和损失做决定
把 B 胜过 A 的概率、上线 B 的预期损失、提升的区间放在一起看,按实验前定好的标准做决定。
Beta-二项后验,以及它和 p 值的区别
每个转化率先给一个 Beta 先验;观察到「访客中有多少人转化」之后,后验仍是 Beta 分布。所有结果都是对两个后验分布的积分,用数值方法算出,不做蒙特卡洛抽样,所以每次结果一样。
- p 值的思路:假设 A、B 完全一样,这样的数据有多意外?它从不直接给出「B 更好的概率」
- 贝叶斯的思路:给定数据和先验,各种转化率的可能性有多大?于是能直接得到 B 胜过 A 的概率和预期损失
- 两者都假设访客相互独立、实验期间转化率稳定;都挡不住分流不均、机器人流量或埋点失效
- 偷看照样有影响:B 胜过 A 的概率一过 95% 就停,做错决定的频率会高于这个数字暗示的水平
后验
p_A ~ Beta(α₀ + 转化_A, β₀ + 访客_A − 转化_A)
均匀先验:A 为 Beta(241, 7,761),B 为 Beta(283, 7,719)
B 胜过 A 的概率
P(p_B > p_A) = ∫ f_B(x) · F_A(x) dx
= 96.9%
上线 B 的预期损失
E[max(p_A − p_B, 0)]
= 0.003 个百分点
同样的提升,不同的数据量
均匀先验。概率和预期损失用本计算器算出;p 值来自双尾、合并方差的双比例 z 检验。
| A(转化 / 访客) | B(转化 / 访客) | 观察到的提升 | B 胜过 A | 选 B 的损失 | p 值 |
|---|---|---|---|---|---|
| 30 / 1,000 | 35 / 1,000 | +16.7% | 73.4% | 0.13 个百分点 | 0.53 |
| 240 / 8,000 | 282 / 8,000 | +17.5% | 96.9% | 0.003 个百分点 | 0.062 |
| 3,000 / 100,000 | 3,100 / 100,000 | +3.3% | 90.3% | 0.003 个百分点 | 0.19 |
第二个实验按 p < 0.05「不显著」,但 B 胜过 A 的概率有 96.9%,选 B 的预期损失只有 0.003 个百分点。要不要上线,取决于你事先定的标准。数字用本工具算出。
贝叶斯结果常被误用的地方
贝叶斯结果更好解释,但流程不对照样会出错。
把 95% 读成「B 好 95%」
B 胜过 A 的概率 95%,说的是 B 很可能更好,不是好多少。95% 的把握只提升 0.1%,未必值得上线。
概率一高就停
每天盯着、概率一过线就停,照样会增加错误决定。事先定好样本量或决策规则。
事后挑一个强先验
自定义先验应该来自以往的实验,并在看结果之前定下。样本小的时候,强先验自己就能决定结论。
跳过 SRM 检查
分流不对时,各组已经不可比,概率和 p 值都是在错的分组上算出来的。
计数从哪里来
TapCub 不负责分流,也不运行实验,这部分由你的实验工具完成。只要把每个访客所在的分组记下来,TapCub 就能给出各组的访客数和转化数。
什么是贝叶斯 A/B 测试?
用贝叶斯统计分析 A/B 测试:每个转化率用一个概率分布描述,并随数据更新。结论直接表述为 B 比 A 好的概率、每种选择的预期损失,以及提升幅度的可信区间。
「B 胜过 A 的概率」怎么算?
均匀先验下,A 的转化率服从 Beta(1 + 转化数, 1 + 未转化数),B 同理。B 胜过 A 的概率是 B 的密度乘以 A 的累积分布函数再积分。本计算器用数值积分算;240/8,000 对 282/8,000 时是 96.9%。
贝叶斯和 p 值有什么区别?
p 值是「假设没有差别时,出现至少这么极端的数据的概率」,不是「B 更好的概率」,虽然常被这么理解。贝叶斯概率恰好就是后一种说法(在给定先验下)。默认例子里 p = 0.062,B 胜过 A 的概率是 96.9%。
预期损失是什么?
如果选了的版本其实更差,平均会损失多少转化率。它把「选错的可能性」和「选错的代价」合在一起。常见做法是事先定一个很小的阈值,领先版本的预期损失低于它就上线。
先验怎么选?
均匀先验 Beta(1, 1) 是常用的中性选择,Jeffreys 先验 Beta(½, ½) 是另一种。自定义先验可以吸收以往实验的经验,比如 Beta(4, 96) 表示「大约 4%,相当于 100 个访客的证据」。每组几千人以上时,选哪种先验结果几乎一样。
贝叶斯 A/B 测试可以随时停吗?
可以随时看,但概率一过阈值就停,做错决定的频率会高于概率暗示的水平。事先定好样本量或固定的决策规则,做决定前先检查分流。
结果会像有些计算器那样每次不一样吗?
不会。很多计算器靠随机抽样,每次结果略有不同。这个计算器对后验分布做数值积分,同样的输入永远得到同样的结果。