永洪社区

标题: 什么是A/B测试?一文讲解清楚! [打印本页]

作者: puffs    时间: 2024-7-18 13:54
标题: 什么是A/B测试?一文讲解清楚!
01 文本框架

什么是A/B测试?
为什么要A/B测试?
A/B测试的流程简述
A/B测试部分内容介绍

最近接触了多个功能迭代、新功能上线的A/B测分析,对一些分层、分桶、结果分析产生了一些小兴趣,遂结合之前的学习和个人理解,谈谈我眼中的A/B测试。

02、什么是A/B测试?

说起AB测试,最容易想到也最容易理解的就是上学期间接触的控制实验。设置AB两组实验,除了其中一个条件不同,其他条件(尽量)保持一致,最终得出此唯一不同的条件对于结果的影响。
AB测试就遵循了这一原理,对于产品迭代、运营活动上线等会提供两种(或多种)备选方案,让一部分用户使用A方案,一部分用户使用B方案(或者一部分用户使用A1方案,一部分用户使用A2方案,一部分用户使用B方案),通过最终实验数据的对比来确定其中的最优方案。比如某一个按钮颜色的变化、文案的变化、某app皮肤的变化等,都可以使用AB测试来选取较优的方案。
需要注意的是,AB测试需要保证样本的同时和同质。同时指的是两个方案是同时投入使用的(如果是某种改动,要保证选取的是改动时间之后的同一时间段);同质指的是两个方案对应的测试群体应尽量保持一致,比如具有相同或相似的特征,避免出现A方案的测试群体都是女性,B方案的测试群体都是男性这种情况,群体之间的巨大差异可能会影响实验结果的判断。

03、为什么要A/B测试?

互联网公司少不了的就是各种各样的迭代、测试、上线,再迭代、再测试、再上线。用户的需求可能会发生改变,各种活动的上线、产品功能的迭代等也比比皆是。为了使某些改变或决策存在数据支撑,避免出现上线后的重大失误,减少各种损失,在条件允许的情况下,一些产品的功能迭代、运营活动上线等都会选择AB测试来验证此迭代或活动是否有助于产品的发展。如果结果是正向的,可能就会推全量,如果效果不好,也可以回滚,使不好的影响降到最低。现在各种AB测试的后台也比较多,企业也有了更多更好的选择性,为了各种变化和增长,AB测试的应用也就越来越广泛。

04、A/B测试的流程简述

确定目标:进行此次测试的目的是什么?新功能的迭代?哪种活动效果好?要针对自己所要进行的测试确定相应的指标,如某个按钮颜色的变化,可以用点击数、点击率等来作为衡量指标;某个部位的加重,可以用点击率、转化率、GMV等作为衡量指标。
明确实验组和对照组的「配置」,也就是实验组与对照组的不同之处是什么,按钮的颜色?文案的不同还是皮肤的变化?
作出假设:原假设和备选假设
进行实验:根据后台配置等,选择合适的层,分桶,进行实验。
取数分析:在实验结束或实验中,取某一固定时间段,取得对应的指标数据进行分析,看看实验组和对照组是否存在显著性差异。


05、A/B测试部分内容介绍
1、流量分配:层与桶




A/B实验越做越多,而能做实验的群体数量就那么多,是同时在这些群体上做不同的实验,还是为了怕相互之间有影响,实验一个一个排期进行?显然盲目的混合进行不同的实验是不可取的,无尽的等待一个实验结束再开始新实验显然你的老板也不会允许。那么如果同时进行多个实验,怎么做才能保证实验之间相互不影响?
分流。
将流量进行分层,保证各个分层之间相互正交,以保证不同层的实验不会相互干扰。此原理下,无相关性的实验,可以在不同的流量层进行,有相关性的实验在同一流量层进行,这样可以大大增加可同时进行的实验的数量。
通俗来说,每层都是全量用户,假设有实验A和实验B两个实验,如果这两个实验不相关,就可以将这两个实验的A/B测试放在不同的层进行,如层1(实验A)和层2(实验B),层中会有打散机制,在层1进行的实验A的实验组和对照组的流量在打散时会将进行实验B的流量进行分配,保证进行实验B的流量在实验A的实验组和对照组均匀分配,避免实验B对实验A产生影响。



有相关性的实验选择在同一层中进行,可以通过分桶来将有相关性的实验分开,一般都会使用Hash函数对用户取模(或者结合一些其他的策略),将用户均匀(尽量无差别)地分配到各个桶中,使桶与桶之间互斥,避免两个有相关性的实验之间产生干扰,然后再选定各实验的实验组和对照组对应的桶。

由此,我们就可以将“无限”的A/B实验安排进有限的流量中去了。

还需要注意:
一些不确定性比较强的实验,比如新功能的上线,一般建议做小流量的实验,尽量减小对于用户体验的影响;一些UI实验,文案变化实验(如按钮文案变化),不太会影响到用户的体验,可以选择均匀分配流量;一些需要**最大化的实验,比如运营活动的上线,可以采用大流量实验。

2. 数据量级(样本量)

关于进行AB测试所需的数据量,正经来说,当然实验流量越大越好,有人针对小流量的AB测试也做了一些相应的分析和教学,这些博客和知乎上也可以找的到。前一阵子有人分享了一个能够进行测试所需样本量的工具,可以根据对实验的预期,整个大盘的流量,得到实验所需最小样本量,
网址在这:
https://www.evanmiller.org/ab-testing/sample-size.html

3. 效果评估

如何判断哪个方案效果更好?此处就需要用到假设检验了。

一些漏斗类指标如留存率可以采用卡方检验https://www.evanmiller.org/ab-testing/chi-squared.html

一些均值类指标如人均使用时长可以用t检验https://www.evanmiller.org/ab-testing/t-test.html

通过假设检验我们就能判断两个方案指标的变化是一般的数据波动还是显著性差异,从而判断这种变化是否可信。

效果评估的时候别忘记关注一下长期的变化,毕竟一些新上的功能可能对用户的好奇心和新鲜感有所作用,出现一些正向的影响是必然,所以需要等到观测指标稳定后再做评估(尽量多等一段时间)。

另外,不同的用户群体可能存在差异,在进行结果分析的时候还需要关注用户群体的差异,比如一些新老用户在实验组和对照组的表现差异。

个人对于A/B测试的认识和理解就到这里了,相关的更深刻的理解或者统计方面的知识可以去知乎,博客逛逛,再给大家推一篇「数据管道」关于A/B测试的推文,这里边有包含一些统计学知识的讲解。


文章来源:爱数据LoveData







欢迎光临 永洪社区 (https://club.yonghongtech.com/) Powered by Discuz! X3.4