AB 测试:当 AA 测试不起作用时

数据挖掘 统计数据 测试 实验
2021-10-05 02:38:06

在对我们的 CRM 工具(Oracle Responsys,但这可能适用于任何人)进行了 6 个月的 AB 测试后,测试显示出一些奇怪的结果,因此我们决定暂停一切,并进行一些好的旧 AA 测试。

AA 测试包括在两个分支之间随机划分用户,使两个分支具有完全相同的体验,并测试两个分支的转换率没有显着差异,这意味着两个分支实际上没有被同等对待(或者人口不是均匀分布在两个分支之间)

可以想象,这根本没有发生。我们向每个分支机构发送了大约 3500 封邮件,其中一个展示了 40% 的转化率,而另一个只有 32%,这是一个 p 值约为 10^-12 的差异

此外,我们将时间划分为 4 个时期,每个时期都与另一个时期表现出非常显着的差异。

AA 测试结果

现在我该怎么办?我想在 Oracle 的支持下对此进行理论上的讨论,但是当然,看到 AA 测试出错的每个人都会认为您没有尊重正确的方法。

我的问题:我想要一些在数据科学方面比我更有经验的人的建议,以帮助我:

- 以最清晰的方式表达我的问题,让向我出售此解决方案的公司对这里的问题感兴趣

- 了解我是否忘记检查我这边的任何内容来解释这种差异

从我们的服务器到最终客户端使用的确切过程是:

  • 我们每 x 小时向 Responsys 发送数百人的列表

  • Responsys 应该使用 java.util.random.nextfloat() 生成的随机数以独立且同分布的方式影响它们

  • 然后过滤列表以删除无法送达的人,并且每个分支都发送完全相同的电子邮件

Oracle 在他的描述中非常简洁,但我认为他们文档中的以下几行应该描述一个 iid 均匀分布。

在启动期间,对于每个电子邮件收件人:

一个。使用 java.util.Random.nextFloat() 生成范围为 [0, 1] 的随机数

湾。决定这个随机数所在的桶

C。将该存储桶中的活动发送给收件人

2个回答

我“解决”了 Oracle 支持的问题,我仍然在这里发布答案,因为我遇到的一些问题可能很有用:根据 Oracle 的支持,AB 测试程序中的这个错误在过去 9 个月内是已知的,但仅在本周得到纠正-结尾。

所以我的问题应该已经解决了(我将重新启动测试,看看结果现在是否一致),但如果有人遇到与我相同的问题,我仍然有一些指示:

  • 确保这不是统计工件:在几个独立的时期测试你的假设。我使用了 Fischer 测试,因为它完全适用于二项式框架,如果您的总体/转化率对于正常近似值来说太小,您应该使用它

  • 尊重假设检验框架:在你提出假设后开始你的检验

  • 得到一个非常低的 p 值:如果你提出 3% 的 p 值,没有人会听你对错误 AB 测试的抱怨,而且他们是对的。贝叶斯分析可能指向误报。

  • 确保用于拆分总体的随机数实际上是随机的(而不是说 50/50 拆分)

  • 想象一下您的报告可能出错的所有可能性。我以为我已经完全想象了它们,但是如果您阅读下面的错误背后的真正原因,您会发现错误报告可能隐藏在您无法控制甚至无法查看的环境中很远的地方。

我有来自 Oracle 的描述发生的错误的实际答案,以防有人遇到完全相同的问题或想知道这种错误是如何发生的:

对于由事件触发的程序,它们的引擎无法将不同的打开和点击事件关联到正确的电子邮件。如果已通过同一程序发送了多封电子邮件,Responsys 会假定该事件涉及通过该程序发送的最早的电子邮件。

就我而言,该程序可能在此期间已发送多次。

在我没有通过两个分支拆分电子邮件的期间,我使用的活动名称已经是 A(与我在测试期间的一个分支相同)

你可以看到这是怎么回事:每个打开任何电子邮件的客户都被标记为已阅读“A”电子邮件,只要他们在我开始 AB 测试之前的 3 个月内进入该程序,这会导致错误报告。

所以实际上两个分支都发送给了正确的客户,这只是来自 Responsys 端的近似算法的报告问题。

我现在尝试的解决方法是在开始测试之前创建两个全新的“活动”对象,而不是使用已经存在的活动。

以这种方式使用常客假设检验(使用 p 值来确定通过/失败)即使在无错误软件中也存在严重缺陷。我的建议是使用某种形式的贝叶斯 AB 测试。关于这一点有很多书呆子辩论(频繁测试与贝叶斯 A/B 测试)。

首先,一些参考资料。然后我们将使用在线计算器查看您的 AA 测试。

关于使用 p 值作为通过/失败标准:

关于贝叶斯 A/B 测试:

在此处输入图像描述

在此处输入图像描述

在您的情况下,常客和贝叶斯方法同意-您的“A”不等于您的其他“A”。您似乎需要考虑一个或多个当前看不见的变量。如果是数据不足的问题,两个峰就不会分离得那么好。我很想听听其他可能的解释。