【猎云网(微信号:ilieyun)】10月18日报道 (编译:小白)
编者注:A/B测试是为Web或App界面或流程制作两个或多个版本,在同一时间维度,分别让组成成分相同的访客群组随机的访问这些版本,收集各群组的用户体验数据和业务数据,最后分析评估出最好版本正式采用。企业采用这种测试法,通常都是为了提高产品设计和运营水平,为产品创新提供保障。
在一份关于A/B测试的报告中,Qubit的马丁·古德森认为:大多数A/B测试的结果都不太准确。Web Arts的安德烈·莫里斯则更直接,他说:“这些测试的90%的结果都是假的。”
如果他们的观点都是正确的,那么很多决策的制定都是基于这些无效的实验,并且这也有助于解释为什么很多非首席风险官经理人都对A/B测试结果的可持续性持怀疑态度。
所以,为什么有些A/B测试的结果无效呢?我们又可以对此做些什么呢?
1. 证实偏见:
安德烈·莫里斯认为,证实偏见导致了大量的误报率。这是因为,优化者自然而然地以他们自己的态度和观点作为他们测试假设的基础,并且无视与这些想法互相矛盾的信息。结果就是,一旦测试软件表明他们是对的,他们就会变得过于情绪化地依赖他们的设计,并不再继续试验。
在统计信息还未达到之前就停止测试可能会造成高度的误导性,因为它不支持长业务周期。并且,流量来源和当前的营销活动也特别需要考虑。如果可能,你应该至少运行两个业务周期的测试,以便调解日常波动并改变周末的行为。因此,测试应至少运行2至4周,具体取决于你的测试设计和业务周期。
2. 幸存偏差:
幸存偏差指的是,我们会倾向于关注旅途中幸存下来的人(比如客户回访或VIP客户),而忽视了他们所经历的过程已经影响了他们的特征与行为这一事实。即便是回访客户,也不能代表他们未遭受过消极的用户体验。VIP客户可能是你最赚钱的用户,但是他们并非固定的访客,并且他们的消费意图往往高于你的普通用户。
其中之危险在于,比如,在登陆页面的A/B测试中,假如加入回访用户,则他们的行为于从未访问过该网站的新用户行为截然不同。对于与现有用户相关的测试,排除异常值可以减少VIP客户对测试结果的影响,但若VIP客户完全不能代表普通用户时,应该考虑将他们完全从你的A/B测试中排除。
3. 统计功效:
统计功效指的是在试验中,识别两种经验之间真正差异的概率。为了达到高水平的统计功效,我们必须建立足够的样本量。但是,在商业公司中,人们通常急于获得快速的结果,并进入下一个测试。不幸的是,这种做法很多时候,会破坏测试过程。
.在开始测试之前,你应该先估计达到高水平统计功效(通常为90%)所需要的样本量。这意味着10个真正测试差异中你应该能识别出9个。鉴于样本观察和自然的随机变化,我们知道测试本身也会产生假的阳性结果。按惯例,这个比例通常设置为5%。
根据covert.com进行的一项关于1700次A/B测试的分析,只有约10%的测试达到了统计学上的显著提升。这意味着,如果我们进行100次测试,大概其中只有10个测试产生真正的提升。但是,鉴于每个站点的当前流量水平,我们估计每个测试需要运行2个月才能达到80%的统计功效。这又意味着,理论上,我们应该可以识别出90%的提升或9个测试。P值减少5%的话,我们预计会得到5个误报结果。因此,我们的测试一共可产生14个成功的测试。
此处的危险在于,人们往往没有耐心等待测试运行完整的两个月时间,直到测试显示出任何提升。并且,他们也往往在两周之后便停止了测试。这样做的问题是,过小的样本降低了测试的统计功效,很可能从90%减少到30%或者更低。在这种情况下,我们会得到3个真正的提升,以及5个误报结果。也就是说,你测试结果的63%并不是真正的提升。
在运行测试之前,最好使用一个样本量计算器,并预估获得你需要的统计功效的时间。如果你真的决定缩短测试时间,这样做可以让你知道时间缩短对测试带来的影响。如果你提前结束测试,你有极大的风险会得到假的阳性结果。
4. 辛普森悖论:
开始测试后,一定不要更改设置、变量或对照的设计,并且不要在实验过程中更改已经分配到变量的流量。在测试期间调整变量的流量分配可能会破坏测试的结果,这是由于一个被称为“辛普森悖论”的现象所致。当两组数据合并时,不同数据组中的趋势消失时,便会产生此现象。
微软的实验人员曾遇到过这个问题。当某个周五,他们为测试中的变量仅分配了1%流量,到周六那天,又将流量增加到50%,这时辛普森悖论出现了。该网站每天有一百万访客。虽然在周五和周六这两天,变量的转换率都高于对照,但是当数据被汇总时,变量得到总体转换率似乎变低了。
发生这种现象的原因在于我们会使用到加权平均数。周六的转换率更低,并且随着当天变量分配到的流量是周五的50倍,周六的转换率对整体结果的影响更大。
如若采样不均匀,变会发生辛普森悖论。因此避免使用汇总数据对子组合(比如不同的流量源或设备类型)做决定。这表明了定向测试的好处,比如,只关注单个流量来源或设备类型。
当你需要为多个流量来源或用户部分运行测试时,最好也避免使用汇总数据,并且将每个来源/页面做为单独的测试变量进行处理。然后,你可以为每个变量运行测试,直到你得到想要的统计结果。
在测试期间更改流量分配也会使得结果偏离你的预期,因为它会改变你回访客户的抽样。由于流量分配只会影响到新用户,流量份额的变化将不会因为初始流量分配引起的回访客户数量差异而发生改变。
5. 未验证你的A/B测试软件:
有时候,公司还没有进行适当的验证,即准确评估所有用户测试的关键指标,就急于开始使用A/B测试软件。由于平台、注册和注销分别由不同的团队管理,测试软件在开始测试之前未得到统一整合的现象十分常见。
在整合的过程中,也务必仔细检查所有不同的用户使用是否已经被纳入,因为人们总是倾向于将他们认为是最重要的路径放在首位。然而,用户行为很少符合你所倾向的“快乐路径”。
整合一旦完成后,接着就需要验证整合的结果,可以通过运行A/A测试或使用网络分析来确认指标是否正确评估。当然,最保险的做法就是同时检查软件测试和网络分析是否都与你的数据仓库保持一致。如果存在任何差异,在测试前发现总比在向高级管理层提交测试结果时要好得多。
6. 均值回归:
测试运行没几天后,当你发现测试结果中出现大的提升(或下降)后,立即告诉你的老板或其他团队成员,这种做法也是相当不负责任的。每个人听到这样的好消息势必会燃起希望或期待,接着他们会要求你尽早结束测试,以从提升中获益或减少损失。但是,往往,这种显著的早期提升在之后的几天或几周的测试中会逐渐消失。
忠告就是,千万别掉入这个陷阱,因为此时你看到的不过是均值回归。也就是说,如果某一指标在第一次评估时出现极端结果,在后续的观察中,该指标会逐渐趋向于平均值移动。小样本尤其容易生产极端结果,因此,务必小心不要在测试刚开始生产数据时就将所得到的任何结果解读成你的转换率。
7. 基于会话指标的谬误:
大多数A/B测试软件使用标准统计测试来确定变量的表现是否显著区别与对照组。
但是,如果你使用会话级别的指标,比如每个会话的转化,你便会遇到问题。A/B测试软件会将用户分配到A组或B组,来防止相同的访客看到两个变量,并确保用户一致。而由于用户可以拥有多个会话,因此会话并不独立。
Skyscanner的分析表明,假如访客有多个会话的话,他们的转化可能性更高。另一方面,如果用户为多会话用户,则其生成的单个会话的转换可能比较低。随着Skyscanner模拟这一现象会如何影响他们的转换率预测时,这种独立性的缺乏值得关注。他们发现,当他们随机选择用户而非会话时,A/B测试过程中显示,方差要大于显著性计算中假定的方差。
Skyscanner发现,由于平均会话次数较高,该影响在长期实验中更明显。这意味着,基于会话转换率(即用户随机化)且持续一个月时长的测试出现的误报率是正常预期的三倍。但是,假如测试基于用户(即随机化的会话而不考虑用户)时,方差符合通过显著性计算所预测的方差。
此外,每当你使用未经过随机化定义的概率指标时,也会出现上述问题。因此,如果你采用用户随机化方式,则每页浏览、每次点击或点击率指标等都会受到上述相同问题的影响。Skyscanner的团队给了三种方式以避免测试结果受此统计现象的误导:
1) 在随机化用户时,务必遵守用户级别指标,这样你可以避免误报率上升;
2) 当你不得不使用将会增加误报倾向的指标时,有一些方法可以预测真实方差并计算准确的p值。
3)如若计算真实方差和准确的p值不仅计算复杂且十分耗时,你就只能接受更高的误报率。但是你可以使用AA测试来预测统计学现象对指标方差的夸大程度。
结论:
当你试图避免上述A/B测试的陷阱时,关键在于你的测试的开发和运行要有一个强大、坚实的过程。测试的良好框架可以确保假设都是基于证据而非直觉,并且你已经预先认同测试参数。确保你已经计算过所需的样本大小,以及测试至少要运行多久才能够获得你需要的统计功效。
完整运行测试其实是存在机会成本的,因此有时你可能会希望提前结束测试。如果你能接受较低级别的统计信心和误报率上升的风险,提前结束测试没有问题。事实上,有证明表明,只要你持续运行测试,它可以在很大程序上弥补误报率的增加。