sim_linearity <- function(i, n = 100, formula = y ~ x1+x2, trueformula = y ~ x1 + I(x1^2)) {
data <- tibble(
x1 = seq(-10, 10, length.out = n) + runif(n, -.1, .1),
x2 = seq(-10, 10, length.out = n) + runif(n, -.1, .1),
y = x1 + x1^2/2 + rnorm(n, 0, 10) # Definitely not additive or linear
)
model <- lm(formula = formula, data = data)
model2 <- lm(formula = trueformula, data = data)
tibble(
i = i,
data = list(data),
model = tibble(type = c("misspec", "actual"),
model = list(model, model2))
)
}
set.seed(249382736)
sim_n <- map_df(1:1000, ~sim_linearity(.)) |>
unnest(model)