如何计算多个目标转化率的统计显著性?
我正在为自己制作一个Python/Django的分割测试或A/B测试库。不过,我不知道怎么计算我的测试是否具有统计显著性。我对统计学一无所知,所以看维基百科的文章或者相关网页时都看不懂,因此我希望能得到其他程序员的帮助。
我有一个简单的实验,有4个选项,并且我收集了一些用户使用这些选项的数据。每个用户都在这4个选项中的一个(为了方便讨论,我们可以把第一个叫做控制组)。每个用户的结果要么是成功,要么是失败,所以我知道每个选项的转化率。我该如何判断我的测试是否具有统计显著性,或者说这些结果是否只是随机的呢?
简单来说,我的输入数据是[ (a_yes, a_total), (b_yes, b_total), (c_yes, c_total), (d_yes, d_total)]
,我可以很容易地算出每个选项的转化率,甚至可以比较每个选项和第一个选项的表现,但我该如何计算这些数据的统计显著性,以便知道这个测试是否有意义,或者我是否应该继续运行并收集更多的数据。
我见过一些关于只有2个选项(传统的A/B测试)时使用公式的指南,但我希望这个库能够处理多个选项。用多个值计算统计显著性是否可行呢?
总的来说,我想做的事情类似于这个http://mixpanel.com/labs/split-test-calculator,但是用Python来实现。如果有现成的Python库可以直接“pip install …”那就更好了。
1 个回答
我认为你需要做的是一个卡方独立性检验。对于每种处理方式,你会有一个“是”的计数和一个“否”的计数(也就是总数减去“是”的计数)。这个方法的详细说明可以在这里找到,还有其他地方也有介绍。
Scipy库里有一个函数可以帮你完成这些复杂的计算:http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.chi2_contingency.html#scipy.stats.chi2_contingency