Why might opera and lifespan be related?
# Observational sample
tb_obs <- tibble(epsilon = rnorm(200), W = rnorm(200), origin = 'Observational') %>%
mutate(X = W + rnorm(200) > 0) %>% mutate(Y = 3*X - 2*W + epsilon)
# Experimental sample
tb_exp <- tibble(epsilon = rnorm(200), W = rnorm(200), X = rnorm(200) > 0, origin = 'Experimental') %>%
mutate(Y = 3*X - 2*W + epsilon)
# Together!
tb <- bind_rows(tb_obs, tb_exp)
create_data <- function() {
tb_obs <- tibble(epsilon = rnorm(200), W = rnorm(200), origin = 'Observational') %>%
mutate(X = W + rnorm(200) > 0) %>% mutate(Y = 3*X - 2*W + epsilon)
tb_exp <- tibble(epsilon = rnorm(200), W = rnorm(200), X = rnorm(200) > 0, origin = 'Experimental') %>%
mutate(Y = 3*X - 2*W + epsilon)
tb <- bind_rows(tb_obs, tb_exp)
return(tb)
}
run_model <- function(x) {
m <- lm(Y~X, data = create_data())
return(coef(m)[2])
}
library(purrr)
1:1000 %>% map_dbl(run_model) %>% mean()
## [1] 1.865277
run_model_2 <- function(x) {
m <- lm(Y~X + W, data = create_data())
return(coef(m)[2])
}
1:1000 %>% map_dbl(run_model_2) %>% mean()
## [1] 2.997931
run_model_3 <- function(x) {
m <- lm(Y~X, data = create_data() %>% filter(origin == 'Experimental'))
return(coef(m)[2])
}
1:1000 %>% map_dbl(run_model_3) %>% mean()
## [1] 2.97789
Discussion questions: