第一种原因一般选择放弃这个变化,尝试测试新的变化
对于第二种原因,尝试提高power:通过样本量公式 n = ( Z 1 − α 2 + Z 1 − β ) 2 ( δ σ p o o l e d ) 2 = ( Z 1 − α 2 + Z p o w e r ) 2 ( δ σ p o o l e d ) 2 n=\frac{(Z_{1-{\frac{\alpha}{2}}}+Z_{1-\beta})^2}{(\frac{\delta}{\sigma_{pooled}})^2}=\frac{(Z_{1-{\frac{\alpha}{2}}}+Z_{power})^2}{(\frac{\delta}{\sigma_{pooled}})^2} n=(σpooledδ)2(Z1−2α+Z1−β)2=(σpooledδ)2(Z1−2α+Zpower)2,可以发现提高样本量或者减小方差即可。
通过样本量提高power
延长测试时间:每天产生的样本量是一定的,所以当测试时间延长后,收集到的样本量就会扩大
增加测试使用流量在总流量中的占比
多个测试共用同一个对照组:实际中会同时进行多个实验,有些实验的对照用户基本一样。假设有4个同时进行的实验,每个实验两组,可用流量有8w,则每组只能使用1w的流量,但将四个实验共用同一个对照组,此时的实验就变成了A/B/n,只有5组,则每组可使用的流量就达到了1.6w。
经验建议:如果时间允许,最常用的是延长测试时间,简单实用。如果时间不充足,则可以优先选择增加测试使用流量占比。如果实际中存在多个实验的对照组相同的情况下,可以进行A/B/n实验
通过减小方差提高power
保持原指标不变,通过剔除离群值(Outlier)减小方差:如果指标的直方图分布中有明显的异常值,可以通过设置封顶阈值(Capping Threshold)的方式。例如只选取95%的取值范围,剔除剩余的5%的离群值。由于会存在极少数特别活跃的用户,他们产生的行为数据往往就会显得异常。
选用方差较小的指标:取值范围窄的指标比取值范围广的直销方差要小,常见的概率类指标比均值类指标方差小,均值类指标比数量的方差要小。例如购买额>人均购买额>购买率
倾向得分匹配(PSM):构造与对照组相似的数据点,当两组样本越相似,方差越小
在触发阶段计算指标:一般出现在有固定路径的业务场景,例如电商的购买:进入APP->浏览商品->查看商品详情->加入购物车->购买。当优化整个路径时,往往用户在进入APP就被分配到了实验组/对照组,在后续测试购物车页面变化时,只有进入到购物车页面的用户才能出发测试条件进入实验。

指的是当同时比较多个检验时,第一类错误率α就会增大,而结果的准确性就会受到影响这个问题
当我们进行一次实验时,往往存在5%的概率(犯第一类错误)认为两组指标不同,但事实上两组指标相同。如果进行多次重复实验,例如20次,假设每次实验依然存在犯第一类错误的概率为5%,那20次中至少出现一次第一类错误的概率约为 1 − ( 1 − 0.05 ) 20 = 64 % 1-(1-0.05)^{20}=64\% 1−(1−0.05)20=64%。这里的概率p(至少出现一次第一类错误的概率)又叫FWER(Family-wise Error Rate)。

由上图可知:
- 随着检验次数的增加,FWER会显著升高
- 当 α \alpha α越小时,FWER会越小,上升的速度也越慢。所以降低 α \alpha α就成为了解决多重检验问题的一种潜在有效方法
经验总结:虽然Bonferroni校正十分简单,但由于过于严格和保守,所以在实践中更推荐使用BH法来矫正p值
一些实验中的变化是非常明显的(例如交互界面、功能模块等),由于老客户在过往历史已经习惯了就的交互界面或功能,对于新的变化需要一段时间来适应和学习。因此老用户在这个适应学习阶段的行为表现与平常表现不一致。
延长实验时间,等到实验组的学习效应消退后再进行比较
当多组数据内部组成分布不均匀时,从总体上比较多组数据和分别在每个细分领域中比较多组数据可能会得出相反的结论。举个房价的例子:2020年的房价较2019年降低了7%!实际上新房和二手房的成交价都是上涨的
| 新房成交数量 | 新房成交均价 | 二手房成交数量 | 二手房成交均价 | 成交均价 | |
|---|---|---|---|---|---|
| 2019年 | 10w | 3w | 2w | 1w | 2.7w |
| 2020年 | 2w | 5w | 10w | 2w | 2.5w |
在分流过程中,实验组和对照组在个别细分维度的分布不一致
A/B测试有一个前提,实验组和对照组的实验单位是要相互独立的,这个前提又叫做SUTVA( Stable Unit Treatment Value Assumption)。测试中各组实验单位的行为仅受本组体验的影响,不能受其他组的影响。
经验总结:通过不同形式的隔离来排除两组之间的干扰
日常爬坑操作~
共勉~