随着流量红利的逐渐消失,越来越多的公司开始重视数据驱动、试验驱动的精细化运营思想,并积极进行实践。有些公司在考虑采购第三方试验平台,有些公司考虑自建试验平台。
我们和这样的公司都有深入的接触,发现很多公司对试验平台应该是什么样的,有什么样的坑,以及怎么避免才坑没有完整清晰的认识。
为此,我们发起这个 Chat 活动。在这次活动中,将会用最简单易懂的语言说清楚,关于 A/B 测试 “ 从入门到放弃 ” 你所需要了解的一切,希望可以提高大家对于 A/B 测试的认识水平,更好服务各个企业的精细化运营。具体内容主要有以下四个部分:

什么是 A/B 测试
怎么做 A/B 测试
A/B 测试中容易遇到哪些坑,如何避免
科学高效易用的 A/B 测试平台是什么样的

什么是 A/B 测试

在自然界长久以来就存在 A/B 测试的活动,事实上,物种的演化本质上就是一种 A/B 测试的过程:

生物在繁衍过程中,会发生基因突变,从而导致后代的性状发生各种不同的变化,严酷的自然选择会把适应环境变化的性状和其对应的基因保留下来。

保留下来的基因,又会发生基因突变,如此往复循环,经过数十亿年的 A/B 测试,自然界才进化出现在这样丰富多才的生物世界。
在人类社会的活动中有意识的引入 A/B 测试,是从疾病治疗的研究开始的。
举个例子:
15 世纪末,人类开启了大航海的伟大时代。然而航海中容易出现坏血病,发病以后,病人症状会从牙龈出血发展到全身溃烂而死,非常严重。现在我们都知道,得坏血病是因为水手们长期漂流在海上,没有新鲜蔬菜水果,缺乏维生素 C 导致的,但当时不知道,只好胡乱实验,有喝稀硫酸的,有喝海水的,但基本都没用,有时碰巧好了,但闹不清究竟是喝什么好的。几百年过去,一直找不到真正合适的药。
到了 1747 年,英国军舰上有一位医生姆斯 · 林德,灵机一动,想出一个 “ A/B 测试 ” 的方法,把 12 位生病的海员分成 6 组,每组两人,分别用不同的验方,比如第一组吃橘子、柠檬,第二组喝稀硫酸,第三组喝海水 …… 结果六天之后奇迹发生了,第一组吃橘子、柠檬的好了,其他组都没好,反复试都是这个结果,于是真正对症的药找到了,就是吃水果。
虽然因为当时科学还不够发达,背后的病因(缺乏维生素 C)并不知道,但确切有效的疗法和药有了,这就够了。这就是 “ A/B 测试 ” 的神力。

林德发明的科学方法几经周折,直到林德去世后才最终被承认,坏血病从此在英国海军中被消灭,英国也因此成为强大的 “ 日不落帝国 ”,人们彻底信服了林德的 “ A/B 测试 ”。
后来,临床医学上的 A/B 测试又经过了很多的实践和迭代,美国耶鲁大学的汤姆教授在 1938 年正式把 A/B 测试系统化,理论化,学科化,成为现代 A/B 测试的开端。
现在 A/B 测试已经成为医学制药行业的标准操作流程,在美国,没有经过 A/B 测试的新药是不能上市的。

在互联网研发实践中的 A/B 测试是指:为了验证一个新的产品交互设计、产品功能或者策略、算法的效果,在同一时间段,给多组用户(一般叫做对照组和实验组,用户分组方法统计上随机,使这多组用户从统计角度是无差别的)分别展示优化前(对照组)/ 优化后(实验组,可以有多组)的产品交互设计、产品功能或者策略、算法,并通过数据分析,判断优化前后的产品交互设计、产品功能或者策略、算法在一个或者多个评估指标上是否符合预期的一种实验方法。

从传统医学 A/B 测试中汲取经验的互联网 A/B 测试,已经经历了 20 年左右的发展,有了一套成熟的实验操作步骤。下面借助上面的流程图介绍一下一般的 A/B 测试操作步骤:首先,A/B 测试是服务于特定业务目标的,这些业务目标必须有明确的指标可以进行衡量。互联网产品通常关注的是转化率指标(具体可以是点击转化、下载转化、注册转化、下单转化等)。
确定目标及衡量指标以后,我们需要通过各种手段了解该目标的影响因素,这些手段包括不限于:漏斗分析、热图分析、深入的用户访谈、和竟对的数据对比、设计方案对比、头脑风暴等。除此之外,我们还可以充分利用前人对消费者心理的研究成果,比如霍布森选择效应和罗森塔尔效应。

