gpt4 book ai didi

r - R 中的 pwr.chisq.test 错误

转载 作者:行者123 更新时间:2023-12-03 21:27:51 26 4
gpt4 key购买 nike

我现在正在尝试估算网站转化率 A/B 测试所需的样本量。当我的转换率值很小时,pwr.chisq.test 总是给我错误消息:

# conversion rate for two groups
p1 = 0.001
p2 = 0.0011

# degree of freedom
df = 1

# effect size
w = ES.w1(p1,p2)

pwr.chisq.test(w,
df = 1,
power=0.8,
sig.level=0.05)

**Error in uniroot(function(N) eval(p.body) - power, c(1 + 1e-10, 1e+05)) :
f() values at end points not of opposite sign**

但是,如果我为 p1 和 p2 设置了更大的值,则此代码可以正常工作。

# conversion rate for two groups
p1 = 0.01
p2 = 0.011

# degree of freedom
df = 1

# effect size
w = ES.w1(p1,p2)

pwr.chisq.test(w,
df = 1,
power=0.8,
sig.level=0.05)

Chi squared power calculation

      w = 0.01
N = 78488.61
df = 1 sig.level = 0.05
power = 0.8

NOTE: N is the number of observations

最佳答案

我认为对此有一个“数字”解释。如果查看函数的代码,您会发现样本数是由 uniroot 计算的。并且应该属于边界设置为 1e-10 的区间和 1e5 .错误消息指出此间隔不会给您结果:在您的情况下,上限太小。

知道这一点,我们可以简单地采用更宽的间隔:

w <- 0.00316227766016838
k <- qchisq(0.05, df = 1, lower = FALSE)
p.body <- quote(pchisq(k, df = 1, ncp = N * w^2, lower = FALSE))
N <- uniroot(function(N) eval(p.body) - 0.8, c(1 + 1e-10, 1e+7))$root

“解决方案”是 N=784886.1 ...这是一个巨大的观察结果。

关于r - R 中的 pwr.chisq.test 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30105879/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com