Skip to content

Instantly share code, notes, and snippets.

@Lakens
Last active July 26, 2019 17:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Lakens/ef232b3bbbec3258a251cdce26f91945 to your computer and use it in GitHub Desktop.
Save Lakens/ef232b3bbbec3258a251cdce26f91945 to your computer and use it in GitHub Desktop.
power for one-sided vs two-sided tests
# Code by Chelsea Parlett, small additions by Daniel Lakens
library(pwr)
library(ggplot2)
#set up vector of effect sizes
es <- seq(0.01,1, length = 1000)
#specify power for test
pow <- 0.8
#calculate ns (sample size for 80% power in two-sided test)
ns <- sapply(es, function(x) pwr.t.test(d = x,
power = pow,
sig.level = 0.05,
type = "one.sample",
alternative = "two.sided")$n)
#calculate ns (sample size for 80% power in one-sided test)
ns1 <- sapply(es, function(x) pwr.t.test(d = x,
power = pow,
sig.level = 0.05,
type = "one.sample",
alternative = "greater")$n)
onevstwopower <- data.frame(effect_size = c(es,es), n = c(ns,ns1),
type = c(rep("two",length(ns)),
rep("one", length(ns1))))
ggplot(onevstwopower, aes(x = effect_size, y = n, color = type)) +
geom_line() + theme_minimal()
#calculate ratio - ranges from 0.788 to 0.776
ratio <- ns1/ns
ratio
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment