correlation <- 0.5
alpha <- 0.05
trials <- 1000
results <- tibble(n = seq(10, 100, by = 5)) |>
mutate(
sims = map(n, \(n) {
tibble(trial = 1:trials) |>
mutate(
data = map(trial, \(t) {
MASS::mvrnorm(n, mu = c(0, 0),
Sigma = matrix(c(1, correlation, correlation, 1), 2, 2)) |>
as_tibble(.name_repair = ~c("happiness", "optimism"))
}),
p_value = map_dbl(data, \(d) cor.test(d$happiness, d$optimism)$p.value)
)
}),
achieved_power = map_dbl(sims, \(s) mean(s$p_value < alpha))
) |>
select(n, achieved_power)