还有 Wider Funnel 提出的LIFT模型,可以帮助我们发现页面中存在转化障碍的瓶颈,以及从价值主张,清晰度,相关性、注意力分散、紧迫性、焦虑感六个维度来体系化地对障碍进行梳理和攻克。通过这个步骤可以提出一些对目标改进有帮助的解决方案,这时候我们就是在建立假设:使用我们提出的新的解决方案,可以优化目标指标值。

有了试验的假设,下一步就是开始进行试验测试方案的设计。根据我们要优化的页面的历史数据,可以得到希望做试验的页面的原始版本指标值,每日UV数,再根据我们对试验结果的初步预测,也就是各个试验版本相对原始版本的能提升的比例,可以得到实验大致需要分配多少流量,试验的周期多长,才能达到一个合理的统计功效,以较大的概率完成试验效果的收敛。

在这个过程中,可能还需要考虑试验面向的群体是否要做一些特殊的限定,比如,有些业务需要针对新用户进行试验,这时候就需要在试验设置中进行限定,同时对前述判断统计功效的基础数据做一些修正,得到新的试验方案设计。

试验方案设计好了以后,最好让实验按照设计跑起来,到了设计的时间点再去观察实验数据,而不是提前观察。如果需要在实验中间不断观察实验数据做出是否终止实验的决定,则需要根据观察频率对试验效果数据进行一些调整,以使试验数据修正到符合预期的实验置信度。准确理解这个事情需要有比较深入的数学理论基础,如果有必要可以另开主题分享,这里不做深入分析。

到了试验方案设定的结束时间以后,试验停止,并计算试验的效果数据,这里面一般会统计设定置信度下(一般是 95 %)的置信区间,实验的显著性指标 p-value,统计功效等,通过这些指标来判定试验的效果是否符合预期。

A/B 测试容易遇到哪些坑

下面我们总结一下 A/B 测试容易遇到的一些坑。

辛普森悖论
辛普森悖论(Simpson’s Paradox)是英国统计学家 E.H.辛普森(E.H.Simpson)于 1951 年提出的悖论,即在某个条件下的两组数据,分别讨论时都会满足某种性质,可是一旦合并考虑,却可能导致相反的结论。

举一个辛普森悖论的简单小例子:一个大学有商学院和法学院两个学院。这两个学院的女生都抱怨 “ 男生录取率比女生录取率高 ”,有性别歧视。但是学校做总录取率统计,发现总体来说女生录取率却远远高于男生录取率!

商学院男生录取率 75 % 高于女生录取率49%,法学院男生录取率 10 % 也高于女生录取率 5 %,但是总计来说男生录取率只有 21 %,只有女生录取率 42 % 的一半。

为什么两个学院都是男生录取率高于女生录取率,但是加起来男生录取率却不如女生录取率呢?主要是因为这两个学院男女比例很不一样,具体的统计学原理我们后面会详细分析。
这个诡异(反直觉)的现象在现实生活中经常被忽略,毕竟只是一个统计学现象,一般情况下都不会影响我们的行动。但是对于使用科学的 AB 测试进行试验的企业决策者来说,如果不了解辛普森悖论,就可能会错误的设计试验,盲目的解读试验结论,对决策产生不利影响。

我们用一个真实的医学 AB 测试案例来说明这个问题。

这是一个肾结石手术疗法的 A/B 测试结果:

看上去无论是对于大型结石还是小型结石,A 疗法都比 B 疗法的疗效好。但是总计而言,似乎 B 疗法比 A 疗法要好。

这个 AB 测试的结论是有巨大问题的,无论是从细分结果看,还是从总计结果看,都无法真正判断哪个疗法好。

