找回密码
 立即注册
搜索
查看: 55|回复: 0

深度讲解「AB实验」

[复制链接]

1

主题

0

回帖

3

积分

新手上路

积分
3
发表于 2024-11-28 13:42:48 | 显示全部楼层 |阅读模式
1.webp

在《鹅厂人的用户增长方法论与实践》这篇文章里,我分享了如何通过用户增长6步法探索互联网产品用户增长的策略方向,其中最后一步是通过AB实验验证增长策略,写这篇文章的时候,因为篇幅有限没有围绕AB实验过多展开分享,今天这篇文章就专门针对AB实验这个话题深度展开分享,争取一篇文章讲清楚AB实验的要点;
1.我将分享哪些内容?

  • 认知部分:我将分享AB实验的重要性,以及常见的误区,以及学习AB实验后的好处,了解这些可以帮助大家对AB实验建立一些基础认知;
  • 实操部分:我将以一个实际案例,实际分享AB实验的实操过程,手把手教大家怎么做AB实验;
  • 进阶部分:我将深入分享AB实验中的分流原理,把其中一些复杂的原理通过更简单的方式描述清楚;
2. 文适合哪些朋友?

  • 产品经理人员:互联网产品的产品经理,了解怎么通AB实验验证产品策略;
  • 用户增长运营人员:负责产品用户增长的运营人员,了解怎么在运营工作中合理的设计用户增长实验;
  • 初级数据分析人员:负责企业产品、用户增长相关业务的初级数据分析人员,快速了解AB实验;
声明:由于个人知识水平有限,其中如有描述不对或者认知错误的,欢迎各位高手给与指出和批评,我将虚心向大家求证学习,共同进步。

一、“科学”的AB实验的重要性?
在标题里面,我强调了”科学“两个字,为什么要着重强调这两个字,其主要原因有如下2个:
1. 大部分人的所谓AB实验是不科学的在很多互联网公司,大家都知道通过AB实验去验证结论和做数据决策,但是实际上我发现绝大多数运营人员只是在做实验,并不是做真正的AB实验,比如很多人都知道AB实验的核心是要控制变量法和人群同质,但是他们的实际操作并没有真正做到控制变量和实验人群同质;他们并没有掌握如何严谨和科学的去设计一门AB实验;而不严谨、不科学的AB实验往往给出的是错误的决策和结论
2. 有些业务数据提升的结论并不严谨我以前服务过的公司里面经常会出现一种好玩的现象,各个业务在年度复盘的时候,都会说自己做了哪些策略,然后带来了百分之几的提升,所有业务都说自己有提升,然后最后老板发现公司最终的业绩营收并没有看到提升,其中有些数据,现在看来并不严谨;
以上两个问题,包括我自己之前在认知水平不够的情况下也存在(当然,我没有造假修饰过数据),我也曾经做过一些现在看来并不严谨科学的实验,以及基于实验数据得出一些现在看来是不严谨的数据,在鹅厂工作的经历里,我从很多资深的AB实验专家中学习了如何科学的设计AB实验和看待实验结果数据后,才意识到过去存在的问题。

