在不使用ggplot2()的情况下绘制R中的功率图?

时间:2017-10-02 04:07:19

标签: r

无法为不同的alpha级别创建不同功率函数的图表。这就是我目前的情况,但我无法弄清楚如何在不同的alpha级别创建代表平滑幂函数的多条线:

d <- data.frame()
for (s in seq(0,.5,.05)) {
  for (n in seq(20,500,by=20)){
    d <- rbind(d,power.t.test(n=n,delta = 11,sig.level=s,sd= 22.9))
  }
}

d$sig.level.factor <-as.factor(d$sig.level)
plot(d$power~d$n, col=d$sig.level.factor)

for i in length(sig.level.factor){
  lines(d$n[d$sig.level.factor==d$sig.level.factor[i]],d$power[d$sig.level.factor==d$sig.level.factor[i]], type="l", lwd=2, col=colors[n])
}


for (i in 1:length(seq(0,.5,.05))){
  lines(d$n[d$sig.level.factor==d$sig.level[i]], d$power, type="l", lwd=2, col=colors[i])
}
for (i in 1:length(d$sig.level.factor)){
  lines(d$n[d$sig.level.factor==i], d$power[d$sig.level.factor==i], type="l", lwd=2, col=colors[i])
}

我的目标是创建将显示连接所有包含不同样本大小的等效alpha值的点的平滑曲线的线条。

1 个答案:

答案 0 :(得分:0)

稍晚回答,但希望你仍然可以使用它。您可以使用falsen和显着性级别上创建结果矩阵,然后使用超级有用函数sapply一次性绘制所有内容:

matplot

有一个烦人的&#34;功能&#34; n <- seq(20, 300, by=10) alphas <- seq(0, .25, .05) res <- sapply(alphas, function(s) {power.t.test(n=n, delta=11, sig.level=s, sd= 22.9)$power}) matplot(n, res, type="l", xlab="Sample size", ylab="Power") power.t.test的问题,即它没有完全对所有参数进行矢量化。但是,您输出功率的情况会让您更容易。