那么,问题出在哪里呢?这个 AB 测试的两个实验组的病历选取有问题,都不具有足够的代表性。参与试验的医生人为的制造了两个试验组本身不相似,因为医生似乎觉得病情较重的患者更适合A疗法,病情较轻的患者更适合 B 疗法,所以下意识的在随机分配患者的时候,让 A 组里面大结石病历要多,而 B 组里面小结石病历要多。

更重要的问题是,很有可能影响患者康复率的最重要因素并不是疗法的选择,而是病情的轻重!换句话说,A 疗法之所以看上去不如 B 疗法,主要是因为 A 组病人里重病患者多,并不是因为 A 组病人采用 A 疗法。

所以,这一组不成功的 AB 测试,问题出在试验流量分割的不科学,主要是因为流量分割忽略了一个重要的 “ 隐藏因素 ”,也就是病情轻重。正确的试验实施方案里,两组试验患者里,重病患者的比例应该保持一致。
因为很多人容易忽略辛普森悖论,以至于有人可以专门利用这个方法来投机取巧。举个例子,比赛 100 场球赛以总胜率评价好坏。取巧的人专找高手挑战 20 场而胜 1 场,另外 80 场找平手挑战而胜 40 场,结果胜率 41 %;认真的人则专挑高手挑战 80 场而胜 8 场,而剩下 20 场平手打个全胜,结果胜率为 28 %,比 41 % 小很多。但仔细观察挑战对象,后者明显更有实力。

从这几个辛普森悖论的例子出发,联想到我们互联网产品运营的实践里,一个非常常见的误判例子是这样的:拿 1% 用户跑了一个试验,发现试验版本购买率比对照版本高,就说试验版本更好,我们要发布试验版本。

其实,可能只是我们的试验组里圈中了一些爱购买的用户而已。最后发布试验版本,反而可能降低用户体验,甚至可能造成用户留存和营收数额的下降。
那么,如何才能在 AB 测试的设计,实施,以及分析的时候,规避辛普森悖论造成的各种大坑呢?

最重要的一点是,要得到科学可信的 AB 测试试验结果,就必须合理的进行正确的流量分割,保证试验组和对照组里的用户特征是一致的,并且都具有代表性,可以代表总体用户特征。

在这里,特别要提出一下这个问题的一个特殊属性:在流量试验越大时,辛普森悖论发生的条件越有可能触发。这是一个和大数定理以及中心极限定理等 “ 常规 ” 实践经验完全不同的统计学现象。换句话说,大流量试验比小流量试验可以消除很多噪音和不确定性,但是反而可能受到辛普森悖论的影响。

举个例子说明:如果只是拿 100 人做试验,50 人一组随机分配,很可能是 28 男 22 女对 22 男 28 女,每个性别只是相差 6 个人而已。如果是拿 10000 人做试验,5000 人一组随机分配,很可能是 2590 男 2410 女,对 2410 男 2590女,每个性别就差了 180 人,而这 180 人造成的误差影响就可能很大。

除了流量分配的科学性,我们还要注意 AB 测试的试验设计与实施。
在试验设计上,如果我们觉得某两个变量对试验结果都有影响,那我们就应该把这两个变量放在同一层进行互斥试验,不要让一个变量的试验动态影响另一个变量的检验。如果我们觉得一个试验可能会对新老客户产生完全不同的影响,那么就应该对新客户和老客户分别展开定向试验,观察结论。

在试验实施上,对试验结果我们要积极的进行多维度的细分分析,除了总体对比,也看一看对细分受众群体的试验结果,不要以偏盖全,也不要以全盖偏。

一个试验版本提升了总体活跃度,但是可能降低了年轻用户的活跃度,那么这个试验版本是不是更好呢?一个试验版本提升总营收 0.1 %,似乎不起眼,但是可能上海地区的年轻女性 iPhone 用户的购买率提升了 20 %,这个试验经验就很有价值了。

分层试验,交叉试验,定向试验是我们规避辛普森悖论的有力工具。

规避辛普森悖论,还要注意流量动态调整变化的时候新旧试验参与者的数据问题,试验组和对照组用户数量的差异问题,以及其他各种问题。
时至今日,这个问题依然是科学研究的一个活跃话题。

不考虑试验结果的统计有效性
直接使用简单的采样统计量(例如,转化率的平均值)作为试验的结论。我们要关注试验的显著性水平(p-value),统计功效,置信度和置信区间,这几个统计量可以判断试验结果的有效性。第四节会对这几个统计量进行介绍。

