Last active
October 22, 2019 08:09
-
-
Save JimGrange/c92d926de04e2d0b8a13aa1d08300c13 to your computer and use it in GitHub Desktop.
generate table of required sample sizes for various correlation effect sizes and various levels of desired power in a study
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# generate table of required sample sizes for various correlation effect sizes | |
# and various levels of desired power in a study | |
# you need the pwr package | |
library(pwr) | |
# vector of effect sizes to explore | |
effect_sizes <- seq(from = 0.05, to = 0.95, by = 0.05) | |
# vector of desired power | |
power <- seq(from = 0.8, to = 0.95, length.out = 4) | |
# initialise matrix to store final results in | |
sim_results <- matrix(0, nrow = length(effect_sizes), | |
ncol = length(power)) | |
# change the column & row names accordingly | |
rownames(sim_results) <- effect_sizes | |
colnames(sim_results) <- power | |
# sample size determination starts here | |
# for each effect size... | |
for(i in 1:nrow(sim_results)){ | |
# for each level of desired power... | |
for(j in 1:ncol(sim_results)){ | |
# calculate the sample size for current effect size & power | |
curr_power <- pwr.r.test(r = effect_sizes[i], | |
power = power[j], | |
sig.level = 0.05, | |
alternative = "two.sided") | |
# store the resulting sample size in the matrix | |
sim_results[i, j] <- round(curr_power$n, 0) | |
} | |
} | |
# save all to a csv file | |
write.csv(sim_results, "correlation_power.csv") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment