library(pwr)
## Warning: package 'pwr' was built under R version 4.2.3
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
mspn <- seq(10, 110, by = 10)
effect_sizes <- c(1, 0.9, 0.8, 0.7, 0.6, 0.5)
ratio <- 2 / 3
alpha <- 0.05
power_results <- data.frame(mspn = numeric(),
EffectSize = numeric(),
Power = numeric())
for (effect_size in effect_sizes) {
for (mspn_value in mspn) {
n1 <- floor(ceiling(mspn_value * ratio) * 0.95)
n2 <- floor((mspn_value - ceiling(mspn_value * ratio)) * 0.95)
power <- pwr.t2n.test(n1 = n1, n2 = n2, d = effect_size, sig.level = alpha, power = NULL)$power
power_results <- rbind(power_results, data.frame(mspn = mspn_value, EffectSize = effect_size, Power = round(power * 100, 2)))
}
}
line_types <- c("solid", "dashed", "dotted", "dotdash", "longdash", "twodash")
plot <- ggplot(power_results, aes(x = mspn, y = Power, color = as.factor(EffectSize), linetype = as.factor(EffectSize))) +
geom_line() +
geom_point() +
scale_x_continuous(breaks = seq(10, 110, by = 10)) +
scale_y_continuous(breaks = seq(0, 100, by = 10), limits = c(0, 100), labels = scales::number_format(accuracy = 1)) +
scale_linetype_manual(values = line_types, breaks = c(1, 0.9, 0.8, 0.7, 0.6, 0.5)) +
scale_color_manual(values = scales::hue_pal()(6), breaks = c(1, 0.9, 0.8, 0.7, 0.6, 0.5)) +
labs(x = "Randomized MSPN Sample Size", y = "Power (%)", color = "Effect Size", linetype = "Effect Size") +
theme_minimal() +
theme(axis.title.x = element_text(size = 14, margin = margin(t = 15)),
axis.title.y = element_text(size = 14, margin = margin(r = 20)),
axis.text.x = element_text(size = 12),
axis.text.y = element_text(size = 12),
panel.grid.major = element_line(color = "grey90", size = 0.5),
panel.grid.minor = element_line(color = "grey95", size = 0.25),
panel.border = element_rect(color = "black", fill = NA, size = 1))
## Warning: The `size` argument of `element_rect()` is deprecated as of ggplot2 3.4.0.
## ℹ Please use the `linewidth` argument instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: The `size` argument of `element_line()` is deprecated as of ggplot2 3.4.0.
## ℹ Please use the `linewidth` argument instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
windows(width = 8, height = 6)
print(plot)