具有生物反应变量的两阶段最小二乘回归

时间:2015-06-22 11:13:03

标签: r

您好我想用二项式响应变量运行两阶段最小二乘回归。 对于连续响应变量,我使用" tsls" R包中的选项" sem"。

这是我的命令,想知道我做得对。

(x:内生变量,z:工具变量,y:响应变量(0或1))

xhat<-lm(x~z)$fitted.values

R<-glm(y~xhat, family=binomial)

R$residuals<-c(y - R$coef[1]+x*R$coef[2]) 

谢谢

1 个答案:

答案 0 :(得分:0)

这不是很正确。对于R中的glm()函数,family=binomial选项默认为逻辑回归。因此,您的残差计算不会根据需要转换残差。

您可以使用residuals.glm()函数自动生成广义线性模型的残差。您可以将residuals()函数用于线性模型。同样,您可以使用predict()函数而不是lm(x~z)$fitted.values来获取xhats。但是,因为在这种情况下你有xhat和x(不是同一个变量),所以使用接近上面解决方案的代码(但使用plogis()函数进行logit转换):

stageOne <- lm(x ~ z)
xhat <- predict(stageOne)
stageTwo <- glm(y ~ xhat, family=binomial)
residuals <- y - plogis(stageTwo$coef[1] + stageTwo$coef[2]*x)

predict()residuals()residuals.glm()函数的一个不错的功能是它们可以扩展到其他数据集。