营销场景下的ABtest与它的统计原理

ABtest

ABtest大家都不陌生,test通常包含对照组和实验组,二者通常只有一个要素不同,通过实际效果对比判断这个要素对于提升效果是否有帮助。这里有个核心问题是假设检验的使用。为什么要用到假设检验,举个例子,营销场景,对照组和实验组各营销10000人,对照组的转化率为1%,实验组1.2%,那么我们能得到实验组好于对照组么?这个0.2%的提升可能是由于我们的改进带来的,也可能是随机产生的,即改进没有任何效果,对于这两种情况需要使用假设检验进行判断。

假设检验

假设检验通常包括零假设和对立假设,我们有个观测量,在零假设成立的情况下,它服从一个分布,我们计算在这个分布下,大于观测量的结果可能出现的概率,也就是p值。假设 α \alpha α为置信度,如果p-value<1- α \alpha α,那么我们就可以拒绝零假设了。

在上面营销场景转化率比较的ABtest中,零假设就是对照组和实验组对应的两个总体的转化率相同,我们需要根据观测结果判断这个假设是否成立。如果零假设成立,就意味着改进没有发生作用,这个就不是我们希望的了。

Z检验

伯努利分布

接下来讨论如何根据观测值判断零假设是否成立。营销场景中,每个用户是否购买(或者发生点击等等行为)可以看作独立的伯努利实验(当然实际上每个用户的购买倾向都是不同的,由于我们关心的是平均购买倾向,所以可以假定每个用户的购买倾向相同)。假设营销的用户数量为n,这样营销活动可以看作是一个重复n次的伯努利实验,行为发生的概率我们记为p,那么营销活动的订购数量就服从二项分布 B ( n , p ) B(n,p) B(n,p)。当n很大时(超过30), B ( n , p ) B(n,p) B(n,p)就可以使用正态分布 N ( n p , n p ( 1 − p ) ) N(np,np(1-p)) N(np,np(1p))近似。由于转化率等于订购数量/营销数量,所以转化率就服从 N ( p , p ( 1 − p ) n ) N(p,\frac{p(1-p)}{n}) N(p,np(1p))。到此,营销活动ABtest的假设检验中观测结果服从的概率分布就确定了。

假设对照组的转化率是 p 1 p_1 p1, 实验组的转化率是 p 2 p_2 p2,那么有:
p 1 ∼ N ( p , p 1 ( 1 − p 1 ) n 1 ) p_1\sim N(p,\frac{p_1(1-p_1)}{n_1}) p1N(p,n1p1(1p1)),
p 2 ∼ N ( p , p 2 ( 1 − p 2 ) n 2 ) p_2\sim N(p,\frac{p_2(1-p_2)}{n_2}) p2N(p,n2p2(1p2)).
这里我们使用样本的方差作为总体的方差,但是均值都记为p,因为零假设这个前提条件。

OK, 这样就有:
p 1 − p 2 ∼ N ( 0 , p 1 ( 1 − p 1 ) n 1 + p 2 ( 1 − p 2 ) n 2 ) p_1-p_2\sim N(0,\frac{p_1(1-p_1)}{n_1}+\frac{p_2(1-p_2)}{n_2}) p1p2N(0,n1p1(1p1)+n2p2(1p2)),

我们算下z-score:
p 1 − p 2 p 1 ( 1 − p 1 ) n 1 + p 2 ( 1 − p 2 ) n 2 ∼ N ( 0 , 1 ) \frac{p_1-p_2}{\sqrt{\frac{p_1(1-p_1)}{n_1}+\frac{p_2(1-p_2)}{n_2}}}\sim N(0,1) n1p1(1p1)+n2p2(1p2) p1p2N(0,1),

