Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用压水堆组件绘制功率与效应尺寸_R_Plot - Fatal编程技术网

R 使用压水堆组件绘制功率与效应尺寸

R 使用压水堆组件绘制功率与效应尺寸,r,plot,R,Plot,我可以使用pwr包在R中成功地创建功率与样本大小的曲线图。下面是示例代码 library(pwr) library(tidyverse) plot.out <- pwr.t2n.test(n1=30, n2=30, d=0.5, alternative="two.sided") #See output in link below plot(plot.out) 库(pwr) 图书馆(tidyverse) 在代码下的plot.out中,功率在循环效应大小d_seq中计

我可以使用pwr包在R中成功地创建功率与样本大小的曲线图。下面是示例代码

library(pwr)
library(tidyverse)

plot.out <- pwr.t2n.test(n1=30, n2=30, d=0.5, alternative="two.sided")

#See output in link below
plot(plot.out)
库(pwr)
图书馆(tidyverse)

在代码下的plot.out中,功率在循环效应大小
d_seq
中计算。然后从结果列表中提取幂
d
,创建并绘制data.frame

library(pwr)
library(ggplot2)

d_seq <- seq(0, 2, by = 0.1)
pwr_list <- lapply(d_seq, function(d){
  pwr.t2n.test(n1 = 30, n2 = 30, 
               d = d,
               power = NULL,
               sig.level = 0.05, 
               alternative = "two.sided")
})
pwr <- sapply(pwr_list, '[[', 'power')

dfpwr <- data.frame(power = pwr, effect.size = d_seq)

ggplot(dfpwr, aes(effect.size, power)) +
  geom_point(size = 2, colour = "black") +
  geom_line(size = 0.5, colour = "red") +
  scale_y_continuous(labels = scales::percent) +
  xlab("effect size") +
  ylab(expression("test power =" ~ 1 - beta))
现在为
geom_text
创建一个标签并打印它

lbl80 <- paste("Power = 80%\n")
lbl80 <- paste(lbl80, "Effect size =", round(pwr80$y, 2))

ggplot(dfpwr, aes(effect.size, power)) +
  geom_point(size = 2, colour = "black") +
  geom_line(size = 0.5, colour = "red") +
  geom_hline(yintercept = 0.8, linetype = "dotted") +
  geom_text(x = pwr80$y, y = pwr80$x, 
            label = lbl80,
            hjust = 1, vjust = -1) +
  scale_y_continuous(labels = scales::percent) +
  xlab("effect size") +
  ylab(expression("test power =" ~ 1 - beta))

明亮的我想我可以使用coord_flip()根据需要翻转轴。最后一个问题:在功率=0.80的情况下,如何为最佳效果大小添加线条?我知道我可以将geom_vline或geom_hline设置为0.80,但特别是为了显示和标记80%功率下的最佳效果大小。@cewim完成,请参见编辑。这是惊人的。非常感谢你的帮助,鲁伊。
lbl80 <- paste("Power = 80%\n")
lbl80 <- paste(lbl80, "Effect size =", round(pwr80$y, 2))

ggplot(dfpwr, aes(effect.size, power)) +
  geom_point(size = 2, colour = "black") +
  geom_line(size = 0.5, colour = "red") +
  geom_hline(yintercept = 0.8, linetype = "dotted") +
  geom_text(x = pwr80$y, y = pwr80$x, 
            label = lbl80,
            hjust = 1, vjust = -1) +
  scale_y_continuous(labels = scales::percent) +
  xlab("effect size") +
  ylab(expression("test power =" ~ 1 - beta))
geom_vline(xintercept = pwr80$y, linetype = "dotted")