7.6 ABtest
简而言之,ABtest就是基于经典统计学推断来比较某种新措施是否显著改变了目标变量。也就是两总体的均值检验
比例是均值的特殊情况
流程:
<明确测试目的>
<确定核心指标(辅助指标)>
<构建原假设和备择假设>
<确定样本量及流量分割>
<开展实验>
<验收结果>
- 明确目标
根据目标选取对应的指标来量化该目标,并建立原假设和备择假设。
原假设是保守的,备择假设是期望的
- 流量分配
在分配流量时需确保随机化原则,注意辛普森悖论。
抽样时可考虑简单随机抽样和分层抽样
考虑正交实验和互斥实验。正交实验即分层,是对流量的重复使用,当然也得确保层内不同组的流量是上一层流量均匀分散的结果。互斥实验即分流,也就是将流量分开,不同实验的样本互不重叠。
正交实验适用于不同实验间关联性较小的场合,这样才能检验出干预效果的源头。互斥实验适用于不同实验间存在较大关联度,需排除互相干扰的影响。
分层与分流可以相互嵌套。
- 样本量与实验周期计算
此处的样本量指的是每组的样本量大小,总的样本量大小是其两倍。
不妨记A组为对照组(保守的),B组为实验组(新式的),对应的指标为\(\bar X_1\)和\(\bar X_2\)。
设置显著性水平\(\alpha\),统计功效\(1-\beta\),及预期效应大小\(\delta = \mu_2 - \mu_1\)。
预期效应大小是二者之间至少差多少的概念
前后无论是提升还是减少都是“对称”的。简单起见,下面考虑\(\delta > 0\)的情况
在大样本条件下(大数定律与中心极限定理),有
\[ n = \frac{(Z_{1-\alpha /2} + Z_{1-\beta})^2*\sigma^2}{\delta^2} \]
\(\mu_1 + Z_{1-\alpha /2} = \mu_2-Z_{1-\beta}\)
\(\sigma^2\)需考虑方差已知或未知,未知时又是否相等的情形,必要时可用方差齐性检验,如levene检验
对于不等比例分组的情形,令实验组样本量为\(n_2\),对照组为\(n_1=kn_2\),则\(n_2=\frac{k+1}{k}n\)
对于实验周期,核心公式是
\[ \text{time} = \frac{\text{total_sample_size}}{ c*\text{unit_flow}} \]
其中\(\text{unit_flow}\)表示单位流量,通常为一天中的流量。但在这些流量中有些并不是我们关注的,存在一个转化问题,因此需要添加一个转化系数\(c\)。
实验周期应当完整覆盖周期性规律对应的时长
存在预烧期、滞后性、新奇效应等情况,需人为删除早期时长或延长观测时长
可在正式实验前进行AA测试(对照组vs对照组),确认分流是否合理
可动态调整流量大小,如前期小流量,后期大流量
- Tips
多重比较谬误:邦费罗尼(Bonferroni)校正(调整显著性水平或调整p值阈值)、FDR(错误发现率)控制、Holm-Bonferroni法
小样本时用t检验
如果实验研究多个指标,则分别对每个指标计算最小样本量,选择其中的最大值
部分流量可能会中途流失,可用生存分析分析留存率
SRM(sample ratio mismatch)问题,实验组和对照组的样本比例与预期不同可能会导致测试结果偏差。可通过卡方检验来判断是否存在该问题。
cuped调整:利用用户实验前的历史数据作为协变量,通过线性模型调整实验指标,消除个体差异带来的噪声,降低方差,得到更敏感的指标,放大干预的影响
- 辅助工具
- Evan’s Awesome AB Tools:支持比例、均值、留存率等场景,提供直观的样本量计算