# this script creates the dataset for the multilevel exercise library(dplyr) library(tidyr) library(faux) library(lme4) set.seed(123) n1 <- 20 n2 <- 15 dat <- rnorm_multi(n = n2, mu = 0:1, sd = 1, r = .5, varnames = paste0("u", 0:1, "j")) |> mutate(j = 1:n2, n1 = n1) |> uncount(n1) |> bind_cols(rnorm_multi(n = n1*n2, r = .5, varnames = paste0("x", 1:3, "i"))) |> mutate(y = u0j + x1i + x2i + u1j*x3i + rnorm(n1*n2)) lmer(y ~ x1i + x2i + x3i + (x3i|j), dat) |> summary() dat <- dat |> mutate( x1i = ifelse((x1i > quantile(x1i, .4)) & (runif(n1*n2) > .5), NA, x1i), x2i = ifelse((x3i > quantile(x3i, .5)) & (runif(n1*n2) > .5), NA, x2i) ) lmer(y ~ x1i + x2i + x3i + (x3i|j), dat) |> summary() # write.csv(dat |> select(!starts_with("u")), "exercise_04.csv", row.names = F)