频繁调整流量
有些试验者比较着急,每天都去观察数据,发生数据有一些波动,或者由于自己想法发生变化,就会去调整流量,并且调整流量的方向不唯一(从小到大和从大到小混合在一起)。
这样会带来一个问题:一个用户可能短时间进入不同版本。
这会导致我们无法确定这个用户的行为是由哪个版本带来的效果,这就是最终试验的数据不准确,没有参考价值。
有些第三方试验平台会提供人工智能分流的功能,也就是根据实时的数据效果来调整流量,目的是达到流量利用效率的最大化。
有些用户不理解这种智能分流可能带来的后果,盲目使用,结果导致试验的数据完全是不可用的。
当然,如果我们能够确定一个用户只会到达试验页面一次,那么这种频繁调整流量或者使用人工智能分流的做法是 OK 的,因为这种只来一次的用户是无法进入多个试验版本的。

盲目分层
A/B 测试平台一般会提供分层试验的功能。分层实验的好处是,可以让不同层的实验都能拿全部流量来做试验。所以,有试验者做试验的时候,不假思索就进行分层试验,但是往往忽略了这一点:做分层的 2 个试验,是需要需要保证 2 个试验所改动的变量相互独立,相互不影响,这样 2 个试验的数据结果才都是可信的,否则有可能给出错误的数据,作出错误的决策。
科学高效易用的 A/B 测试平台是什么样的
那么下面介绍一下,科学高效易用的 A/B 测试平台应该具备什么特征。这些特征是结合我们对 A/B 测试的理论上的深入理解,以及服务了几千个客户的基础上提出的。

科学性
因为 A/B 测试是一种科学试验,因此科学性是最重要、最基础的部分,一旦失去了科学性,这个平台就没有了存在的价值。科学性有很多方面,下面主要从分流和数据统计2部分展开介绍。

分流的科学性
前面介绍 A/B 测试容易遇到坑,提到辛普森悖论,也提到了如何从分流上避免辛普森悖论:保证试验组和对照组里的用户特征是一致的,并且都具有代表性,可以代表总体用户特征。
那么如何做到这一点呢?
实践中一般通过收集用户设备、系统、浏览器设置、网络信息来获得用户的一些基本特征:操作系统名称及版本、浏览器名称及版本、语言设置、国家地区设置、通过 IP 得到的地理位置信息等,通过把这些信息加入到分流的函数中,可以实现不同流量组的用户特征的一致性。这些数据通常是可以拿到而且不妨碍用户的隐私的。
另外还可以让用户补充更多的信息,把这些信息上传到 A/B 测试平台上,以便更好识别用户的属性,更好对用户进行科学的流量分割。

数据统计的科学性

显著性水平 (p-value)
显著性水平 p 是指在原假设为真的条件下,样本数据拒绝原假设这样一个事件发生的概率。例如,我们根据某次假设检验的样本数据计算得出显著性水平 p = 0.04;这个值意味着如果原假设为真,我们通过抽样得到这样一个样本数据的可能性只有 4 %。
那么,0.04 这个概率或者说显著性水平到底是大还是小,够还是不够用来拒绝原假设呢?这就需要把 p 值和事先设定的显著性标准 α 来比较确定。假设检验的决策规则:
显著性水平 p 是指在原假设为真的条件下,样本数据拒绝原假设这样一个事件发生的概率。例如,我们根据某次假设检验的样本数据计算得出显著性水平 p = 0.04;这个值意味着如果原假设为真,我们通过抽样得到这样一个样本数据的可能性只有 4 %。
那么,0.04 这个概率或者说显著性水平到底是大还是小,够还是不够用来拒绝原假设呢?这就需要把 p 值和事先设定的显著性标准 α 来比较确定。假设检验的决策规则:

              1. 若 p ≤ α,那么拒绝原假设;2.若 p > α,那么不能拒绝原假设。

