背景
我在进行两次竞选的A-B测试。
我为这两场战役准备了三个阶梯漏斗。
到目前为止,B似乎比A好,但是我怎么知道什么时候我收集了足够多的度量点?
漏斗台阶
在下面的数据中,有三个步骤。Step_1是到达我们注册页面的用户数。
Step_2是填写我们的注册表格的用户数量。
Step_3是确认其电子邮件地址的用户数量。
问题
我如何计算A比B更好的可能性,反之亦然?
或者更雄辩:
给出了A:6和B:8观测Step_3的“无限量”,Step_1的转化率分别为12.5%和13.333%。在这些情况中,有多少次A的转化率高于B,反之亦然?
Step_1 Step_2 Step_3
A 144.0 18 6
B 135.0 18 8基本原理
这意味着可以使用二项分布来预测用户转换到下一步的可能性。
到目前为止我尝试过的
到目前为止,我已经尝试使用泊松分布
from scipy.stats.distributions import poisson使用poisson.ppf,我应该可以说:“A比B好5%,B比A好25%。”
当然,我可以在函数中插入一些值,然后说“嘿,这看起来很棒”,但是我觉得我需要调用堆叠的堆栈溢出的大量知识,以确保我在做一些统计上合理的事情。
为什么泊松
在我对分布的粗略理解中:
泊松分布很像二项分布(scipy.stats.binom),但比binom大哥更适合于很少观测的预测。
泊松分布是二项分布,因为它断言两个可能的结果。
我之所以要使用二项分布,是因为在我的模拟场景中有两个结果,要么是用户沿着漏斗前进,要么是用户退出。这是bi in binomial.
泊松分布是基于两个观测不能相互影响的假设。所以,无论user_1是否成功,step_3,step_2,或者仅仅是step_1,对user_2来说都不重要,事实就是如此,他们不知道彼此的存在。
发布于 2017-03-03 23:23:43
从数学上讲,在这种情况下,二项式比泊松更精确。例如,使用Poisson,在进行转换的18名候选人中,有超过18名的概率是肯定的。泊松之所以受欢迎,是因为它易于计算。
结果也取决于你先前的知识。例如,如果与典型的转换率相比,两种结果看起来都很高,那么所有的结果都是相等的,那么您看到的差异就更显着了。
假设没有先验知识,即假设0到1之间的每一个转换速率都是相同的,如果您不知道其他的话,那么一旦考虑到您对18种可能的转换中的6种可能转换的观察,给定的转换速率r的概率就由β分布给出,在这种情况下,Beta(r;6+1,18-6+1)
从技术上讲,这不是一个概率,而是一种可能性。不同之处在于:概率描述了如果你比较相同的“平行宇宙”,你会经常观察到不同的结果,即使有声望的统计学家可能不会使用这个术语。另一种可能性是相反的:给定一个固定的结果,比较不同的宇宙,你会多久观察一种特定的宇宙。(为了更专业一点,这种描述只有在假设为“平面优先”时才是完全正确的。)在你的例子中,有两种宇宙,一种是A优于B,另一种是B优于A。
B比A更好的概率是
integral_0^1 Beta_cdf(r;6+1,18-6+1) x Beta_pdf(r;8+1,18-8+1)
您可以使用scipy.stats.beta和scipy.integrate.quad来计算,B比A更好的概率为0.746:
quad(lambda r: beta(7, 13).cdf(r) * beta(9,11).pdf(r), 0, 1)
# (0.7461608994979401, 1.3388378385104094e-08)总之,根据这个标准,B比A更好的证据并不是很有力。
更新:
这两个步骤的情况可以在概念上得到类似的解决,但计算起来有点困难。
我们有两个步骤135 / 144 -> 18 -> 8/ 6。给定这些数字,A和B以及步骤1和步骤2的转换速率是如何分布的?最后,我们对A和B的第一步和第二步的乘积感兴趣,因为我不能在合理的时间内解决积分,所以我回到了蒙特卡罗方案。只需用适当的概率得出转换率,N=10^7次数,并计算B比A更好的频率:
(beta(9,11).rvs(N)*beta(19,118).rvs(N) > beta(7,13).rvs(N)*beta(19,127).rvs(N)).mean()其结果与第一步的结果非常相似: 0.742再次支持B,并不是很有力的证据。
https://stackoverflow.com/questions/42575600
复制相似问题