# Multiplicative interactions: X x M
set.seed(1024)
<- 5000
N <- rbinom(N, 1, .5)
X <- sample(c("a", "b", "c"), N, replace = TRUE)
M <- runif(8, -1, 1)
b <- rbinom(N, 1, prob = plogis(
Y 1] + b[2] * X +
b[3] * (M == "b") + b[4] * (M == "b") + b[5] * (M == "c") +
b[6] * X * (M == "a") + b[7] * X + (M == "b") +
b[8] * X * (M == "c")
b[
))<- data.frame(Y, X, M)
dat ::fwrite(dat, "interaction_01.csv")
data.table::write_parquet(dat, "interaction_01.parquet")
nanoparquet
# Multiplicative interactions: X x M
set.seed(1024)
<- 5000
N <- rbinom(N, 1, .5)
X <- rnorm(N)
M <- runif(4, -1, 1)
b <- rbinom(N, 1, prob = plogis(
Y 1] + b[2] * X + b[3] * M + b[4] * X * M
b[
))<- data.frame(Y, X, M)
dat ::fwrite(dat, "interaction_02.csv")
data.table::write_parquet(dat, "interaction_02.parquet")
nanoparquet
# Multiplicative interactions: X x M
set.seed(1024)
<- 5000
N <- rnorm(N)
X <- rnorm(N)
M <- runif(4, -1, 1)
b <- rbinom(N, 1, prob = plogis(
Y 1] + b[2] * X + b[3] * M + b[4] * X * M
b[
))<- data.frame(Y, X, M)
dat ::fwrite(dat, "interaction_03.csv")
data.table::write_parquet(dat, "interaction_03.parquet")
nanoparquet
# Multiplicative interactions: X x M1 x M2
set.seed(1024)
<- 5000
N <- rbinom(N, 1, .5)
X <- rbinom(N, 1, .5)
M1 <- rbinom(N, 1, .5)
M2 <- runif(8, -1, 1)
b <- rbinom(N, 1, prob = plogis(
Y 1] +
b[2] * X + b[3] * M1 + b[4] * M2 +
b[5] * X * M1 + b[6] * X * M2 + b[7] * M1 * M2 +
b[8] * X * M1 * M2
b[
))<- data.frame(Y, X, M1, M2)
dat ::fwrite(dat, "interaction_04.csv")
data.table::write_parquet(dat, "interaction_04.parquet")
nanoparquet
# Polynomial regression: X and Y
set.seed(1024)
<- 1e3
N <- function(X) 2.5 - X^2
FUN <- runif(N, min = -3, max = 3)
X <- FUN(X) + rnorm(N, sd = .5)
Y <- data.frame(X, Y)
dat ::fwrite(dat, "polynomial_01.csv")
data.table::write_parquet(dat, "polynomial_01.parquet")
nanoparquet
# Polynomial regression: X, D, and Y
set.seed(1024)
<- 1e3
N <- runif(N, min = -3, max = 3)
X <- rbinom(N, size = 1, prob = .5)
M <- 2.5 - X^2 - 5 * M + 2 * M * X^2 + rnorm(N, .5)
Y <- data.frame(X, M, Y)
dat ::fwrite(dat, "polynomial_02.csv")
data.table::write_parquet(dat, "polynomial_02.parquet")
nanoparquet
# Factorial experiment
<- setNames(mtcars[, c("mpg", "vs", "am")], c("Y", "Ta", "Tb"))
dat <- sort_by(dat, ~ Ta + Tb)
dat ::fwrite(dat, "factorial_01.csv")
data.table::write_parquet(dat, "factorial_01.parquet") nanoparquet
Simulated data for the Model to Meaning book
The code below generates simulated datasets used in the book’s examples and tutorials.