我们做AB实验的时候,经常能看到这样一个指标:统计功效(power),或者是它的变体(1-β)。
并且我们通常还会发现,这个指标会影响我们实验的可信度,甚至还会影响我们所需要的实验样本量。一些严谨的科研项目,还会要求我们提供统计功效的具体值。
那么,这个所谓的统计功效到底是个啥呢?
要理解功效,我们首先得理解两类统计错误
两类统计错误
假如我们做了一个AB实验,且两组用户的数据均值为μ1和μ2,我们会有两个初始假设:
- H0:两个实验组之间的数据没有差别(μ1=μ2),这个假设也叫“零假设”
- H1:两个实验组之间的数据存在差别(μ1≠μ2),这个假设也叫“非零假设”
我们的假设有两种情况,对应的,真实结果页会有两种情况:
- H0是对的:两组之间并没有真实差别
- H0是错的:两组之间存在真实差别
我们把这2X2种情况进行交叉组合,就能看到4种结果:
显然,其中2.1和2.4都是我们预测正确的情况。
而2.2和2.3则都是错误的,这两种错误,我们把它们分别予以表述:
- 2.2:实验本身没有效应,但我们觉得有效应。这是一类错误,或者叫α错误
- 2.3:实验本身有效应,但是我们误以为没有。这是二类错误,或者叫β错误
根据之前文章(AB测试里的统计检验)的介绍,我们做判断时候,会依据统计量临界值。
如下图所示:
在H0假设的情况下,统计量往往有一个分布,当我们计算出统计量处于分布的小概率区域中时,我们就可以说零假设是小概率事件,可以拒绝零假设。
上图中,当统计量大于2时,我们就可以拒绝H0,此时我们犯第一类错误地概率就是α,换句话说,零假设是真的,我们却拒绝了它。当我们人为设定了显著性水平后,α就定了,一般为0.05,所以对应的统计量水平也就定了,在上图中为2。
第二类错误就是,即使没有达到拒绝H0的标准(统计量小于2),但是其实H1是真的,我们却拒绝了它,这个错误的概率定义为β。
由此我们就理解了,所谓β,就是犯二类错误的概率。
而统计功效,就是1-β,即不犯二类错误的概率。换句话说,就是当AB两组差异真的存在时,我们能正确判断的概率。
理解了统计功效(power)的理论意义,那么它的现实意义是什么呢?
统计功效的现实意义
假如统计功效比较低,会出现什么情况?
根据其背后逻辑,我们可以知道,统计功效低,那么当AB两组差异真的存在时,我们很可能会错误判断两组差异不存在。
换句话说,我们结果显示不显著,但其实真实情况是差异显著——我们错过了真实效应。
这种情况,通常发生在我们的实验结果不显著时。
不过,通常在这种时候,我们不会轻易放弃,而是会继续优化实验方案,或者扩大样本量继续实验,努力尝试多次。
所以更多的时候,我们觉得给我们带来实际困扰的会是一类错误。即AB两组其实没有差异,但我们误认为有差异。因此,以往的实验里,我们更多的会看到显著性水平α。
但其实,严谨来说,重复做多次实验来获取显著结果,会增大犯错误的概率。并且,完全忽略β值,也是不科学的。
更好的办法,是同时考虑α和β,把β控制在一个合理的范围内。
我们一般把统计功效定义在80%(或90%)以上,即β在0.2(或0.1)以下。认为这样的可信度是可以接受的。
那么,具体来说,我们该如何计算统计功效呢?
统计功效的计算方法
统计功效的计算公式如下:
- κ=nA/nB
- σ 是标准差
- Φ是标准正态分布下某个X值对应的概率面积
- α是一类错误概率
- β是二类错误概率,1-β是统计功效
如果使用R语言计算的话,代码示范如下:
muA=5
muB=10
kappa=1 # 即k值
sd=10
alpha=0.05
nB=63
z=(muA-muB)/(sd*sqrt((1+1/kappa)/nB))
Power=pnorm(z-qnorm(1-alpha/2))+pnorm(-z-qnorm(1-alpha/2))
实践应用场景
一般AB实验工具,都会允许用户设定统计功效。
当我们选定更大的统计功效时,也就对实验结果提出了更高的要求。比如更大的样本量、更明显的实验差异,更加一致的实验趋势等等。
理解了统计功效,能让我们更好的使用AB测试工具。或者通过代码工具,独立完成一个AB测试结果分析。