目录标题
- 1、ABtest实验目的
- 2、A/Btest是什么?意义/目的/作用
- 3、A/Btest工作原理
- 4、A/B test流程(面试喜欢问)
- 5、一个实际的ABtest案例
- 6、AB实验的注意事项
- 6.1 网络效应:一个用户影响另一个用户
- 6.2 学习效应:新奇效应
- 6.3 多重检验问题
- 6.4 先验性:
- 6.5 并行性:
- 6.6 分流科学性和数据科学性:
- 7、相关面试题
- 7.1:滴滴准备升级司机端的一个功能,该如何校验功能效果?
- 7.2:某app,用户活跃周期是14天,这时,上线了一个实验,计划跑20天在看效果,结果有位新同学,在10天时做了统计推断,发现数据已经有了显著差异,认为可以停止实验,这样做对吗?
- 8、数理统计原理(AB测试相关)
- 8.1 中心极限定理
- 8.2 小数定理与大数定理
- 8.3 辛普森悖论
1、ABtest实验目的
1,判断哪个更好,2个设计方案,需要实验判断
2,计算收益:例如,最新上线了一个直播功能,那么直播功能到底给该平台带来了多少额外的DAU,多少额外的使用时长,多少直播以外的视频观看时长等
对于一般的abtest,本质上就是把平台的流量均匀分为几个组,每个组添加不同的策略,然后根据这几个组的用户数据指标,例如:留存、人均观看时长,基础互动率等等核心指标。
2、A/Btest是什么?意义/目的/作用
一般用于互联网公司对两种方案进行效果对比,以确定哪个版本的性能更好的方法,主要是利用统计学中的假设检验的方法进行测试。
意义:
- 通过实验可以验证问题的原因
- 降低人为决策风险,用统计数字对运营进行科学支持
3、A/Btest工作原理
H0:这个改动不会对核心指标产生影响
H1:这个改动会对核心指标产生影响
当P值足够小时,我们则推翻原假设,证明这项改动会对我们所关注的指标产生显著影响
ABtest就是随机均匀样本组的对照实验,这就是AB测试的原理。
4、A/B test流程(面试喜欢问)
- 确定目标(指标):目标是用于确定变体是否比原始版本更成功的指标。可以是点击按钮的点击率、链接到产品购买的打开率、电子邮件注册的注册率等
- 分配流量:实验抽样很可能出现抽样不均的情况,尽量采用科学的试验流量分割,使得每一组实验对象具备一致的用户特征,保证实验数据的变化仅仅是实验本身引起的。可以是一次性抽取4/5组流量,选择任意两组不加策略空跑,监控核心指标数据,选取两组数据最为接近的上实验。
- 生成假设:一旦确定了目标,就可以开始生成A/B测试想法与假设,以便统计分析它们是否会优于当前版本
- 收集数据:针对指定区域的假设收集相对应的数据用于A/Btest分析
- 运行试验:测量、计算和比较他们与每种体验的相互作用,以确定每个用户体验的表现。
- 分析结果:
5、一个实际的ABtest案例
某APP上线了某功能,分析该功能是否有效果。
步骤:确定目标-确定指标-建立假设 - 选取实验单位 - 计算样本量 - 流量分割 - 实验周期计算 - 线上验证 - 数据检验
由于实验桶和基线桶的比例是1:1,所以我们分配为实验桶1w样本,基线桶1w样本量。但是由于我们不能一上来就全量试验,所以我们开20%的流量为实验桶(假设DAU的20%是2000/天,即实验桶的DAU为2000/天),那么,我们预计要实验5天(1w/2000)。
但是通过计算,用户的一次活跃周期是7天,所以我们为了让实验效果可信度更高,计划实验7天。
检验方法有以下两种:
1、算P值,P值小于5%,拒绝原假设,即产品功能有效果。这个场景中(假设)P=0.002,即我们判断产品有效果。
2、算执行区间的差值,如果不含0,则拒绝零假设。同样,我们这里假设算出来期间不含0,我们认为该产品有效果。
以上,就是一个整体的AB实验案例。我们从筛选指标,到设计实验(选取实验单位,计算最小样本量,计算实验周期),到实验上线,再到后面的效果验证。
6、AB实验的注意事项
6.1 网络效应:一个用户影响另一个用户
例子:如果微信改动了某一个功能,该功能让用户更加活跃。但是实验组的用户好友没有分配到实验组,而是在对照组。但是实验组用户更活跃(比如频繁发朋友圈),作为对照组的我们也会经常去刷朋友圈,从而对照组用户也受到实验组用户的影响。那么AB实验就不再能很好的检测出相应效果
解决办法:从地理上区隔用户。例如北京是实验组,上海是对照组,只要保证两个城市的样本量相近即可。复杂点,可以按照用户的亲密关系区分为不同的组
6.2 学习效应:新奇效应
例子:产品做了一个醒目的改版,比如某个按键颜色从暗色调成亮色。用户刚刚看到,会因为新奇点击该按钮,导致该按钮这点击率在一段时间内上涨,但是长时间来看,很可能又恢复到原有水平。反之,按钮颜色从亮色调成暗色,也有可能短时间内点击率下降,长时间内又恢复到原有水平
解决办法:1,拉长周期来看,不要一开始去观察该指标,而是一端时间后再观察该指标。2,只看新用户,因为新用户并不知道老版本的样子
6.3 多重检验问题
我们在实验中,不断的检验指标是否有差异,会造成我们的结果不可信。即,多次检验同一个实验导致第一类错误概率上涨,同时检验多个分组导致第一类错误上涨
设出现第一类错误概率:P(A)=5%
检查了20遍:p(至少出现一次第一类错误) = 1-(1-5%) ^20 = 64%
也就是说,当我们不断的去检验实验效果时,第一类错误的概率会直线上涨。所以我们在实验结束前,不要多次去观察指标,更不要观察指标有差异后,直接停止实验并下结论说该实验有效。
6.4 先验性:
通过低代价,小流量的实验,再推广到全流量的用户
6.5 并行性:
不同版本、不同方案在验证时,要保证其他条件一致
6.6 分流科学性和数据科学性:
分流科学是指对AB两组分配的数据要一致,数据科学性是指不能直接用均值转化率、均值点击率来进行AB test决策,而是要通过置信区间、假设检验、收敛程度来得出结论。
7、相关面试题
7.1:滴滴准备升级司机端的一个功能,该如何校验功能效果?
考点1:常见的AB测试流程设计
考点2:网络效应
解法:
针对考点1:AB测试的流程是 确定目标 --> 确定实验单位 --> 确定最小样本量 --> 确认流量分割方案 --> 实验上线 --> 规则校验 --> 数据收集 --> 效果检验
针对考点2:实验分桶,以两个量级相近城市分割,避免网络效应的相互影响
7.2:某app,用户活跃周期是14天,这时,上线了一个实验,计划跑20天在看效果,结果有位新同学,在10天时做了统计推断,发现数据已经有了显著差异,认为可以停止实验,这样做对吗?
考点1:实验周期应该跨越一个活跃周期
解法:
由于AB测试的实验周期尽量跨越一个用户活跃周期,且在实验结束时再做统计推断,所以该做法不对,建议跑慢20天再看数据效果。
8、数理统计原理(AB测试相关)
8.1 中心极限定理
样本的平均值约等于总体的平均值。不管总体是什么分布,任意一个总体的样本平均值都会围绕在总体的整体平均值周围,并且呈正态分布。
用途: 1.用样本估计总体。2.根据总体信息,判断某个样本是否属于总体(3σ之内,概率99.7%)。
8.2 小数定理与大数定理
小数定律:如果统计数据很少,那么事件就表现为各种极端情况,而这些情况都是偶然事件,跟它的期望值一点关系都没有。
大数定律:如果统计数据足够大,那么事物出现的频率就能无限接近他的期望值。