Jan 8, 2018

Omitted variable bias

clear 
set obs 10000
set seed 1

// Simulate data
generate x  = rnormal(0,1)                     // Exogenous variable
generate w  = rnormal(0,1)                     // Instrumental variable
generate u  = rnormal(0,1)                     // Omitted variable
generate e1 = rnormal(0,1)                     // Outcome eqation error
generate e2 = rnormal(0,1)                     // Endogenous regressor equation error
generate y2 =      x  + .2 * w + .5 * u + e2   // Endogenous regressor equation
generate y1 = .5 * y2 + .5 * x + .5 * u + e1   // Outcome equation

// Fit models
eststo clear
eststo: regress        y1 y2 x u
eststo: regress        y1 y2 x
eststo: ivregress 2sls y1 x (y2 = w)

coefplot est1 est2 est3, xscale(alt) xtitle(Coefficient) ///
                         xline(.5) ///
                         coeflabel(_cons = "Intercept" ///
                                   u     = "Omitted variable" ///
                                   x     = "Exogenous predictor" ///
                                   y2    = "Endogenous predictor") ///
                         legend(order(2 "Without omitted variable bias" ///
                                      4 "With omitted variable bias" ///
                                      6 "2SLS estimate") pos(11) ring(0) col(1))