二、AB实验的常见误区
举个例子,当有人告诉你说:”我设计了一个策略,并做了AB实验测试,上线之后,付费转化率从53%提升到55%,这个是非常显著的提升效果“,你觉得这句话会有什么潜在的不够严谨和科学问题?比如,53%到55%的提升,能否算的上是显著的效果提升,有没有可能仅仅是正常的数据波动;又比如对方是如何设计这个实验得到这个结论的,有没有可能实验设计本身存在问题;
以下我总结一下常见的误区:
1. 实际数据提升并不显著?影响数据提升结论是否显著的主要因素是你的实验的样本量,比如如果你前面的结论,如果你的实验样本量也就只有10个,你说你提升了这么多,结论可靠吗,显然是不可靠的,但是如果你说你的样本量AB组各有500万用户,那这可能是足够显著的;
从统计学的角度上看,如果你的样本量不够大,那你的数据指标提升需要足够大,才能称得上显著;如果你的样本量足够大,那么即使你的数据指标提升并没有那么大,也可能是显著的;
那么当样本量一定的情况下,我的提升幅度需要到多少,才算显著呢?统计学提供了一些工具,可以帮助大家解决这个问题,这个会在后续分享到;
2. 实验变量没有统一比如对方可能是基于时间的对比,例如同一个人群第一季度的平均付费转化率是53%,第二季度的平均转化率是55%,那这样可能是有问题的,因为第一季度和第二季度,时间本身就是一个不同的变量,有可能你不做这个策略,也能得到这几个结果;所以你需要先证明这一点,比如你说去年第一季度的数据和第二季度的数据是一样的没有发生变化,并且在这整个时间段里面,你并没有做任何其他的事情;
3. 可能存在幸存者偏差比如对方有可能实验组用了一个优质一点的人群,对照组用了一个普通的人群,这样的话,提升效果自然是比较明显,这种情况非常的常见,我们把这种问题,称为幸存者偏差;
4. 实验人群分包不均匀,不够随机即使你严格控制了人群的变量,比如实验组和对照组的人群条件都是最近7天活跃的用户,然后假如你的用户id是按照活跃时间从近到远排布的,而你并不知道,然后你按照顺序从前到后分人群包,扎样就可能导致实验组都是7天里面最近几天活跃度的,而对照组里面都是后面几天活跃的,所以你以为你控制变量了,实际上因为分包不均匀,存在问题;

三、如何科学的设计一门AB实验?
1. AB实验流程概括AB实验的整个过程包括三部分:实验设计、实验分析、实验决策,其中各个部分的具体流程如下:
2.webp

1.实验设计:实验假设→实验指标设计→设计实验方案(包括设定人群条件、最小提升目标、样本量)→配置实验(包括人群分组、AA空跑实验、上线配置)→数据回收;
2.实验分析:P值检验→MDE(最小提升效果)检验;
3.实验决策:实验结论和决策、设置长期对照;
2. 设计AB实验的关键要点1.合理的计算实验样本量:实验的样本量应该达到多少才合适?
2.严格控制实验变量:如何控制实验变量?
3.实验人群分组足够均匀和随机,确保“同质”:如何分包均匀和确保随机性?
4.实验结果是否显著:如何判断数据提升是否显著?
3. 从0到1实战完成一个AB实验接下来我们以如下的一个实验场景为例,对比在引导用户打开APP PUSH通知开关场景是,图片弹窗和文字弹窗两种弹窗方式,哪种的点击率更好为例,设计一门AB实验:
3.webp

3.1 实验假设
从电商行业的经验,我们了解到,对于营销类的场景,图片弹窗的效果会比文字弹窗的效果会更好,但是考虑到我们的运用场景是一个引导用户打开PUSH开关的功能性的场景,用户会不会对文字类型的弹窗有更高的接受度和点击欲望,反而图片型弹窗因为存在营销嫌疑,用户反而不想点击,所以我们的假设是对于该场景:文字弹窗的点击效果会明显比图片弹窗的好
3.2 实验指标设计
假设我们用于衡量实验效果的关键指标选择点击“去开启”按钮的点击率,也就是按钮点击量/弹窗的曝光量,当然,实际情况下,可能我们不仅仅只是关注这个指标,可能还需要关注后续链路的指标,但是这里为例避免过于复杂,让大家更聚焦在实验流程本身,我们只设定这个关键指标;
3.3 设计实验方案
接下来,我们需要设计一下AB实验的方案,例如以下我们设计了行动组A和对照组B两个实验组,用于实验对比,具体设计实验方案的步骤如下:
4.webp

步骤1:设定实验组数量和人群条件,比如这次我们涉及2组实验,实验人群比如我们选择最近7天活跃的用户,这个环节切记行动组和对照组的人群条件一定要一致,保持实验只有弹窗样式这一个变量
步骤2:设定一个行动组预期的最小效果提升目标(MDE),比如预期点击率最小的提升目标是提升10%,预计点击率提升到5.5%,比对照组图片型弹窗点击率提升5%;设定MDE的时候,主要根据业务的预期来自己判断
步骤3:预估实验最小样本量,也就是说,如果我要达到10%的提升幅度,且该提升幅度可以认定为显著提升,我的实验组样本量最低需要到多少;如果实验样本量过低,则实验最后的结果可能不合理,但是究竟样本量设计多少才比较合适,该问题在统计学上是有相应的计算公式的,但是我们这里不需要太去深究,我们直接使用一个现成的工具来计算就好;个人推荐的工具如下工具:https://www.evanmiller.org/ab-testing/sample-size.html,根据这个工具可以计算到,如果点击率要从5%提升到5.5%并目表现为显著提升,则该实验每组实验组需要的最小样本量是30244,假设用户从实验投放,到曝光弹窗的曝光率是10%,那就意味着你的每个实验组需要的用户量至少是302440以上,因此,我们在提取人群包的时候,每个实验组至少需要一个30万左右的人群包;
5.webp