p 1 − p 2 p 1 ( 1 − p 1 ) n 1 + p 2 ( 1 − p 2 ) n 2 \frac{p_1-p_2}{\sqrt{\frac{p_1(1-p_1)}{n_1}+\frac{p_2(1-p_2)}{n_2}}} n1p1(1p1)+n2p2(1p2) p1p2也就是我们的p-value了。在置信度95%的条件下, p 1 − p 2 p 1 ( 1 − p 1 ) n 1 + p 2 ( 1 − p 2 ) n 2 \frac{p_1-p_2}{\sqrt{\frac{p_1(1-p_1)}{n_1}+\frac{p_2(1-p_2)}{n_2}}} n1p1(1p1)+n2p2(1p2) p1p2超过1.65就可以拒绝零假设了。90%的置信度z-score需要大于1.28。以上检验过程称为z检验。

正态分布

营销转化率场景是建立在用户行为服从伯努利分布,我们接下来考虑更为一般的场景,即用户行为服从正态分布。通常ABtest要检验的指标都是样本结果的汇总值,比如平均值。假设单个用户的行为结果 X ∼ N ( μ , σ 2 ) X\sim N(\mu,\sigma^2) XN(μ,σ2),那么检验指标如果是平均值的话,它就服从 N ( μ , σ 2 / n ) N(\mu,\sigma^2/n) N(μ,σ2/n)

假设对照组的观测值是 X 1 ˉ \bar{X_1} X1ˉ, 实验组的观测值是 X 2 ˉ \bar{X_2} X2ˉ,那么有:
X 1 ˉ ∼ N ( μ , σ ˉ 1 2 / n 1 ) \bar{X_1}\sim N(\mu,\bar\sigma_1^2/n_1) X1ˉN(μ,σˉ12/n1),
X 2 ˉ ∼ N ( μ , σ ˉ 2 2 / n 2 ) \bar{X_2}\sim N(\mu,\bar\sigma_2^2/n_2) X2ˉN(μ,σˉ22/n2),
σ ˉ 1 2 , σ ˉ 2 2 \bar\sigma_1^2,\bar\sigma_2^2 σˉ12,σˉ22是样本估计的方差,则
z-score= X 1 ˉ − X 2 ˉ σ ˉ 1 2 / n 1 + σ ˉ 2 2 / n 2 \frac{\bar{X_1}-\bar{X_2}}{\sqrt{\bar\sigma_1^2/n_1+\bar\sigma_2^2/n_2}} σˉ12/n1+σˉ22/n2 X1ˉX2ˉ

看个具体的例子。教育场景中,我们通常会将班级的考试平均分作为衡量教学质量的指标。假设我们针对教学方法做了改进,A班使用传统的教学方法,B班使用改进的教学方法,根据A班和B班的考试平均分,确定改进是否有效。这个例子中,单个学生的考试成绩服从正态分布, 我们可以使用上面的公式 X 1 ˉ − X 2 ˉ σ ˉ 1 2 / n 1 + σ ˉ 2 2 / n 2 \frac{\bar{X_1}-\bar{X_2}}{\sqrt{\bar\sigma_1^2/n_1+\bar\sigma_2^2/n_2}} σˉ12/n1+σˉ22/n2 X1ˉX2ˉ计算z-score, X 1 ˉ \bar{X_1} X1ˉ X 2 ˉ \bar{X_2} X2ˉ是两个班级的考试平均分, σ ˉ 1 2 \bar\sigma_1^2 σˉ12 σ ˉ 2 2 \bar\sigma_2^2 σˉ22是两个班级的考试分数方差, n 1 n_1 n1 n 2 n_2 n2是两个班级的学生数量。
其他场景下这样的例子还有很多,餐饮的人均点餐价格、电商的客单价等等。

总结

总结一下,在一个具体的业务场景中,我们可以进行ABtest测试某个改进是否对提升业务指标有帮助。在这个场景中,单个用户的行为结果服从伯努利分布或者正态分布。业务指标通常是行为结果的平均值。当用户数量比较多时,进行z检验,过程如上所述。而当用户数量比较少时,可以进行t检验,t检验等我以后有时间再补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值