簡體   English   中英

R中的pwr.chisq.test錯誤

[英]pwr.chisq.test error in R

我現在正在嘗試估算網站轉換率的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平方功率計算

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

注意:N是觀察數

我認為有一個“數字”解釋。 如果您查看函數的代碼,您可以看到樣本數是通過uniroot計算的,並且應該屬於邊界設置為1e-101e5 錯誤消息指出此間隔不會給您結果:在您的情況下,上限太小。

知道這一點,我們可以簡單地采取更廣泛的間隔:

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 ......這是大量的觀察。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM