欢迎光临散文网 会员登陆 & 注册

R语言工具变量与两阶段最小二乘法

2020-12-03 11:07 作者:拓端tecdat  | 我要投稿

原文链接:http://tecdat.cn/?p=5374

 

 

我们要估计的模型是

Y = A + BX + CD + EY = A + BX + CD + E,

其中是解释变量,,和是我们想要估计的系数。 

生成数据

首先,让我们生成数据。

假设的工具变量和之间的相关矩阵如下: 

  1. ##       x     d     z     e

  2. ## x 1.000 0.001 0.002 0.001

  3. ## d 0.001 1.000 0.700 0.300

  4. ## z 0.002 0.700 1.000 0.001

  5. ## e 0.001 0.300 0.001 1.000

具体而言,相关性表明

  1. cor(d,e)= 0.3,这意味着是内生的; dd

  2. cor(d,z)= 0.7,这意味着是的强大工具变量; zzdd

  3. cor(z,e)= 0.001,这意味着工具变量满足排除限制,因为它只影响到.zzyydd

现在,让我们使用指定的相关性为,,和生成数据.xxddzzee

  1. nvars = dim(U) 1

  2. numobs = 1000

  3. random.normal = matrix(rnorm(nvars*numobs, 0 , nrow=nvars, ncol=numobs);

  4. X = U %*% random.normal

  5. newX = t(X)

  6. data = as.data.frame(newX)

数据看起来像这样:

  1. ##             x          d          z          e

  2. ## 1 -0.62645381  0.1830168 -0.4694601  1.7474361

  3. ## 2  0.32950777 -0.8201385 -0.2255741  0.2818908

  4. ## 3  0.57578135 -0.3048125  0.8670061 -0.1795257

  5. ## 4 -0.62124058 -2.2153200 -0.7481687 -1.0350488

  6. ## 5 -0.01619026  0.9438195  1.2471197  0.5820200

  7. ## 6  0.91897737  0.7830549  0.6025820 -1.5924689

  

以及数据之间的相关性

  1. ##             x          d            z           e

  2. ## x  1.00000000 0.00668391 -0.012319595 0.016239235

  3. ## d  0.00668391 1.00000000  0.680741763 0.312192680

  4. ## z -0.01231960 0.68074176  1.000000000 0.006322354

  5. ## e  0.01623923 0.31219268  0.006322354 1.000000000

正如我们之前指定的那样。

现在让我们指定真正的数据生成过程并生成解释变量YY

如果我们假装我们不知道真正的关系并使用和来解释,我们对和正确系数应该接近到。  

OLS

如果我们只使用OLS来估计系数:

 

  1. ##

  2. ## Call:

  3. ## lm(formula = y ~ x + d)

  4. ##

  5. ## Residuals:

  6. ##     Min      1Q  Median      3Q     Max

  7. ## -3.2395 -0.5952 -0.0308  0.6617  2.7592

  8. ##

  9. ## Coefficients:

  10. ##             Estimate Std. Error t value Pr(>|t|)

  11. ## (Intercept)  9.99495    0.03105  321.89   <2e-16 ***

  12. ## x            1.01408    0.02992   33.89   <2e-16 ***

  13. ## d            1.31356    0.03023   43.46   <2e-16 ***

  14. ## ---

  15. ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

  16. ##

  17. ## Residual standard error: 0.9817 on 997 degrees of freedom

  18. ## Multiple R-squared:  0.7541, Adjusted R-squared:  0.7536

  19. ## F-statistic:  1528 on 2 and 997 DF,  p-value: < 2.2e-16

 

b的估计系数是1.31 instread of 1. ## 2SLS ##现在我们使用2SLS来估计这种关系。我们使用z作为d的工具变量

第1阶段:在和上回归,并将d的拟合值保存为d.ddxxzz

  

  1. ##

  2. ## Call:

  3. ## lm(formula = d ~ x + z)

  4. ##

  5. ## Residuals:

  6. ##      Min       1Q   Median       3Q      Max

  7. ## -2.59344 -0.52572  0.04978  0.53115  2.01555

  8. ##

  9. ## Coefficients:

  10. ##             Estimate Std. Error t value Pr(>|t|)

  11. ## (Intercept) -0.01048    0.02383   -0.44    0.660

  12. ## x            0.01492    0.02296    0.65    0.516

  13. ## z            0.68594    0.02337   29.36   <2e-16 ***

  14. ## ---

  15. ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

  16. ##

  17. ## Residual standard error: 0.7534 on 997 degrees of freedom

  18. ## Multiple R-squared:  0.4636, Adjusted R-squared:  0.4626

  19. ## F-statistic: 430.9 on 2 and 997 DF,  p-value: < 2.2e-16

第2阶段:在和上回归yyxxd.hatd.hat

  

  1. ##

  2. ## Call:

  3. ## lm(formula = y ~ x + d.hat)

  4. ##

  5. ## Residuals:

  6. ##     Min      1Q  Median      3Q     Max

  7. ## -4.4531 -1.0333  0.0228  1.0657  4.0104

  8. ##

  9. ## Coefficients:

  10. ##             Estimate Std. Error t value Pr(>|t|)

  11. ## (Intercept)  9.99507    0.04786  208.85   <2e-16 ***

  12. ## x            1.01609    0.04612   22.03   <2e-16 ***

  13. ## d.hat        1.00963    0.06842   14.76   <2e-16 ***

  14. ## ---

  15. ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

  16. ##

  17. ## Residual standard error: 1.513 on 997 degrees of freedom

  18. ## Multiple R-squared:  0.4158, Adjusted R-squared:  0.4146

  19. ## F-statistic: 354.8 on 2 and 997 DF,  p-value: < 2.2e-16

结果

b的真值:1 OLS estiamte of b:.00963 2SLS estiamte of b:1.31356

如果治疗变量是内生的,我们使用2SLS。

 

 

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

参考文献

1.R语言多元Logistic逻辑回归 应用案例

2.面板平滑转移回归(PSTR)分析案例实现

3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)

4.R语言泊松Poisson回归模型分析案例

5.R语言回归中的Hosmer-Lemeshow拟合优度检验

6.r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现

7.在R语言中实现Logistic逻辑回归

8.python用线性回归预测股票价格

9.R语言如何在生存分析与Cox回归中计算IDI,NRI指标


R语言工具变量与两阶段最小二乘法的评论 (共 条)

分享到微博请遵守国家法律