3.4 配置实验
设计好方案之后,接着就是按照实验方案取人群包,以及配置AB实验,通常这样的配置需要搭配一个AB实验平台,或者是企业内部的推送管理后台,用于控制触达渠道的分发,配置实验的具体步骤如下:
步骤1:根据人群条件跑人群包,通过切包工具切分人群,构建两个实验组的人群包,对于中小企业而言,可能不一定有相应的切包工具,个人分享一个常用的切包工具(公众号回复关键词“切包工具”后领取),切包工具主要用于解决切人群包的时候的随机性问题,如果切包不均匀,可能会导致两个实验组的人群包不同质,会影响最后实验的结果的准确性;
步骤2:AA空跑实验,空跑实验的意思是设计一个空跑周期,两个人群都不做任何动作,看两个人群的数据表现是否一致,比如可以看着这两个人群自然打开push开关的数据情况;空跑实验的目的,是用于检验你的两个实验组,是否真的足够随机和同质,可以提前排除实验人群不同质导致的对实验结果的影响;
步骤3:创建实验和上线配置实验,按照实验方案的设计,对行动组A人群采用文字弹窗,对对照组B人群采用图片弹窗,并实验运行一段周期;
3.5 回收数据
实验周期结束之后,开始回收两个实验组的效果数据情况,假如我们最后回收的数据表现如下:实际回收的数据,行动组A的点击率是5.4%,对照组的点击率是5.0%,点击率提升幅度8%;那么对于这个提升结果,我们应该如何去看待,接下来我们看如下实验结果分析部分内容;
6.webp

3.6 实验结果分析
对于最终的实验结果,我们需要评估的是该实验的提升效果是否显著,以下我们通过P值和MDE两个维度判断:
7.webp

1.计算该实验结果的P值,如果P值<5%,则该实验的提升结果显著;我们通过https://www.evanmiller.org/ab-testing/chi-squared.html 这个在线工具统计一下目前实验结果的P值如何,如下计算可得该实验结果下统计的P值是2.7%,低于5%,则可以说明该实验的提升结果是显著的,文字弹窗的效果明显比图片弹窗效果更好;
8.webp

2.如果计算P值>5%,接下来需要对比一下提升幅度和原来我们设定的最小效果提升目标(MDE)的关系;
假如实际提升幅度大于最小提升效果目标,则说明实际提升比我们的预期还好,则可能需要再重新加大实验样本量,然后继续实验观察;假如实际提升幅度小于最小提升效果目标,则说明该提升结果确实不显著,实验结束;
3.7 实验决策
1.实验结论和决策
AB实验的最终目的是决策,通过实验之后,你的产品和运营策略最终选择使用什么方案,这是实验应该带给你的结论;
以我们前面的实验为例,我们可以发现,采用文本弹窗的触达效果,可能对于提升用户APP PUSH开关打开率的效果更好,所以那么我们应该放量更多的用户通过文本弹窗的方式触达;
2.设置长期对照实验
但是到此实验并不是就结束了,最后我们还是需要保留一个长期对照组用于持续的观测对比效果,因为短期的实验结果,不一定会是长期的结果,所以我们需要保持观察,因此这时候建议设置一个长期对照实验就有必要,比如你可以90%的用户全部使用文本弹窗,然后剩余的10%,各设置5%vs 5%,用户持续对比两种弹窗样式的效果,以观测实验提升的情况;
设置对照是运营和产品衡量自己的策略是否有产生价值的重要的方式,甚至在字节等大厂,还会设置好一个全局对照,预留一部分用户什么策略都不要触达,去对比业务经过一系列动作之后和什么策略都不做的人群的效果对比如何;

