频率论AB测试统计原理,基于假设检验的方法步骤,样本数估计方法贝叶斯AB测试统计原理:观察数据->计算后验->做出决策AB行业测试流程频率论AB检验原理假设检验:二样本t检验AB检验是频率论统计理论应用的典型体现。他是基于两个基本逻辑:抽样分布的确定(大数定理、中心极限定理、三大分布t分布、F分布、卡方分布),这样我们就可以用抽样数据来估计整体的均值和方差假设检验法使得使用反证法,用??小概率事件推翻原假设,接受我们要检验的备择假设成为可能。因此,频率论者AB检验的思路是基于一个零假设:H0:A/B组的指标均值没有差异。那么接下来的检验逻辑几乎就是双样本均值检验的过程。根据原假设,写出指标A-指标B均值的抽样分布->构造统计量并计算p值->根据进行区间检验。注意A和B两个种群的指标分别是$X_1$,$X_2$,样本分布和均值差的分布可以直接写成:$$\bar{X_1}\simN(\mu_1,\sigma_1^2/n),\\bar{X_2}\simN(\mu_2,\sigma_2^2/n)\\\bar{X_1}-\bar{X_2}\simN(\mu_1,\mu_2,\\sigma_1^2/n+\sigma_2^2/n)\\if\假设\\mu_1=\mu_2,\bar{X_1}-\bar{X_2}\simN(0,\sigma_1^2/n+\sigma_2^2/n)$$此时,如果已知总体方差,我们可以直接计算统计检验。但大多数无法获得人口方差。这时候我们会利用频率论者推导一些关于样本标准差的抽样分布:已知当变量符合正态分布时,样本标准差$S$和总体方差$\sigma$符合分布:$$\frac{(n-1)S^2}{\sigma^2}\sim\chi^2(n-1)$$我们在左边看到总体方差$\sigma$,并且$N(0,\sigma_1^2/n+\sigma_2^2/n)$头疼的是方差位置,自然的思路是除左边,消去$\sigma$:$$\frac{\bar{X}-\mu}{\sigma/\sqrt{n}}/\sqrt{\frac{S^2(n-1)}{\sigma^2*(n-1)}}=\frac{\bar{X}-\mu}{S/\sqrt{n}}\sim\N(0,1)/\sqrt{\frac{\chi^2(n-1)}{n-1}}=t(n-1)$$$t(n-1)$是常用于假设检验的t分布。可以看出,左边消除整体方差后,右边刚好符合t分布。因此,我们用于H0假设的统计数据是:$$t=\frac{\bar{X_1}-\bar{X_2}-\mu_1-\mu_2}{\sqrt{\frac{S_1^2}{n}+\frac{S_2^2}{n}}}\\假设\\mu_1=\mu_2,\t=\frac{\bar{X_1}-\bar{X_2}}{\sqrt{\frac{S_1^2}{n}+\frac{S_2^2}{n}}}$$至此,频率论AB检验的基本统计原理和假设总结如下:H0:$$\bar{X_1}-\bar{X_2}=0$$当整体方差未知时,假设AB整体均值相同,且符合正态分布,则构造的统计量为$$t=\frac{\bar{X_1}-\bar{X_2}}{\sqrt{\frac{S_1^2}{n}+\frac{S_2^2}{n}}}$$根据置信区间$$\bar{X_1}-\bar{X_2}\pm\t_{\frac{\alpha}{2}}\sqrt{\sigma_1^2/n+\sigma^2_2/n}$$测试;继续放宽条件,ztest当然,以上过程是建立在两个总体的方差不一样$\sigma_1\neq\sigma_2$的前提下。如果我们继续放宽这个假设,两个总体的方差和均值是相同的。然后我们可以直接使用$z$测试。也可以认为,当样本量不断增加时,样本标准差和总体误差的方差估计越小,可以替代,直接用样本标准差计算z-score.z检验的置信区间:$$\bar{X_1}-\bar{X_2}\pmz_{\frac{\alpha}{2}}\star\sqrt{\sigma_1^2/n+\sigma_2^2/n}$$下表基本涵盖了双样本均值检验的所有情况,除AB检验外的其他检验问题同样适用。如何确定测试所需的样本量?频率论者AB检验借用假设检验的统计功效(StatisticalPower)的概念来估计达到一定功效所需的样本量。下图是假设检验中两类错误的经典示意图:$\beta$部分是我们错误地接受了原假设H0而产生的错误(第二类错误)。不犯此错误的概率$1-\beta$是这里的双样本检验定义的统计功效。计算如下:$$1-\beta=\Phi(z-z_{1-\alpha/2}+\Phi(-z-z_{1-\alpha/2}))\\z=\frac{\bar{X_1}-\bar{X_2}}{\hat{\sigma}\sqrt{2/n}}$$可见性是根据z分数计算的。这输入了我们想要的功效并产生了所需的样本量。贝叶斯AB测试原理贝叶斯方法的优点频率论AB测试有一些缺点。例如,它只能根据观测数据为原假设的反例提供证据,而不能为接受备择假设提供证据。也无法证明这两个实验哪个更好。贝叶斯AB检验过程更清晰[5]:贝叶斯AB检验可以直接给出AB的两个实验参数哪个更好的结论。和频率论者一样,贝叶斯AB检验也充分展示了贝叶斯统计的核心理论。贝叶斯原理假设每个人都熟悉贝叶斯统计。与频率论者最大的区别在于,贝叶斯统计认为参数以概率分布的形式存在,而不是确定性的。并且贝叶斯定理用于在观察到新数据时正确更新这些概率,以减少我们对参数概率的不确定性。贝叶斯统计围绕先验(prior)、似然(likelyhood)、后验(posterior)和证据(observation,evidence):$$\mathbb{P}(H|\bold{d})=\frac{\mathbb{P}(H)\mathbb{P}(\bold{d}|H)}{\mathbb{P}(\bold{d})}$$其中$\mathbb{P}(H|\bold{d})$是贝叶斯统计要得到的核心结论,参数的后验概率。这个参数H可以是我们对组的参数估计,也可以是对参数的一些假设。$\mathbb{P}(\bold{d})$的计算是Betes统计的核心挑战,他只能用积分计算才能准确:$\mathbb{P}(\bold{d})=\int\mathbb{P}(H|\bold{d})\mathbb{P}(H)dH$。贝叶斯AB检验回到本文AB检验的主题,我们希望直接得到AB的两组指标的后验分布,或者说差值的后验分布。以在线转化率(conversion)为例,贝叶斯AB检验的步骤为:1.确定似然分布转化率的分布被视为两组用户A和B是否进行了一次某种转化行为,0表示没有,1表示有这种行为。因此,AB的转换行为是转换率$p_A,p_B$的伯诺利分布:$$\bold{d_A}=\{0,1,0,...,1\}\\d_A\simBeinolli(N_A,p_A)\\d_B\simBeinolli(N_B,p_B)$$那么似然可以直接写成$$\mathbb{P}(d|H)-\mathbb{P}(d_A,d_B|p_A,p_B)=\mathbb{P}(d_A|p_A)\mathbb{P}(d_B|p_B)=p_A^{c_A}(1-p_A)^{N_A-c_A}p_B^{c_B}(1-p_B)^{N_B-c_B}$$2。选择参数的先验分布参数的先验是我们对参数分布所做的初始假设。比如在转化率上,如果我们对在线转化率一无所知,我们可以假设一个均匀分布。如果线上已经有之前性能的历史经验,也可以假定高斯分布。但是为了后续计算的方便,贝叶斯统计建议我们选择似然分布的共轭先验作为参数的先验。共轭先验与似然相乘得到的后验分布与先验分布的数学形式一致。比如我们假设转化率数据在AB线上的似然是贝努利分布,他的共轭先验分布是贝塔分布,也就是说计算出来的后验也是贝塔分布:$$p\simBeta(\alpha,\beta)=\frac{p^{\alpha-1}(1-p)^{\beta-1}}{B(\alpha,\beta)}\\B(\alpha,\beta)=\frac{\Gamma(\alpha)\Gamma(\beta)}{\Gamma(\alpha+\beta)}\\$$计算后验可以推导出:$$\mathbb{P}(p_A|\bold{d}_A)\simBeta(\alpha+c_A,\beta+(N_A-c_A))\\\mathbb{P}(p_B|\bold{d}_B)\simBeta(\alpha+c_B,\beta+(N_B-c_B))$$3。计算后验分布在上一步中,如果我们选择共轭先验,我们可以找到后验的解析解。但是,当变量是多维的,解析形式复杂时,我们也可以选择数值解(近似解)。后验近似解的方法有很多,如变分VA、MCMC等。下面是PyMC3的MCMC采样求解的转换率后验分布:importnumpyasnpimportpymc3aspmimportmatplotlib.pyplotaspltpA_true=0.04pB_true=0.05N_A=2500N_B=3000obs_A=np.random.binomial(1,pA_true,size=N_A)obs_B=np.random.binomial(1,pB_true,size=N_B)withpm.Model()asab_model:#priorsp_A=pm.Uniform('p_A',0,1)p_B=pm.Uniform('p_B',0,1)#likelihoodsobs_A=pm.Bernoulli('obs_A',p_A,observed=obs_A)osb_B=pm.Bernoulli('obs_B',p_B,observed=obs_B)#求差异分布delta=pm.Deterministic('delta',p_B-p_A)trace=pm.sample(5000)pm.traceplot(trace)MCMC的数学细节就不多描述了,只需要知道他用的是一个已知的采样分布对后验分布进行采样。并且在采样的时候,可以采样到密度函数的密集区域,保证了采样的高质量。4.做决定贝叶斯AB检验的方法得出结论没有标准范式。介绍了两种常见的做法。RegionOfPracticalEquivalence(ROPE)[6]首先定义了一个Effectivesize:$\frac{\mu_A-\mu_B}{\sqrt{\sigma_A^2+\sigma_B^2}}=\pm0.1$,索引为就是说两组实验指标在10%的范围内都是不可接受的(不能显着证明是定论)。我们将什么与这个有效尺寸进行比较?在上一步中,我们得到了后验$\mathbb{P}(\mu_A-\mu_B|\bold{d})$,我们将其与其95%HPD(HighPosteriorDensityInterval)进行了比较。HPD是后验分布的定义:那么我们比较95%-HPD和Effectivesize:图(a)可以看出HPD在Effectivesize的两边,并没有足够的证据证明两者之间有差距两组;图(b)HPD完全在Effectivesize的一侧,可以宣告一侧胜利;图(c)中的HPD完全被Effectivesize所包含,可以断言两者没有显着差异。预期损失方法[7]定义预期损失:$$\mathbb{E}(??\mathcal{L})=\min(\mathbb{E}(??\mathcal{L}_A),\mathbb{E}(??\mathcal{L}_B))\\\mathbb{E}(??\mathcal{L}_A)=\int_0^1\int_0^1\max(\mu_A-\mu_B,0)\mathbb{P}(\mu_A|d_A)\mathbb{P}(\mu_B|d_B)d\mu_Ad\mu_B\\\mathbb{E}(??\mathcal{L}_B)=\int_0^1\int_0^1\max(\mu_B-\mu_A,0)\mathbb{P}(\mu_A|d_A)\mathbb{P}(\mu_B|d_B)d\mu_Ad\mu_B$$其中$\mathbb{E}(??\mathcal{L}_A)$表示如果我们宣布A获胜,损失值是多少;决策规则是:如果$\mathbb{E}(??\mathcal{L})$小于我们设定的阈值,则按照损失较小的原则选择A或A,B胜;如果$\mathbb{E}(??\mathcal{L}_A)$和$\mathbb{E}(??\mathcal{L}_B)$都小于设定的阈值,则声明两者之间没有差异。工业AB测试流程工业AB测试框架背后除了统计原理的应用,最重要的往往是流量的分层和分桶。两个控制组应尽可能保证控制参数以外的流量特性正交。可以理解为两组用户的画像是一致的,画像包括但不限于性别、年龄、城市等。流量分桶的原理是通过以下步骤将流量分配给特定的模型[1]]:将所有流量分成N个桶。每个特定的流量哈希进入特定的桶。给每个模型一定的配额,即每个策略模型占用相应比例的流量桶。所有策略模型流量配额的总和为100%。当流量和模型落入同一个桶时,模型拥有流量。例如,将所有流量分成32个桶,A、B、C三种模型的配额分别为37.5%、25%、37.5%。相应地,A、B、C分别占用12、8、12个桶。为了保证模型和流量的正交性,模型和流量的HashKey使用不同的前缀。参考资料[1]流量为王:ABTest流量分层分桶机制[2]统计(2):AB测试-理论基础[3]AB测试基础论文:OverlappingExperimentInfrastructureMore,Better,FasterExperimentation--GoogleKDD2010[4]贝叶斯A/B测试:分步指南[5]https://www.dynamynyield.com/...[6]J.K.Kruschke,贝叶斯估计取代t检验,实验心理学杂志:一般,142,573(2013)。[7]C.Stucchio,VWO的贝叶斯A/B测试(2015)。
