贝塔分布真的比正态分布更能检验两个比例的差异吗?

机器算法验证 r 假设检验 正态分布 卡方检验 贝塔分布
2022-03-10 15:57:23

我在一家在线机构工作,我们在那里进行了大量的 AB 测试,以测试两组之间的比例差异(测试与控制)。测试比例差异的行业标准做法是基于正态分布或卡方。

Chi 基检验倾向于使用大量数据,而这些数据并不总是有,而正态分布检验存在问题,因为与正态近似不同,比例受我向我的同事声称,使用 beta 分布的测试应该总是过度执行正常/chi 选项,因为它是为比例而构建的。λ01

这是我执行测试的 R 代码,该测试表明测试超过了对照组(95%):

library(ggplot2)
number_of_success_test      <-   46
number_of_success_controll  <-   33
number_of_failures_test     <- 2643
number_of_failures_controll <- 2579
test1 <- rbeta(100000, number_of_success_test,     number_of_failures_test,     ncp=0)
test2 <- rbeta(100000, number_of_success_controll, number_of_failures_controll, ncp=0)
test  <- data.frame(test1, test2)
quantile(test2, 0.95)
g <- ggplot(data=test, aes(x=test1)) + 
                       geom_density(color="red",  bindwidth=0.0000001) + 
                       geom_density(aes(x=test2), bindwidth=0.0000001) + 
                       geom_vline(xintercept=quantile(test2, 0.95)) + 
                       geom_vline(xintercept=quantile(test1, 0.5),
            color="red")
g + xlab("CR") + geom_text(label="95 pecentile - control group", 
                           x=quantile(test2, 0.95), y=15000) + 
                 geom_text(label="50 pecentile - test group", 
                           x=quantile(test1, 0.5), y=12000, color="red")

我对吗?在处理比例差异时,使用 beta 分布而不是 chi / 正态分布真的总是更好吗?(另外,我在 R 代码中的方法对吗?)

2个回答

根据您的代码(以及我对 AB 测试的了解),我收集到您的比例是离散增量的。也就是说,对于每个访问网站的人,他们最终都会被归类为“成功”或“失败”。换句话说,您的比例来自有限数量的伯努利试验它们不是连续的比例。因此,beta 分布(用于连续比例)在这里并不合适。相反,您应该使用二项分布如果你的相对于成功的比例足够大,正常的近似值是完全可以接受的(标准的经验法则是nnpn(1p)应该,在您的情况下,这些值为)。在您的情况下,我会使用卡方检验,而不是使用 beta 分布。 >54633

如果您没有足够的成功来信任正态近似值,则可以使用置换测试,正如@jbowman 在这里讨论 -test 与 -test 用于比较两次感冒的几率团体zχ2

另一方面,如果您的比例是连续的(例如,肿瘤的质量与器官质量的比例),β 分布将是更可取的。您可以以方差分析的方式使用 beta 回归(即,只有分类预测变量)。我有一个 R 中的 beta 回归的简单示例,可以在这里适应这种情况:使用 R 中的回归删除一个因子对连续比例数据的影响

正如其他评论者所说,成功的数量是按二项式分布的。因此,如果您想采样/模拟,请使用rbinom()

也就是说,beta 分布是二项分布的共轭先验。因此,如果您想使用观察获得二项式分布参数的分布,请使用dbeta()