四、学会科学设计AB实验有什么好处?
1. 避免陷入自以为是的错误决策,减少试错成本;现实的企业决策里面,有些人习惯凭感觉拍脑袋决策的,这种显然不太可取,不过也存在一部分人知道不能拍脑袋决策,他们知道应该要做实验尝试,但是往往因为实验的方法不对,最终得到了错误的实验结果,然后他们会拿着实验数据跟别人说:“这事我们实验测试过,这样做是能有效提升的”,但是最终可能全量上线策略的时候,并没有看到显著的效果差异;
AB实验最终的目标是要带来实际的效果的提升的,如果因为实验方式不对,导致按照错误的决策执行,并不能给业务带来最终想要的效果;
2. 学会更加严谨的看待实验结果,洞察数据结论背后的隐藏条件,避免被不严谨的数据结论误导;当你知道一个严格的AB实验的要求之后,如果有人告诉你“我做了一个策略,让我们转化率提升10%,提升效果很明显”这个结论,你可能不会一下子就反应觉得“哇,10%好像很厉害的样子”,反而你会首先思考如下几个问题:

  • 10%是一个显著的提升吗?按照你的实验结果,最终的P值是多少?
  • 你的实验样本量是多少?你不会就只实验了几个用户就得到这个结论吧!
  • 你的行动组和对照组怎么设计的,你怎么确保两个实验组的人群是足够同质的?
  • 你是如何控制这两个实验组不被其他策略影响的?
如果一个实验结论是草率的得出来的,对方基本上无法很好的回答你以上的问题,说明对方根本不知道如何做一个科学的AB实验,那么对于他的结论,你可以认为并不太靠谱;而对于能够充分的解释以上问题,并且还能告诉你具体的数据以及实验方法,那么对方的结论则是有更高的可信度的;
3.学会通过数据科学决策,形成个人和企业的决策习惯和文化AB实验是一门通过数据科学决策的思维,学会AB实验之后,可以形成自己个人判断和决策的方式习惯,同时这种方式也可以作为企业做决策的一种方式和文化,凡是决策不了的问题,那就AB实验一下吧;

五、AB实验中如何解决实验分流问题?
1. 如何实现实验人群的分流?通过“分桶”方式实现单层分流
通常做一个实验可能不止需要2组实验人群,有时候可能需要比如10组,那么这个时候,我们需要对一个人群做一个切割,比如我的目标人群有100万,平均分配成10组,每组10万,这就是最简单的分桶的逻辑,也很好理解;业务发展的初期,通常实验量也不多,通过简单的分桶的方式基本能满足业务的需求,其中需要重视的是不同分桶人群需要保证必须是随机的,并且不同分桶之间不相交,确保他们在统计上是相似且具备可比较的
9.webp

单层分流的局限是实验用户无法重复利用
但是这里显然会存在一个问题,假如你针对这一波人群,还需要同时做3个不一样的实验,而且每个实验都需要10组,如果采用简单分桶的方式,你需要将这100万切分成40个分组,每组只有2.5万用户,最后可能会导致实验样本量不够,那么你就无法在同一时间进行多个实验;这个问题,我们通过第二部分分层的方式解决;
10.webp

通过散列算法确保不同分桶人群的随机性
不同分桶人群的随机性,通常是通过散列算法来实现的,常用的散列算法包括MD、SHA、JDB等,不过这些对于产品经理和运营人员等而言相对过于复杂,我们也不需要过多去研究,只需要知道这个概念,如果企业内有专业的数据分析师,可以让数据分析师处理,或者也可以使用一些现成的切包工具,比如前面提到的直接切分人群,这些工具的切分原理也是基于这些散列算法实现的;
2. 如何提高实验人群的利用率,在同一时间做大量的实验?用“分层”的方式提高实验人群利用率
和桶不同的是,层的概念是用于提高同一拨实验人群的利用率,让你可以在同一拨人群里面做很多的实验,并且不同的实验之间能够相互不影响,确保每个实验中的实验组都是只有一个变量;
通过分层的方式,可以在同一拨人群基础上建立出很多的实验分层,并且同一个用户可以出现在不同的分层里面,这样不同的分层就可以做不同的实验,并且能够确保不同的分层之间是互不影响的;
11.webp

