# set seed for reproducibility
set.seed(123)
# attach the package `mvtnorm`
# set the number of sampling iterations
N <-
# initialize the vector `beta_hats`
beta_hats <-
# conduct the simulation using `for()`
for(i in 1:N) {
}
# compute the sample mean of the estimates
# set seed for reproducibility
set.seed(123)
# attach the package `mvtnorm`
library(mvtnorm)
# set number of sampling iterations
N <- 1000
# initialize the vector `beta_hats`
beta_hats <- c()
# loop estimation
for (i in 1:N) {
# simulate the dataset and set the column names
d <- data.frame(rmvnorm(100, c(50, 100), sigma = cbind(c(10, 5), c(5, 10))))
colnames(d) <- c("X", "Y")
# add the measurement error to `X`
d[,1] <- d[,1] + rnorm(100,0,sqrt(10))
# estimate the simple linear regression model
ms_mod <- lm(Y ~ X, data = d)
# save the estimate
beta_hats[i] <- ms_mod$coefficients[2]
}
# compute the sample mean of the estimates
mean(beta_hats)
test_object("beta_hats")
test_output_contains("mean(beta_hats)")
success_msg("Well done! The sample mean should be close to 0.75 but it is about 0.25 due to the downward bias implied by the measurement error in X. Increase the sample size does not alleviate the bias (check this!) because OLS is inconsistent here.")