统计功效
在假设检验中,统计功效是指当备择假设为真时正确地拒绝原假设的概率。换言之,统计功效就是当备择假设为真的时候将其接受的概率。
影响统计功效的因素有以下3点:
显著性标准 注意我们前面提到的假设检验的决策规则:
• 若 p ≤ α,那么拒绝原假设;
• 若 p > α,那么不能拒绝原假设。
如果一个试验算出来的p值固定的情况下,α 越大,越容易拒绝原假设而接受备择假设。因此,备择假设为真时,α 越大,拒绝原假设的概率就越大,统计功效越大。也就是统计功效和 α 正相关。
测试版本相对对照版本的效应值
一般来说,效应值是量化现象强度的一个数量值。在我们这里,现象强度指的是测试版本在目标指标上相对对照版本提升了多少,因此这个提升比例就是效应值。
样本数量
样本数量越大,试验内在的采样误差便越小,统计功效便越大。反之亦然。

置信区间
置信区间(Confidence interval)就是用来对一个概率样本的总体参数的进行区间估计的样本均值范围。置信区间展现了这个均值范围包含总体参数的概率,这个概率称为置信水平。
置信水平代表了估计的可靠度,一般来说,我们使用 95 % 的置信水平来进行区间估计。简单地讲,置信区间就是我们想要找到的这么一个均值区间范围,此区间有 95 % 的可能性包含真实的总体均值

易用性
让试验者专注于提出创新的改进方案,而不用在如何接入试验平台、如何做数据分析、如何和研发工程师交互、争取研发工程师支持上花太多时间,可以提高试验者的创新效率,也是试验平台的重要职责。
下面介绍可以通过哪些方面提高试验平台的易用性。

简单易用的 SDK
提供简单易用的 SDK 给客户,可以减少客户接入平台所要花费的时间。因为进行试验的场景有可能在 iOS、Android、H5、小程序等不同平台上,所以需要有不同平台的 SDK。对每个平台的接入需要做到符合该平台的开发者习惯。
例如,Android 的开发者喜欢 Gradle 引入SDK,那么我们就提供 Gradle 引入的方式。同时,接入 SDK 所必须调用的接口尽量少,减少接入成本。对于高阶的开发者,提供功能丰富的可选接口,以满足不同的需求。

所见即所得的可视化编辑器
很多试验者需要进行页面设计上的改版,而这些改版往往不是推倒重来式改版,而是在原先的版本上做的一些优化,并且频率比较高。如果总是去让开发人员做这种简单的优化,人力成本、沟通成本都会很高。
因此,试验平台提供一个所见即所得的可视化编辑器,让试验者可以方便地按照自己的意图进行改版优化工作,是非常有必要的。当然,进行这样的编辑器开发对试验平台的开发团队来说,会遇到很多技术挑战。编辑后的页面可能发生闪烁、图片的适配问题等,需要有一定的技术实力才能很好解决这些问题。

其他
试验控制平台做到简单易用,除了在产品设计上下功夫,还需要注意做好试验引导功能,帮助试验者流畅创建试验、接入试验、运行试验,以及做好后续的数据分析和决策工作。
另外,提供一个准确易读的试验平台操作手册也是必要的。试验运行前的调试功能是一个必备的基础功能,可以避免上线以后再发现问题的尴尬。另外,受众定向、白名单功能、账户管理等功能也是比较常用的A/B测试平台功能,需要在平台设计中考虑进去。

欢迎各位大佬小白加群群里面有很多资料你想要的我都有:656721740

