R中systemfit和2SLS的工具变量估计

时间:2014-06-17 15:47:29

标签: r

我正在尝试使用包R和两个阶段最小二乘(systemfit)在2SLS中进行简单的工具变量估算:

y = b + b1*x1 + b2*x2 + b3*w + e

其中x1和x1是我想要检验的内生变量,w是外生变量,e是残差。我的两个乐器是z1和z2。我想将z1用于x1,z2用于x2。因此,我的第一阶段回归将是

x1 = c + c1*z1 + c2*z2 + c3*w + e1
x2 = d + d1*z1 + d2*z2 +d3*w + e2

我试过了:

systemfit(y~x1 + x2 + w,inst=~z1 + z2 +w)

但不确定这是正确的......

3 个答案:

答案 0 :(得分:3)

为什么不使用ivreg套餐中的AER?您可以尝试并比较结果。

 #install.packages("AER") # if not already installed
 library(AER)
 ?ivreg

答案 1 :(得分:1)

我认为systemfit函数每个方程只能处理一个内生变量。尝试分2步完成。

lm1 <- lm(x1 ~ z1 + w, data = yourDataFrame) 
lm2 <- lm(x2 ~ z2 + w, data = yourDataFrame)
yourDataFrame$x1.1st.step <- lm1$fitted
yourDataFrame$x2.1st.step <- lm2$fitted

lm.2nd.step <- lm(y ~ x1.1st.step + x2.1st.step + w, data = yourDataFrame)

答案 2 :(得分:0)

我肯定会使用ivreg估算2SLS模型。如果您没有R的更新版本,有时上传AER包可能会很棘手(如果您遇到困难,请检查哪个包更适合您的R版本!)。