clear
set seed 1
set obs 5000
// Create variables
gen e = rnormal()
gen x_true = rnormal()
gen y_true = 1 + 2 * x_true + 3 * e
gen y_observed = y_true + e
gen x_observed = x_true + e
label var y_true "Y"
label var x_true "X"
label var y_observed "Y w/ error"
label var x_observed "X w/ error"
// Loop over variables
foreach y of varlist y_observed y_true {
foreach x of varlist x_observed x_true {
regress `y' `x'
local b = round( _b[`x'], .01)
local se = round(_se[`x'], .01)
twoway (scatter `y' `x', msymbol(p)) ///
(lfit `y' `x') ///
, name(`y'`x', replace) ///
ytitle(`: variable label `y'') ///
xtitle(`: variable label `x'') ///
title("{it:B} = `b', {it:SE} = `se'") ///
legend(off) nodraw
}
}
// Combine plots
graph combine y_truex_true ///
y_truex_observed ///
y_observedx_true ///
y_observedx_observed, ///
xcommon ycommon col(2) row(2) ///
title("Measurement error in the outcome vs. in the predictor")
Aug 1, 2017
Measurement error in the outcome vs. in the predictor
Labels:
Measurement error,
Simulation,
twoway scatter