浅谈A/B测试 ,看这一篇就足够了相关推荐

  1. 终端软件测试风险,浅谈三大终端测试 - 测试泡泡 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    浅谈三大终端测试 K#JCx8q6v0文章出处:新浪科技 作者:李波 马治国 孙元宇 发布时间:2005-11-01 ac"x"E h)?+CywU3J0WCDMA.CDMA200 ...

  2. 浅谈互联网金融测试平台规划

    浅谈互联网金融测试平台规划 最近,测试团队的测试平台逐渐成型,记得16年我刚来公司时做的一个规划,打算将测试平台建设起来,谈谈自己的一些理解和体会,算是事后为这个事情的一种复盘:最早测试平台规划时,我 ...

  3. android自定义视频列表,Android仿京东天猫列表页播视频看这一篇就足够了

    阅读本文解决什么问题? 解决android 滑动列表页自动播视频中的一些技术难点.助力更好的实现类似需求.不涉及到播放器的具体编解码技术,因为各家用的播放器可能都不一样(其实是我不会~) 何时播视频最 ...

  4. 浅谈TC8数据链路层测试

    当今时代,智能汽车已成为一个炙手可热的话题,各种先进汽车电子技术蓬勃发展,比如自动驾驶.V2X.OTA......这些新技术的背后都离不开车载以太网通信技术的支持.其中数据链路层实现了链路管理.虚拟局 ...

  5. 浅谈加班 - 透过加班看管理

    浅谈加班 首先表明我的观念: 我接受加班行为,但是很多时候不接受加班动机. 解释一下: 接受加班行为:假如由于一些无法避免的原因,不能够在工作时间内完成相应的任务,比如项目时间紧,任务重等,我自愿为此 ...

  6. 物联网安全专题 | 浅谈物联网设备安全分析方法 — 软件篇

    ✦前 言✦ • 物联网(Internet of Things,IoT)是互联网的延伸,是智能设备.移动网络及社交网络的结合体,可以给使用者提供更优质的应用体验.物联网时代的到来引入了大量的物联网设备, ...

  7. [论文解读]关于机器学习测试,看这一篇论文就够了 Machine Learning Testing: Survey ,Landscapes and Horizons

    Machine Learning Testing: Survey ,Landscapes and Horizons 文章目录 Machine Learning Testing: Survey ,Lan ...

  8. 浅谈如何管理测试团队

    巧妇难为无米之炊,管理团队,还得从招人说起.测试团队怎么招人呢?首先参考下测试团队的一般组成.一个小规模的团队,一般由功能测试.自动化测试以及性能测试这三种职位组成.一个较大的团队,还可能有配置管理员 ...

  9. 浅谈手机游戏测试的要点

    近几年来,手机游戏以迅雷不及掩耳之势占领游戏市场的领地,究其原因,手机的便捷,其优越的性能,为手机游戏的问世和发展提供了广阔的平台,投资者越来越青睐手机游戏的市场,他们在手机游戏方面不惜聘请明星作为代 ...

最新文章

  1. 让你的输入框使用Google云语音输入技术
  2. 网络适配器无法建立连接_「图」KB4515384更新令人抓狂:网络适配器又无法启用...
  3. matlab您的安装可能需要执行其他配置步骤_手把手超详细介绍MATLAB+RoadRunner+Unreal Engine自动驾驶联合仿真...
  4. Database----Cursor
  5. Hash 分布均衡算法
  6. 共享打印机 需要查找inf文件_印前、快印常用的局域共享软件
  7. Arturia SQ80 V for Mac 音频波形合成器
  8. DEV 实现CheckBox单选
  9. rust里面的柴油桶有什么用_用了橡木桶的红酒就一定好吗?什么样的酒才适合橡木桶?...
  10. 3dMax模型数据转cesium Gltf模型
  11. 苹果Mac 软件出现意外退出解决方法
  12. 光伏电站运维常见故障及处理汇总
  13. You should consider either expiring and/or testing connection validity before use in your applicat
  14. python和按键精灵自动化测试_IOS开发入门之iOS自动化测试需求实现(iOS按键精灵类似)...
  15. 【SVL官方说明文档】
  16. Excel对整体数据定位相同的背景颜色单元格?
  17. oracle 存储过程误删,Oracle中怎么恢复被删掉的存储过程
  18. 『技术分享』-- 使用极光 IM 构建聊天功能
  19. matlab hold on 置顶,matlab中 hold on 与hold off的用法
  20. Rancher开源Octopus:IoT设备管理系统

热门文章

  1. 利用Python来给老照片上色,效果惊艳到我了。这不比ps强啊?
  2. 手把手教你玩英雄联盟手游
  3. 常州计算机维修,常州专业笔记本电脑维修中心
  4. 《世界因你不同》——如何对老板说“不”
  5. 网状Meta分析背后的原理是什么?
  6. 小程序弹窗禁止背景滑动
  7. 河南高考录取统计 电子版 excel
  8. 腾讯应届生怒怼领导“过度加班” 获网友点赞:醒醒吧!你的价值,并不等同于你的忙碌...
  9. 企业邮箱怎么设置自动回复,电脑版邮箱自动回复功能如何设置?
  10. 为什么很多人不愿意用hibernate了?