5.3 A/B测试在实际工作中的使用指南

5.3 A/B测试在实际工作中的使用指南

本节着重介绍实际工作中A/B测试的使用方法。

让我们从几道笔者经常使用的面试题开始讨论,引出我们要解决的实际问题。

●面试题1:产品团队发现某按钮的点击率较低,体验后认为按钮的“点击区域面积”太小,所以希望增大按钮的“点击区域面积”并做客户端上的A/B测试实验。对照组的按钮点击区域面积为14毫米×14毫米,实验组的按钮点击区域面积是19毫米×19毫米,实验组的按钮点击率是对照组的4倍且统计置信,请问该数据是否有问题?如果没问题,预期收益是多少?如果有问题,可能的原因有哪些?

●面试题2:某网站做增加内容的A/B测试,如果设计实验组的候选集数量从每天10000篇增加至15000篇,对照组内容维持10000篇,实验组和对照组的用户虽然无法保证完全隔离(即对照组的用户仍然可能通过非信息流推荐的方式看到实验组的内容,比如好友分享),但完成了正确的实验周期和实验方式,我们看到数据收益为实验组比对照组的人均阅读时长涨幅10%。那么作为策略产品经理的你,如何评估实验组的真实收益?真实值是否为涨幅10%?如果不是,那么是更高还是更低?

●面试题3:某策略产品经理将某种策略应用包近3日注册的新用户并取得了正向收益(比如点击率涨幅50%)。现在该策略产品经理声称将该策略应用至全体用户时也可以获得全量用户点击率涨幅50%。这种说法是否正确?

●面试题4:某策略产品经理设计了一次A/B测试,将用户平均分为两组,其分流方式如下,请做出判断。

 •用户编号1~500为A组、编号501~1000为B组,该分流方式是否合理?

 •用户编号1、3、5、…、999等奇数组为A组、编号2、4、6、…、1000等偶数为B组,该分流方式是否合理?

 •用户编号1、4、5、8、9、13、…、997、1000等(4k+1、4k+4、…)组为A组、编号2、3、6、7、…、998、999等(4k+2、4k+3、…)组为B组,该分流方式是否合理?

 •用户编号按10进行“取模运算”,换句话说,任选5种尾数(比如1、2、4、6、8)进入A组,其他的进入B组,该分流方式是否合理?

●面试题5:某策略产品经理对全量用户的A/B测试,使用的是“大质数取模”的分流方法,将用户相对均匀地分为三个数据桶,分别记为a、b、c桶,其中a、b两组用作实验组,c组用作对照组。从1月上旬开始做实验,分别上线了4种策略,a、b两组分别上线了策略p/q、策略x/y,其中第一次策略p和x持续一周,第二次策略q和y持续一周,该策略产品经理的实验方式是否正确?

●面试题6:某策略产品经理做了对全量用户的A/B测试实验,实验观察指标为X/Y/Z/W/A共5个指标,并且认为这5个指标全部是一级指标,实验后发现指标X/Y/Z/W统计波动,A指标涨幅为5%且满足95%置信度,于是该策略产品经理得出结论:“该实验A指标涨幅为5%并统计置信,策略应该上线。”该结论是否正确?

●面试题7:某策略产品经理做了对全量用户的A/B测试,流量比例为实验组10%、对照组10%,在实验的第三天该策略产品经理由于看到数据量较小,将实验组和对照组的流量分别切换至30%和30%,并在第7天重新得到数据结论。该方式是否正确?

●面试题8:某策略产品经理于1月中旬做了对全量用户的A/B测试,实验结果为某指标正向幅度10%,但实验策略并未全量。同时于2月下旬重新用相似的策略做了A/B测试,实验结果为同一指标正向幅度15%,于是得出结论:“新策略比旧策略的效果好,绝对值提升了5%。”该结论是否正确?

笔者参与并设计了上述部分面试题。我的答案如下。

