拓端tecdat|R语言代写辅导模型中的加总偏误与内生性:一种数值模拟方法

引言

本文中主题是内生性,它可能严重偏向回归估计。我将专门模拟由遗漏变量引起的内生性。在本系列的后续文章中,我将模拟其他规范问题,如异方差性,多重共线性和对撞机偏差。

数据生成过程

考虑一些结果变量的数据生成过程(DGP)ÿ​:

Y = a + \ beta x + cz + \ epsilon_1

\ epsilon_1 \ sim N(0,\ sigma ^ {2})

对于该模拟,我设置参数值一个​,\公测​以及C​与模拟正相关的独立变量,X​和ž​(N = 500)。

1

2

3

4

6

7

8

9

# simulation parameters

set.seed(144);

 a=50; b=.5; c=.01;

  

 x=rnorm(n=ss,mean=1000,sd=50);

z=d+h*x+rnorm(ss,0,10)

模拟

模拟将估计下面的两个模型。第一个模型是正确的,它包含实际DGP中的所有术语。但是,第二个模型省略了DGP中存在的变量。相反,变量被误入了误差项  \ epsilon_1​。

(1)\ thinspace Y = a + \ beta x + cz + \ epsilon_1

(2)\ thinspace Y = a + \ beta x + \ epsilon_1

第二个模型将产生一个有偏差的估计\公测​。差异也会有偏差。这是因为它X​是内生的,这是一种说它与错误术语相关的奇特方式\ epsilon_1​。由于心病(X,Z)> 0​和\ epsilon_1 = \ epsilon + cz​,然后心病(X,\ epsilon_1)> 0​。为了说明这一点,我在下面进行了5000次迭代的模拟。对于每次迭代,我ÿ​使用DGP 构造结果变量。然后我运行回归估计\公测​,首先是模型1,然后是模型2。

1

2

3

4

6

7

8

9

10

11

12

sim=function(endog){

  e=rnorm(n=ss,mean=0,sd=10)

  # Select data generation process

 if(endog==TRUE){ fit lm(y~x) }else{ fit=lm(y~x+z)}

 return(fit$coefficients)

}

 

  sim_results_endog=t(replicate(trials,sim(endog=TRUE)))

仿真结果该仿真产生两种不同的采样分布\公测​。请注意,我已将true值设置为\的β= 0.5​。如果ž​不省略,则模拟产生绿色采样分布,以真实值为中心。所有模拟的平均值为0.4998。当ž​被省略,仿真得到的红色采样分布,围绕0.5895居中。它偏离.5895的真实值。此外,偏差采样分布的方差远小于周围的真实方差\公测​。这会影响对真实参数执行任何有意义推断的能力。 

\公测​可以通过分析得出。考虑在模型1中(如上所述),X​并  ž​通过以下方式相关:

(3)\ thinspace z = d + hx + \ epsilon_2

ž​用等式3 代入等式1并重新排序:

 Y = a + \ beta x + c(d + hx + \ epsilon_2)+ \ epsilon_1

 (4)\ thinspace Y =(a + cd)+(\ beta + ch)x +(\ epsilon_1 + c \ epsilon_2)

省略变量时ž​,实际上是估计的等式4。可以看出,\公测​数量有偏差CH​。在这种情况下,由于X​并且ž​通过构造正相关并且它们的斜率系数是正的,所以偏差将是正的。根据模拟的参数,应该是“真实的”偏差   CH = 0.09​。这是偏差的分布,它以.0895为中心,非常接近真实的偏差值。

上述推导还可以让我们确定从知道的相关偏差的方向X​和ž​以及的符号C​(的真局部效果ž​上ÿ​)。如果两者都是相同的符号,那么估计值\公测​会有偏见。如果符号不同,则估计值\公测​将向下偏移。结论上面的案例很一般,但有特殊的应用。例如,如果我们认为个人的收入是教育年限和工作年经验的函数,那么省略一个变量将偏向另一个变量的斜率估计。

 

 

如果您有任何疑问,请在下面发表评论。 

posted @ 2019-04-22 17:57  拓端tecdat  阅读(257)  评论(0编辑  收藏  举报