我正在尝试计算可以在此处找到的 A/B 测试数据集的贝叶斯因子。但是,我最终得到一个 NaN,因为 beta 系数的计算结果为零。在计算可能性时,我假设它遵循二项分布。因此,我遵循这个公式:
可能性 = 选择(n,k) * Beta(k+1,n-k+1)
代码可以在下面找到
data <- read.csv(file="ab_data.csv", header=TRUE, sep=",")
control <- data[which(data$group == "control"),]
treatment <- data[which(data$group == "treatment"),]
#compute bayes factor
n1 = nrow(control)
r1 = sum(control$converted)
n2 = nrow(treatment)
r2 = sum(treatment$converted)
likelihood_control <- choose(n1,r1) * beta(r1+1, n1-r1+1)
likelihood_treatment <- choose(n2,r2) * beta(r2+1, n2-r2+1)
bayes_factor <- likelihood_control/ likelihood_treatment
beta(r1+1, n1+r1+1)
beta(r2+1, n2-r2+1)
bayes_factor