●答案1:数据有问题,预期收益为1.84倍。假设用户随机点击(类似于古代估算圆周率时的“投针试验”),实验组按钮面积为对照组按钮面积的1.84倍。所以,如果实验组相对于对照组仅仅改变按钮点击区域面积,点击率变为了4倍,大概率存在问题。问题的排查路径依次是统计口径(双方的统计口径是否相同)、打点情况(是否漏报了某一组打点)、实验置信度(一型错误概率在0.05以内但很可能统计功效不够)、分流均匀性(抽样看实验组和对照组的用户特征分布)。通过以上排查流程,基本可以找到数据问题。如果实在没办法,需要开一次翻转实验,重新看实验结果。

●答案2:对于这个例子而言,实验组与对照组的差异应该大于10%,因为“网络效应”的存在使得对照组也受到了粘连,所以对照组的数值会比真实值(完全隔离的理想态)高一些。

●答案3:由于统计上辛普森悖论的存在(下文介绍),这种在部分用户上验证有效的策略无法直接用于全量用户。

●答案4:4种分流方式都有问题。一般来说,用户编号的生成并不是随机的,许多公司的用户ID是顺序生成,所以按1~500和501~1000的方式分组会让老用户更多在A组,新用户更多在B组。其他分流方式也都无法将用户均匀地分成两组。一种比较原始的分流方法是“大质数取模”,现在主流的A/B测试平台均使用十分复杂的哈希算法进行分流。

●答案5:这种实验方式是错误的,且不说“大质数取模”的方案在实际工作中容易产生分流误差,A/B测试是有延滞效应的,两个策略之间不能使用同一分流算法,必须重新切割用户。否则,对于A组用户来说,先后经历策略p和x,就会产生强交互作用,导致最后的数据不可信。

●答案6:这种获得结论的方式是错误的,这也是策略产品经理在实际工作中最容易犯的错误之一,涉及统计学中的多重检验问题。从概率计算的角度讲,每一个结果成立的概率是95%,那么5个指标的结果都正确的概率为0.955=0.774,所以我们在5个指标中看到至少有一个指标出错(5个指标中有1、2、3、4个指标出错)的概率为0.226,此时置信度不再是传统意义上应该满足95%,而是77.4%。观察的指标越多,置信度越低。

●答案7:这种实验开启方式是错误的,将使得每组用户中包含20%的4天策略影响的用户和10%的7天策略影响的用户。用户在进入实验时有震荡效应,所以实验需要被延长时间至少至第9天,并且忽视掉最初10%的用户影响,才可以近似得到可用结果。一型错误的概率计算需要使用自由度(实验人数减一),而这种实验方式将无法准确度量策略持续时长的自由度,建议类似情况下重新开启相同的实验并重新分组。

●答案8:A/B测试存在时间窗口效应,不同时间段的数据结论只能对比正向还是负向,不能对比数值,因为隔了30天以上的用户群会发生变化。这件事情告诉我们,即使历史上做过正向的实验也不能直接拿来使用,用户群改变可能会使实验结果发生较大变化。

总的来说,这几道面试题分别考察了策略产品经理对于A/B测试的多个知识点,所以我们以面试题为引子来剖析A/B测试。我们将从以下四点出发来展开。

●A/B测试的外部效度。题目1、题目2和题目3主要考察A/B测试的收益预估问题和数据排查思路,以及A/B测试全量后效果的影响因素之辛普森悖论和网络效应。

●A/B测试的分流算法。题目4考察A/B测试中底层分流算法的设计思路,看看几种假设方案是否可以满足Fisher三原则中的随机化原则。对于策略产品经理而言,部分无法由公司级A/B测试后台支持的实验可能需要自己设计实验方案。这个例子有助于理解分流原理,避免犯错。

●A/B测试的常见误区。题目5、题目6和题目7主要考察A/B测试的常见误区。笔者经验中常见的问题主要为忽视了系统本身的震荡效应、延滞效应、对照组、多重检验问题、实验不同时等。

●A/B测试的局限性。题目8主要考察了A/B测试的局限性,主要分为网络效应、时间波谷效应和时间窗口效应。

上一章 封面 书架 下一章