那么这里你必然会疑惑,不同的分层之间是如何实现互不影响的?我们通过如下这张图可以看到,每一个实验层的分一个分桶的人群,都会平均的分配到另一个实验层的每一个分桶的人群,这样的话就可以确保一个实验层的人群,基本所有分桶的人群都具备其他实验分层的策略,因此同一个分层的不同分桶之间,是基本同质,不受其他实验影响的;
12.webp

3. 如何实现实验人群的隔离?用“分域”的方式实现实验人群隔离
前面我们讲到分层的逻辑,是把每一分层里的每一个分桶的人群平均分配到下一个实验层的不同分桶,但是这个方式最好是确保同一个分层里面只有同一类用户,比如都是青铜等级的用户,这样把一个分桶平均分配到下一层的时候,下一层的每个分桶的用户都是同质的,但是如果一个实验分层的里的人群出现了两个不同的人群,比如既有青铜等级的用户,又有白银等级的用户,那么在平均分配的时候可能就出现问题,会导致下一个分层里,一部分分桶分配了青铜用户,一部分分配了白银用户,这样下一个分层不同分桶的用户就会出现明显的不同质,分层的效果就会失效;
13.webp

因此,面对不同的实验人群,比如不同的用户等级、不同的活跃度等维度的用户,我们需要通过“分域”的方式,将不同的人群隔离开,比如青铜、白银、黄金等级的用户分别在不同的实验域,让不同的人群在不同的域中进行实验,这样才能确保实验之间不相互影响;
14.webp

4. 桶、层、域之间的关系总结1.域的作用是隔离人群还有实验,确保不同实验在不同实验人群上的影响互不干扰,因此域是通过区分人群来实现隔绝分流的,不同的域代表不同的人群;
2.层属于域的一部分,一个域内可以有多个分层;层的作用是实现该域内同一个实验人群,可以同时做多个实验,但是不管你怎么分层,最终只会作用到该域下的同一个实验人群;
3.桶属于层的一部分,一个层内可以用多个分桶,分桶的作用将该层的用户实现切分分流,用于创建不同的实验组;
15.webp

5. 桶、层、域的应用桶、层、域是实际在AB实验运行的过程中会遇到的问题的解决方案,这些概念,是解决AB实验问题的思路和方案,同时可以将这些方案设计到AB实验的系统里面,目前市面上很多AB实验的系统,都会对以上的概念有所体现,将桶、层、域的概念融入创建AB实验的流程中;当然,对于运营人员和产品经理来说,我们也可以不需要太深入的了解他们,这部分属于设计AB实验系统的数据人员需要重点了解的,只是如果我们能理解他们的关系,这会更加有利于帮助自己快速的理解和使用实验系统。

六、并不是所有的产品和业务都需要做AB实验
在很多大厂的产品业务,为什么大家都提倡要做AB实验?
一方面是因为这些产品的用户体量较大,随便一个策略的改动,影响的可能都是大规模的用户,一旦策略失误,造成的损失就不小,所以为了控制影响,大家更倾向于拿一小部分用户先验证测试策略,得到实验结论之后再放大策略的灰度量,这样即使策略是无效的也不会造成太大的影响;
另一方面大厂的产品,由于用户体量较高,一个策略落地之后,不一定能够显而易见的看到数据变化,感知到策略带来的影响,即使能感知到,也不一定能归因定位到是哪个策略发挥了效果;基于以上两点,所以AB实验就非常重要;
然而,并不是所有的产品和业务都需要严格的去做AB实验,AB实验更加适用于规模相对较高的产品及业务,数据指标即使是检测到较小的变化,也能够带来较大的价值贡献;例如像淘宝等产品,转化率哪怕只是提升0.5%,营收规模的增长可能都会超过1个亿;
而对于用户规模很小,业务发展还不成熟的产品,随便一个优化策略可能都能带来明显的效果提升,则建议别花太多时间研究AB实验,保持快速的策略迭代,在迭代的过程中,快速验证效果,这样的方式,实际上是通过对比不同时间段的策略的方式在做AB实验,虽然不太严谨,但对于小产品而言,实验策略有没有效果,通常是显而易见的,也容易快速的归因;
作者:三白有话说,公众号:三白有话说
本文由 @三白有话说 原创发布于人人都是产品经理。未经作者许可,禁止转载。
题图来自Unsplash,基于CC0协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|ARC

GMT+8, 2024-12-27 22:01 , Processed in 0.204364 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表