# Calculate sample size for mean-case power
K <- 10 # number of comparisons
alpha <- 0.05 # significance level
power <- 0.9 # desired power
d <- 0.5 # MRES
out <- calc_instances(K, d,
power = power,
sig.level = alpha)
# Plot power of each comparison to detect differences of magnitude d
plot(1:K, out$power,
type = "b", pch = 20, las = 1, ylim = c(0, 1), xlab = "comparison",
ylab = "power", xaxs = "i", xlim = c(0, 11))
grid(11, NA)
points(c(0, K+1), c(power, power), type = "l", col = 2, lty = 2, lwd = .5)
text(1, 0.93, sprintf("Mean power = %2.2f for N = %d",
out$mean.power, out$ninstances), adj = 0)
# Check sample size if planning for Wilcoxon tests:
calc_instances(K, d,
power = power,
sig.level = alpha,
test = "wilcoxon")$ninstances
# Calculate power profile for predefined sample size
N <- 45
out2 <- calc_instances(K, d, ninstances = N, sig.level = alpha)
points(1:K, out2$power, type = "b", pch = 19, col = 3)
text(6, .7, sprintf("Mean power = %2.2f for N = %d",
out2$mean.power, out2$ninstances), adj = 0)
# Sample size for worst-case (Bonferroni) power of 0.8, using Wilcoxon
out3 <- calc_instances(K, d, power = 0.9, sig.level = alpha,
test = "wilcoxon", power.target = "worst.case")
out3$ninstances
# For median power:
out4 <- calc_instances(K, d, power = 0.9, sig.level = alpha,
test = "wilcoxon", power.target = "median")
out4$ninstances
out4$power
Run the code above in your browser using DataLab