AB测试结果
AB测试结果

很多刚刚进行A/B测试的企业常常会把所有精力都放在假设的提出、试验的设计上,却完全忽略了A/B测试实施过程本身。试验本身的设计确实非常非常重要,我们需要提出可靠的假设并且设计出合理的各个版本。但是如果我们认为试验一旦启动之后就不再需要操心任何事情的话就大错特错了。进行AB测试的方法和分析结果的手段同样是非常重要的事情。下面就一起分享三个在这方面我们经常会遇见的错误。

错误1:我们的试验设计了过多的版本

有些人会觉得,如果我们设计的版本越多,就越能从中获取足够的信息,但真的是这样的么?其实并不是,设计过多的版本会让试验需要的流量变得更多,更重要的是,这样的设计会在两方面影响我们的结果。

首先,过多的版本会需要大量的流量,而这常常会使得试验的测试周期变长,甚至会超过一个月。过长的测试周期会带来一个问题,用户删除cookie的可能性增加了,删除了cookie的用户在系统看来就像是一个新的访客,但是实际上并不是,这对转换率会产生影响,使得结果不再可靠。

第二问题是,随着版本数的增加,测试结果的可靠性会下降。每一个版本都存在不可靠的可能性,随着版本数增加,整个结果的可靠性会呈指数增长。如果我们把单个版本的统计显著性要求设定在95%,那么两个优化版本的统计显著性就只能保证在91%了,五个优化版本就只有80%不到了。

在多个版本存在的A/B测试中,还有一种情况会使我们选择错误的胜出版本。在查看结果的时候,我们可能会直接选择转换率提升最多的版本,即便他们的统计显著性实际上是一致的。这样的做法是不对的,因为同样的统计显著性说明在下一次测试中,另一个版本可能就会胜出了。所以在选择胜出版本的时候,我们不仅仅需要比较各个优化版本的转换率,会需要比较他们的统计显著性。

错误2:在试验正在进行的时候修改试验配置

一旦我们开始了试验,就不能够再做任何改动了,必须确保试验至始至终地毫无变化地完成。千万不要想着去修改设置、目标、版本的变化等等。也不要去修改个版本之间的流量分配。

在试验正在进行的时候修改流量分配会导致试验数据的完整性受到破坏,这就是辛普森悖论。这个统计学上的悖论指的是,当我们观察几组数据时都能得到某个特征,然后我们合并这些数据集再去观察时,就再也看不到原先的特征了。下表给出了一个例子。

第一天流量[99%|1%] 第二天流量[50%|50%] 总计
原始版本 2000/99000 = 2.02% 500/50000 = 1.00% 2500/149000 = 1.68%
优化版本 23/1000 = 2.30% 600/50000 = 1.20% 623/51000 = 1.20%

从表中可以看到,我们在第一天试验之后我们调整了流量分配,同时第一天因为不确定因素(节日、天气等等)具有较好的转换。如果我们分别去观察每天的结果就会认为优化版本是有提升的。但是如果把结果合并再去观察,却发现转换率下降了,试验失败了。实际上,优化版本很可能就是提升了的。问题就在于我们调整了流量分配,使得数据权重发生了变化。只要我们不要在试验进行的过程中修改流量,就不会出现这样的问题了。

需要指出的是,虽然我们不能修改各个版本之间的流量分配,但是在试验级别上的流量分配的修改是没有问题的。利用试验级别的流量控制,我们可以在试验刚刚开始的时候只投入少量的流量,之后再逐渐增加流量来减少风险。

同样的道理,我们不能够修改目标、版本的修改。如果有多个目标,我们也不能够去修改主目标。

错误3:错误的结束时间和分段分析

有时候,我们一观察到统计显著性达到要求之后就结束了试验,这是不对的。统计显著性不应该被用来决定停止试验的时机。它只是告诉了我们优化版本和原始版本之间的差异性。所以我们不应该等待统计显著性达到要求,正确的做法应该是去计算需要的样本数量,当样本数量达到要求时我们就可以停止试验了。

在拿到试验结果之后,我们有的时候会对结果进行分段处理,分析不同的人群的数据,为个性化或者带受众的试验提供基础。分段分析的常常会出现两个问题。第一个问题是样本数量不足或者不对称,因为分段只会使用一部分数据。第二个问题类似多版本比较的问题,过多的分段也会带来统计显著性下降的问题,这会导致更多的数据需求。我们有很多办法来避免这两个问题,但是最容易也最正确的做法是创建一个带受众的试验。