实验设计ABTest实验一般有两个目的:确定哪个更好:比如有两个UI设计,A好还是B好,我们需要实验来确定计算收益:比如最近新的直播功能上线了,那么直播功能为平台带来了多少额外的DAU、多少额外的使用时长、多少直播以外的视频观看时长?我们通常熟悉上面的第一个目的。为了第二个目的,收益的量化和ROI的计算对于数据分析师和管理者来说往往是非常重要的。对于一般的ABTest实验,其实质就是把平台的流量平均分成几个组,在每个组中加入不同的策略,然后利用这些组的用户数据指标,比如:留存、人均观看时长、基础互动率等核心指标,最终选出最佳分组上线。实验的基本步骤一般如下:流量分配实验设计有两个目标:希望尽快得到实验结论,尽快做出决策,希望利益最大化,希望利益最小化对用户体验的影响。因此,往往需要在流量分配上进行取舍。几种情况:不影响用户体验:比如UI实验、文案实验等,一般可以平均分配流量实验,可以快速得出实验结论。不确定性强的实验:比如新产品特性上线,一般需要小流量实验,尽量减少对用户体验的影响,并在允许的时间内得出结论。希望收益最大化的实验:比如运营活动,尽可能将效果最大化。一般需要进行大流量实验,保留一小部分对照组用于评估ROI,根据实验的预期结果、市场用户数、实验所需的最小流量即可确定.可以用一个网站来具体计算需要的样本量:以次日留存率为例。目前市场次日留存率为80%,实验预计增加0.2pp(这里的留存率可以转化为点击率、渗透率等,只要是一个比例值。如果不准确,为了保证实验能得到结果,这里可以低估,不能高估,即0.2pp是预期可以提高的最小值)根据计算网站,最小样本量为63W(这里的最小样本量指的是流量最少的实验组的样本量)如果我们每天只有5W用户可用于实验(5W用户指的是流量最少的实验组是5W用户),63/5=13天,我们至少需要13天才能得出实验结论。如果我们期望提升的指标是人均时间、人均VV等,可能会比较复杂,需要用t检验来回算,需要的样本量:实验效果我们取一个稍微复杂一点的以操作活动实验为例。活动有计划1和计划2,同时为了量化ROI,控制组没有运营活动。需要回答几个问题,选项1或选项2,哪个更好?哪个投资回报率更高?从长远来看,哪个更好?仍然有必要使用假设检验。对于留存率、渗透率等漏斗指标,采用卡方检验;对于人均时长等平均指标,使用t检验:通过上面的假设检验,如果结论有把握,我们可以得到方案1的指标比方案2好在哪里(有显着差异),而对于没有说服力的结论,虽然方案一和方案二的指标可能略有不同,但可能是正常的数据波动所致。第二个问题,哪个ROI更高?一般来说,有活动和没有活动相比,留存率、人均时长等指标都会很显着。我们不再重复上述假设检验过程。对于ROI的计算,在成本方面,可以直接计算每个实验组的成本。在收入方面,一定要和对照组比较。假设以每日总活跃天数(即每日DAU的总和)作为收益指标,则需要假设没有经营活动的DAU会有多少,可以通过控制组计算,即:实验组假设当天没有活动活跃天数=对照组每天活跃天数*(实验组流量/对照组流量)实验组收入=实验组天数活跃天数-实验组假设没有活跃days是活动天数,以便可以量化每个计划的投资回报率。第三个问题,从长远来看,哪个更好?这里需要考虑新奇效应。一般来说,在实验的初期,用户可能因为新奇而有好的结果。因此,在评估时,需要观察各项指标,直至稳定。之后,再次进行评估。比如有的时候,上线初期实验组的效果比较好,但是过了一定时间,用户的新鲜感过去了,实验组的效果可能就变差了。所以,从长远利益考虑,我们应该选择对照组,是实验组的新颖性效果欺骗了我们。在做实验分析时,要去掉新颖性效应的部分。可能实验组比较好,老用户对照组比较好;对于年轻人来说,实验组比较好,中年对照组比较好。作为数据分析师,在分析实验结论的时候,也要注意用户群体的差异。实验结束后,需要:反馈实验结论,包括直接影响(渗透率、留存率、人均停留时间等)、ROI充分利用实验数据,进一步探索分析两者之间的差异不同的用户群体和场景,针对发现长期业务提出探索性分析,可能会同时进行几十个实验,不仅要比较每个小迭代的差异,还要比较专项项目的贡献对市场和整个部门对市场的贡献。贡献,所以需要应用到实验层域管理模型中。比较每个产品细节迭代的结果比较每个项目在一个阶段的贡献比较整个项目在一个阶段的贡献量化多个活动交集的实验设计作为数据分析师,在多团队合作中,经常会遇到多个业务的交集问题,以我最近主要负责的春节活动为例,老板会问:春节活动-明星红包子活动贡献了多少DAU?春节活动-家乡卡子活动贡献了多少DAU?春节活动一共贡献了多少DAU?严谨一点,我们用AB实验的方法来计算,最终可能会发现一个问题:春节活动各个子活动的贡献度之和不等于春节活动的贡献度,为什么?有的时候,ActivityA和ActivityB有相互放大的作用,此时会是1+1>2。有的时候,ActivityA和ActivityB本质上是在做同一件事情。这时候就会是1+1<2。这时候我们准确量化春节活动的贡献,需要一个贯穿所有活动的控制组,也就是AB实验系统中俗称的渗透层。(说明:实验中各层流量正交,简单理解,比如A层导流使用用户ID的最后一位,B层导流使用用户ID的倒数第二位)userID的情况下,倒数第二位和倒数第二位是不相关的,也叫相互独立,我们称之为正交。当然,ABTest实验系统真正的分流逻辑是使用复杂的hash函数,positive交叉表格可以保证正交性。)这样分层后,我们可以量化贡献如下:计算春节活动的整体贡献:实验填充层-填充层填充组VS穿透层-穿透层填充组计算活动A贡献:在活动A的实验层,计算实验组VS控制组。活动B的贡献:在活动B的实验层,实验组VS控制组。当业务在迭代时,如何与自己的过去进行比较?上面提到的[throughlayer]设计,throughthelayer的设计不仅可以应用于多个活动场景,在某些场景中,我们的业务需要和自己在去年或者上个季度进行比较,业务在不断的使用ABTest多方面迭代。类似上面的层级设计,在推荐系统中比较常见。在某些产品或系统中,渗透层不可能完全没有策略,所以去年或上一季度的策略就代表了基准值,从而量化新周期的增量贡献可以量化:每次小迭代对整个系统:实验层中的实验组VS控制组在循环中,系统所有迭代与上一个循环的对比:实验填充层VS通过层1(或通过层2)同时,可以量化去年策略的自然增长或下降,衡量旧系统是否具有长期适用性(作为系统设计者,应该鼓励设计具有长期适应性的系统):通过第1层(上一季度的策略)VS整个第2层更复杂的实验设计(去年的策略)。我将以微视任务福利中心的实验设计为例,以我目前负责的业务为例,作为一个比较复杂的实验系统设计的例子,它综合了上面提到的两个目的:量化增量贡献即每次实验迭代给系统带来的量化每一种迭代(如UI迭代、策略迭代),量化整个系统在上一个周期(季度、年度)增量贡献来量化整体ROI任务福利中心(本质上是给用户一些激励,促进用户活跃度,获得更多的商业利益。因此,不像推荐系统,根本没有任务福利中心的控制组,用户量化ROI)
