AB测试

AB测试

简述AB测试

  • AB测试是指为了评估模型/项目的效果,在App/PC端同时设计多个版本,在同一时间维度下,分别让组成成分相同(相似)的访客群组随机访问这些版本,收集各群组的用户体验数据和业务数据,最后分析评估最好的版本正式采用。
  • AB测试的整个过程分成三个部分:试验分组、进行试验、分析结果
  • 直观上看,分组是整个测试中比较简单的部分,但实际上它是测试中最重要的一个环节,如果分组不合理,之后的试验都是徒劳。

常用的AB测试分组方法

  • 常用的分组方法包括基于设备号,用户唯一标识(如用户id等)的尾号或者其他指标进行分组,如按照尾号为奇数或者偶数分成两组,在分组过程中不需要对这些唯一标识进行处理。另外一种方法就是基于这些唯一标识,通过一个固定的Hash函数对用户唯一标识进行Hash取模、分桶,讲用户均匀地分配至若干个试验桶中。可以将桶简单地理解为小组,通常会分为100个组或者1000个组,相比于直接基于唯一标识进行分组,这种方法能够进一步将用户打散,提高分组的效果。
  • 上面介绍了将用户进行分组的方法,在进行单个试验的情况下,可以将通过Hash函数得到的桶编号1-100,在试验中将编号1-50分为A组,将编号51-100分为B组,然后进行对比。但是在实际工作中,通常会出现多个试验并行的情况,并且由于网站或者APP的流量是有限的,同一批用户可能会同时作为多个试验的数据源,此时进行分组就要全方位地考虑目前进行的试验情况。

面对多个试验并行的情况,如何保证分组的合理性?

  • 这里需要引入‘域’的概念。对于所有的用户,需要在所有的试验开始前将其划分为不同的域,不同域之间的用户互相独立,交集为空。对于一些比较重要的试验,可以专门为其划分出一部分用户,在该试验进行期间,不会针对这些用户进行其他试验,这称为‘独占域’。在进行试验时,只需要基于这些用户的Hash值分组即可。
  • 与‘独占域’对应的是‘共享域’,即针对域中的用户会同时进行多组AB测试,此时在分组的时候就需要考虑分层。为了方便理解,这里将每一个试验作为单独的一层,根据试验开始的时间,将试验按照从上层到下层的顺序进行排列,下一层试验进行分组时,需要将上一层试验各个分组的用户打散。在这里插入图片描述
  • 可以看到,第二层分组开始时,充分考虑了第一层的各个分组,将第一层各个分组的用户随机选取50%进入第二层的分组中,这样保证了第二层用户的随机性。依次类推,各个层在分组时都需要将上一层分组的用户打散。
  • 综上所述,分组情况如图所示。
    在这里插入图片描述
    需要注意的是,在同一个共享域不可以同时进行过多的试验,即使基于正交的方法可以保证随机性,但通常最多也不要超过7个试验同时进行,同时也要思考是否有办法验证分组的随机性。
    如何充分证明AB测试分组的随机性
  • 在AB测试中,理论上,即使通过基于正交的方法可以保证用户分组的随机性,但是为了防止意外情况的发生,还需要引入‘AA测试’的概念,进一步保证分组的随机性。通常分组情况如图所示。
    在这里插入图片描述
  • 以上就是一个典型的试验分组策略。通常用A版本表示老版本,B版本表示新版本,按照6:4的比例进行划分,同时从A版本中划分20%的用户进行AA测试。最终验证结果时,首先要保证AA测试通过,确保分组的合理性,然后看AB测试是否通过;如果AA测试没有通过,那么AB测试的结果就没有任何意义。
    《数据分析求职面试指南》
posted @ 2021-03-09 20:42  tmboy  阅读(667)  评论(0编辑  收藏  举报