【问题标题】:Likeliness of "A" being better than "B" using Poisson distribution使用泊松分布“A”优于“B”的可能性
【发布时间】:2017-07-23 08:52:48
【问题描述】:

背景

我正在对两个广告系列进行 A-B 测试。

我为这两个广告系列设置了三步漏斗。

到目前为止,B 似乎比 A 好,但我怎么知道我什么时候收集了足够的测量点?

漏斗步骤

在下面的数据中,分为三个步骤。 Step_1 是到达我们注册页面的用户数。

Step_2 是填写我们的注册表单的用户数

Step_3 是确认其电子邮件地址的用户数。

问题

如何计算 A 优于 B 的可能性,反之亦然?

或者更雄辩:

假设我们在 Step_3 中有 A:6 和 B:8 观察值的“无限数量的案例”,以及 Step_1 的 A:12.5% 和 B: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%。”

当然,我可以在函数中插入一些值,然后说“嘿,这看起来很棒”,但我觉得我需要调用 Stack Overflow 的 Stacked Oracles 的大量知识来确保我在做统计上合理的东西。

为什么是泊松

以我对分布的谦虚理解:

泊松分布与二项分布 (scipy.stats.binom) 非常相似,但它比 binom 老大哥更适合涉及很少观察的预测。

泊松分布是一个二项分布,因为它断言两种可能的结果

之所以要使用二项式分布,是因为在我的模拟场景中有两种结果,要么是用户进入漏斗,要么是用户退出。这是 binomial 中的 bi

泊松分布基于两个观测值不能相互影响的假设。因此,无论 user_1 是否进入 step_3、step_2 或只是进入 step_1,对于 user_2 来说都无关紧要。很多情况下,他们都不知道彼此的存在。

【问题讨论】:

  • 看起来更适合stats.stackexchange.com
  • 我感觉 stats.stackexchange.com 会给我一个我无法理解的答案,因为它只包含数学公式。我以前在那里问过问题。如果我的数学和 Python 一样流利,我只会阅读 wikipedia page for poisson,我确实这样做了,但仍然让我不确定。
  • @firelynx 你的困境完全可以理解。我敢肯定,一些强硬派将对您的问题进行近距离投票,因为严格来说,这似乎是题外话。不过,也许你会先得到答案:)
  • 您能否详细说明这些步骤和数字的含义,以及如何将它们转化为衡量“更好”的指标?你为什么泊松是要走的路的理由也会有所帮助。

标签: python pandas numpy scipy statistics


【解决方案1】:

在这种情况下,从数学上讲,二项式比泊松更精确。例如,使用 Poisson,您将获得 18 位候选人中超过 18 位进行转换的正概率。泊松之所以受欢迎,是因为它更易于计算。

结果还取决于您的先验知识。例如,如果与典型转化率相比,您的两种结果看起来都非常高,那么在其他条件相同的情况下,您看到的差异更为显着。

假设没有先验知识,即假设在你一无所知的情况下每个转化率在 0 和 1 之间的可能性相同,那么一旦你考虑到你的观察,给定转化率的概率r Beta distribution 给出了 18 个可能的转换中的 6 个,在本例中为 Beta(r; 6+1, 18-6+1)

从技术上讲,这不是概率,而是可能性。区别如下:概率描述了如果您比较相同的“平行宇宙”,您将观察到不同结果的频率,即使有信誉的统计学家可能不会使用该术语。可能性是相反的:给定一个比较不同宇宙的固定结果,你会多久观察一次特定类型的宇宙。 (更专业地说,这个描述只有在假设“平坦先验”的情况下才完全正确。)在你的情况下,有两种宇宙,一种 A 优于 B,另一种 B 优于A.

那么B优于A的概率为

integral_0^1 dr Beta_cdf(r; 6+1, 18-6+1) x Beta_pdf(r; 8+1, 18-8+1)

您可以使用scipy.stats.betascipy.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 的第 1 步和第 2 步的乘积感兴趣。由于我无法在合理的时间内用 scipy 求解积分,所以我退回到蒙特卡洛方案。只需用适当的概率 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。同样,不是非常有力的证据。

【讨论】:

  • 原谅我的无知。 “0.746 概率”是指 4 例中有 3 例?
  • 是的,完全正确。数学模型是有大量的平行宇宙,或者如果你喜欢可以想象的场景,那就是科幻。只有其中的一部分与您的观察结果兼容。在这个子集中,大约 3 个季度包括优于 A 的 B 和优于 B 的四分之一。
  • 太棒了!也请把它放到你的答案中
  • 添加了一个段落。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-20
  • 2022-01-10
  • 2018-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多