这是我参与8月更文挑战的第21天,活动详情查看:8月更文挑战
AB test - 中心极限定理、假设检验、z分布、t分布
A/B test是什么
A/B 测试是为了评估 模型/项目 的效果,在App/Pc 端设置多个版本, 同一维度下 - 分别让组成成分相同(相似)的访客群组随机访问这些版本,收集各群组的用户体验数据和业务数据,最后分析评估出最好的版本正式采用。
AB测试的整个过程:试验分组、进行试验、分析结果
直观上看:分组 - 整个测试中较简单的部分,实际上 - 测试中最重要的一个环节
介绍常用的AB测试的分组方法
- 基于设备号、用户唯一标识的尾号/其他指标进行分组【尾号为奇数/偶数】
- 基于这些唯一标识 - 通过一个固定的Hash函数对用户唯一标识进行Hash取模、分桶,将用户均匀地分配至若干个试验桶中 - 能够进一步将用户打散,提高分组的效果
同同一批用户可能会同时作为多个试验的数据源 - 进行分组要全方位地考虑目前正在进行的试验情况
面对多个试验并行的情况,如何保证分组的合理性?
所有的用户 - 试验开始前 - 划分为不同的域 - 不同域之间的用户相互独立,交集为空
一些比较重要的试验 - 专门划分出一部分用户 - 在该试验进行期间,不会针对这些用户进行其他试验 - 独占域
共享域 - 域中的用户会同时进行多组AB测试 - 考虑分层 - 每个试验作为单独的一层 - 根据试验开始的时间,将试验按照从上层到下层的顺序进行排列 - 下一层试验进行分组时,需要将上一层试验各个分组的用户打散
同一个共享域不可以同时进行过多的试验
如何充分证明AB测试分组的随机性?
在AB测试中 - 引入AA测试 - 进一步保证分组的随机性
最终验证结果时,首先要保证AA测试通过,确保分组的合理性,再看AB测试是否通过;AA测试未通过,AB测试的结果就没有任何意义
简述AB测试背后的理论支撑
AB测试的核心原理 - 中心极限定理 - 数据量足够大时,可以认为样本均值近似服从正态分布。结合假设检验的内容,推翻/接受原假设
如何通过AB测试证明新版本用户的转化率高于老版本用户的转化率?
新老版本用户是否下单的样本记为x1 - xn和y1 - yn,最终下单记为1,否则记为0。随着样本量的增加 - X,Y的均值分布趋近于N(μ, σ²/n)
由于在分组中已经保证了X,Y均值相互的独立性 - 因此 X均值 - Y均值 ~ N(x均值-y均值,sx²/(n-1)+sy²/(n-1))
X,Y 均值分别代表新老版本用户的转化率 - 证明新版本用户的转化率高于老版本用户的转化率。原假设和备择假设如下:
H0: 新版本用户的转化率低于/等于老版本用户的转化率
H1:新版本用户的转化率高于老版本用户的转化率
通过拒绝H0,接受H1 - 证明新版本用户的转化率高于老版本用户的转化率