引擎盖下面

万博体育入口

在一家汽车科技初创公司工作和生活。了解我们的动力是什么。

你的机制A/B测试平台背后的统计数据万博体育入口

A / B测试是Web开发中的常见做法。页面或产品的两个变体(A和B)呈现给两个随机子集。通过比较对这些页面的响应,我们可以确定一个比另一页更好。

万博体育入口,我们已经建立了自己的A / B测试平台,适合我们的需求和独立于第三方。在这篇文章中,我们探讨了平台背后的统计数据。其他重要主题,例如用户的随机化和桶的分配,除了平台的“产品定义”之外,将在未来的文章中描述。

定义和衡量成功

假设我们希望探索我们网站上的页面的潜在改进。为了衡量这种改进,重要的是要确定我们正在尝试完成的东西,并定义适当的目标。例如,如果我们更改一个按钮的颜色,我们是否希望增加点击次数,或者我们尝试在访问者点击后推动更多的购买?在许多情况下,成功沿几条线测量,看到一个更好的变体对目标更好并且更糟糕的情况并不罕见。在这种情况下,实验者的作用是权衡不同的权衡。

为了让事情保持合理的简单,我们假设我们的头脑中只有一个目标。我们想要增加点击按钮的访问量。我们将每个变体的访问者分成50/50,最终得到以下结果:

通常很难得到一个完美的分割,但是激活的数量(执行测试的页面上的唯一访问者)应该相当接近。

在这种情况下,控制产生的转换率低于变体。然而,这并不一定意味着B更好。我们如何确定我们已经观察到了足够的访客?如果这个结果只是由于机会才是怎么办?我们需要一些可信度的衡量标准来帮助我们做出决定。

贝叶斯方向

我们可以将问题建模为伯努利进程:一个人访问网站,翻转硬币,并转换硬币在头上落在头上。这是多次重复的,每次试验都是独立的并且相同分布。换句话说,我们得到一系列N.访客登陆页面,并在其中S.成功转换。但是,我们不知道参数P.(转换的概率)。得到的概率S.成功N.试验是:

的参数P.是未知的,但我们有数据D.以数量的形式S.成功的N.试用有了这些数据,我们想估计一下分布P..使用贝叶斯定理:

  • P (P|d)是后验分布吗P.我们收到数据后D.
  • P (P)先验是对概率的估计吗P.在我们收到数据之前D.
  • P(D.|p)观察的可能性是多少D.考虑到参数P.
  • p(d)是边际可能性,还是不依赖P.

所以:

概率是由我们在上面看到的同一个方程给出的:

二项分布的一个先验的常见选择是beta分布(共轭先验),参数为α和β:

我们可以根据转换率的历史数据选择我们的先前,或者选择简单的统一分配Beta(1,1).如果我们收集足够的证据,那么最终的选择并不重要。通过先前的简单统一,我们可以写下我们的后部:

所以,后面的形状是:

归一化后,后验就是Beta分布本身:

假设我们挑选Beta(1,1)作为我们的先验,我们可以表示变化A和B的后端为:

我们想知道哪个版本的性能更好,因此我们可以查看P (P一种>P.B.的).什么是概率P.(转化率)A比B大?我们可以通过对联合分布进行直接积分来计算这个概率,无论是数值积分还是手工计算,或者我们可以使用更强硬的蒙特卡罗方法。接下来我们将使用这种方法。

根据我们的计数,我们为A和B产生了两个测试版分布N.S.,然后从每个分布中抽取一个点:C一种CB.,我们重复这个过程进行多次迭代。我们可以计算所需样本数量的近似下界,但在大多数实际情况下,100,000或100万次模拟就足够了,对于现代硬件来说并不存在计算问题。

然后我们计算模拟的数量C一种>CB..如果是这种情况C模拟,概率P (P一种>P.B.的)是由比值给出的吗C/N..现在我们有可能变化A比变异B更好B,我们如何知道何时停止实验?

理论上,我们希望等待统计显著性,即。P (P一种>P.B.的)高于实验开始前选择的预先确定的水平,通常是0.95或0.99(如果B比a好,则低于0.05或0.01)。然而,我们可能会遇到一些实际问题。

首先,概率可能在低于阈值之前提前收敛。这可以在运行足够数量的模拟a / a测试时看到。防止早期决定和面对一个错误(假阳性,即得出结论,虽然是有区别),情况就不一样了,我们可以执行测试运行的条件,至少一段时间,有足够的游客数量在我们结束它之前,或者我们可以使用一个比之前更好Beta(1,1)这将在实验开始时平滑更广泛的变化。尽管如此,这是一个肮脏的修复,以防止非常早期停止测试,但它不是键入I错误的方法。

此外,在达到显著性之前,我们需要运行多长时间的测试?如果这些变化之间的转换率差别不大,或者流量很低,我们可能需要等待很长时间才能达到预期效果P (P一种>P.B.的).如果当前趋势持有,我们可以计算预期的访客人数达到意义。如果是我们的概率P (P一种>P.B.的)仍然是不确定的,我们可以决定停止测试,如果预期的访问者数量需要达到显著性,与合理可行的日常流量相比,是太大的。

有多少访客?

我们需要确定有多少游客,我们可以计算两个β分布之间的差异的分布代表的转化率和b。如果我们样品大量的两个点(低于10000000分)从这些分布和计算他们的分歧,我们得到以下分配:

当α、β >> 1和α当纯β配对时(通常当客流量超过1000时,转换率低于20-30%),我们可以用正态分布局部逼近两个β分布n(m,σ)

因此,差异的分布是高斯的特征,其特征是其平均值和方差:

与(B类似):

让我们假设B比A好。
我们需要多少访客P (P一种>P.B.的)< 0.01吗?
的概率P (P一种>P.B.的)由曲线下0点右侧的面积给出。
我们还知道,如果我们将正态分布从无限远到相对的尾部整合到≃m±2.325σ(取决于我们进入的方式),那么我们就可以获得大约0.99的曲线下的区域。

现在,如果我们假设A和B的转换率保持不变,并且继续使用之前Beta(1,1)为了简化,我们可以计算出达到显著性的预期游客数量。事实上:

因此,我们假设各变量之间有一个公平的分割N.一种N.B.N..此外,我们假设转换率保持不变,因此M.一种=S.一种/N.M.B.=S.B./N..最后:

我们需要的只是M.一种M.B.计算N.如果转换率保持不变,我们需要达到重要性的每个变化的访客数量的大致访问者。当然,他们可能不会保持不变,所以我们需要不时重新计算这个数字。重要的是要看到这个号码只是指示实验结束的“eta”。

通常,如果实验已经运行了一段时间,并且预期的访客数量非常大(例如,需要实验需要更好的时间),实验可能是不成功的,我们已经失败了证明两个变化之间存在显着差异。仔细考虑后,可以结束实验。

搭档

我们探索了一种简单的方法来计算a/B测试实验中一个变量优于另一个变量的概率。我们没有涉及到更复杂的场景,并且可以在此基础模型上进行许多改进,此外,这肯定不是唯一可能的方法(例如频繁推理)。例如,如果我们想测试更多的变量而不仅仅是两个(多变量测试),该怎么办?如果我们想比较购买量,而不是单纯的转换,该怎么办?这些将是另一天的主题!

如果您想扰乱汽车维修行业,我们正在寻找软件开发人员加入我们并帮助我们改进我们的工具和令人兴奋的核心产品!

作者
Guillaume Rostaing

纪尧姆是YourMechanic的数据科学家。万博体育入口他的兴趣包括深度学习和NLP,以及数值模拟。纪尧姆拥有斯坦福大学航空航天硕士学位。