1.请描述一下什么是A/B test?
定义:AB test是基于小样本的后验方法,通过设置对照组和实验组,对变量进行试验,通过假设检验对不同组的结果进行检验,以检验变量是否对结果造成显著影响,从而选取最合理的方法
核心逻辑:通过随即合理分流,设置对照组和实验组,分别对两组施加不同的变量,观察两组用户在一段时间内的表现,通过假设检验分析结果是否有显著差异,从而判断改动是否可执行
应用场景:常应用于产品功能,算法策略迭代
2.如果验证AB test的结果?
可以通过假设检验,单尾/双尾检验来验证
假设检验:一般情况下,绝对指标用T检验,相对指标用Z检验
单尾/双尾检验:单尾检验的前提是认为两组指标不同且还明确了大小,一般情况下,我们都认为实验组的效果高于基线组;双尾检验只是认为两组指标不同,未明确大小。通常来说,我们更推荐双尾检验
3.某个购物APP最近优化了“猜你喜欢”模块的推荐算法,希望进一步提升推荐的精准度,进而提升销售额。现在需要通过AB test(50%用户保留原先推荐算法的为控制组,50%用户使用新的推荐算法为实验组)来对新的推荐效果进行评估。请问你会如何评估控制组和实验组的表现?请按重要性列出最重要的三个指标并给出你的分析过程
选择指标:推荐商品的销售额,推荐商品点击率,推荐商品的转化率
分析过程:①设原假设为使用新的推荐算法后上述指标降低或不变,备择假设为使用新的推荐算法后上述指标增加 ②选择显著性水平临界值为5%,并根据指标的预期提升确定样本量和试验周期 ③样本合理分流,AB测试上线,采集数据 ④使用T检验,计算P值,进行效果验证 ⑤分析结论,如果P值小于5%,那么原假设不成立,备择假设成立,即使用新算法后指标提升
4.请分析下AB test的结果统计显著不等于实际显著,你怎么看?
①统计学上显著,实际不显著
可能的原因是我们在AB测试当中所选取的样本量过大,导致和总体数据量差异很小
举例:对应到我们的互联网产品实践当中,我们做了一个改动,APP的启动时间的优化了0.001秒,这个数字可能在统计学上对应的P值很小(统计学上是显著的),但是在实际中用户0.01秒的差异是感知不出来的。那么这样一个显著的统计差别,其实对我们来说是没有太大的实际意义的
②统计学上不显著,实际显著
一般我们会使用的通用的方式是将这个指标去拆分成每一天去观察。如果指标的变化曲线每一天实验组都高于对照组,即使他在统计上来说是不显著的,我们也认为在这样一个观测周期内,实验组的关键指标表现是优于对照组的,那么结合这样一个观测,我们最终也可以得出这个优化可以上线的结论
5.AB test如何合理分流?
用户分流一定要随机均匀,保证各组的用户分布一致,有分桶和分层两种方式,同一层切分为不同的桶,各桶之间是互斥的,即一个用户只能出现在一个桶里,当要同时进行多个实验时,业务逻辑分为解耦的多层,不同的层共享同一批流量,一个用户可以进行多个实验,充分利用流量
方式一(分桶):直接将整体用户切割为几桶,用户只能在一个桶中,但这种情况很不现实,因为如果要同时上线多个实验,流量不够切怎么办?那为了达到最小样本量,就得延长实验周期,做一个实验,要几个月
方式二(分层):将业务逻辑互斥的环节分为多层,每一层都共