R语言模型中的加总偏误与内生性:一种数值模拟方法

282 阅读3分钟

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

数据生成过程

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

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

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

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

1234五6789# 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。

1234五6789101112sim=``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(的真局部效果žÿ)。如果两者都是相同的符号,那么估计值\公测会有偏见。如果符号不同,则估计值\公测将向下偏移。结论上面的案例很一般,但有特殊的应用。例如,如果我们认为个人的收入是教育年限和工作年经验的函数,那么省略一个变量将偏向另一个变量的斜率估计。

 

 

非常感谢您阅读本文,有任何问题请在下面留言!