* 例3:遗漏变量和增加无关变量对OLS估计的影响
* 理论基础:
* 对于模型 y = a0 + a1*x_1 + a2*x_2 + u
* u -- N(0,1)
* 若回归中遗漏了 x_1,则 a_2 的 OLS 估计将是有偏的;
* 若回归中增加了多余的变量 x_3,则 a_1 和 a_2 的 OLS 估计仍然是无偏的;
* 真实数据生成过程:
* y = 0.5 + x_1 + 2*x_2
clear
set obs 100
gen x1 = invnormal(uniform())
gen x2 = invnormal(uniform())
gen x3 = invnormal(uniform())
gen y = 0.5 + 1*x1 + 2*x2
save myomit_data, replace
*------------------------------------
cap program drop myomit
program define myomit, eclass
version 9.2
syntax varlist
tempvar u y
gen `u' = invnormal(uniform())
gen `y' = y + `u' /*让干扰项变动是模拟的基础*/
reg `y' `varlist'
end
*------------------------------------
* 真实数据过程
* 正确设定模型
use myomit_data, clear
simulate _b _se, reps(1000) nodots: myomit x1 x2
sum
* 遗漏重要变量
use myomit_data, clear
simulate _b _se, reps(1000): myomit x1
sum
* 附加无关变量
use myomit_data, clear
simulate _b _se, reps(1000): myomit x1 x2 x3
sum
*------------------------------------
cap program drop myomit
program define myomit, eclass
version 9.2
syntax varlist
tempvar u y
gen `u' = invnormal(uniform())
gen `y' = y + `u' /*让干扰项变动是模拟的基础*/
reg `y' `varlist'
end
*------------------------------------