首页 > 解决方案 > 运行 for 循环时的 power.prop.test 错误

问题描述

当我尝试运行 apower.prop.test来执行 A/B 测试的功率分析时,它表现良好。但是,当我尝试绘制一系列“功率”所需的样本量图时,我做了一个 for 循环,控制台给了我这个错误。

 p2 <- seq(.1511, .188875, .007555)
 np2 <- length(p2)
 power <- seq(.4, .9, .1)
 npower <- length(power)
 samsize <- array(numeric(np2*npower), dim = c(np2,npower))
 for (i in 1:npower){
   for (j in 1:np2){
     result <- power.prop.test(n = NULL, p1 =.1511, p2 = p2[j], 
                               sig.level = .05, power = power[i],
                               alternative = c("two.sided","one.sided"),
                               strict = FALSE, tol = .Machine$double.eps^.25)
     samsize[j,i] <- ceiling(result$n)
   }
 }

uniroot(function(n) eval(p.body) - power, c(1, 1e+07), tol = tol, 中的错误:在 1000 次迭代中没有发现符号变化

#Error message Error in uniroot(function(n) eval(p.body) - power, c(1, 1e+07), tol = tol, : 在 1000 次迭代中没有发现符号变化

我想知道如何解决它。

标签: rstatisticspower-analysis

解决方案


我怀疑这与p2[1]=的事实有关p1。这意味着无限的样本量。

顺便说一句:当您在这样的循环中遇到问题时,了解问题发生在循环的哪个迭代中非常有用。下次在相关点放一些打印语句,以确定错误发生时循环的状态。


推荐阅读