This tiny chunk of code does a power analysis in R, following the example here: https://www.r-bloggers.com/calculating-required-sample-size-in-r-and-sas/
library(pwr)
## Warning: package 'pwr' was built under R version 3.4.1
pwr.t.test(d= 0.34, sig = 0.00054, power = 0.9, type= "one.sample")
##
## One-sample t test power calculation
##
## n = 200.4759
## d = 0.34
## sig.level = 0.00054
## power = 0.9
## alternative = two.sided
pwr.t.test(d= 0.34, sig = 0.05, power = 0.9, type= "one.sample")
##
## One-sample t test power calculation
##
## n = 92.83668
## d = 0.34
## sig.level = 0.05
## power = 0.9
## alternative = two.sided
pwr.t.test(n = 100, d= 0.34, sig = 0.00054, type= "one.sample")
##
## One-sample t test power calculation
##
## n = 100
## d = 0.34
## sig.level = 0.00054
## power = 0.4354537
## alternative = two.sided
Let’s read in our Aggregated Effect-Size data from the pilot to get a better idea of sample sizes
Then we’ll subset out the non-significant values
Then we create a for loop that runs the power test to compute required N for every row
Then we will take some descriptive stats on that column to help us decide what a good sample size might be.
RespDataAgg <- read.csv("F:/Google Drive/GitHub Repos/ste-phen/summer_school_sessions/3_Experimental_setup/RespDataAgg.csv")
RespDataSig <- subset(RespDataAgg, pValue < 0.05)
ReqNs <- list()
for(i in 1:nrow(RespDataSig)){
pwrtest <- pwr.t.test(d = RespDataSig$effsize[i], sig = 0.00054, power = 0.9, type = "one.sample")
ReqN <- pwrtest$n
ReqNs <- c(ReqNs, ReqN)
}
RespDataSig$ReqN <- as.numeric(ReqNs)
mean(RespDataSig$ReqN)
## [1] 82.91009
sd(RespDataSig$ReqN)
## [1] 58.83432
range(RespDataSig$ReqN)
## [1] 28.53291 332.80710
Some density plots etc. of effect sizes
EffSizes <- density(RespDataSig$effsize)
plot(EffSizes, main="Kernel Density of Effect Sizes")
polygon(EffSizes, col= 'red', border= 'black')