R语言第二阶段为Ordered logit的Heckman选择模型实现咨询
问题解答
1 sampleSelection包对有序结果第二阶段回归的支持情况
sampleSelection包当前版本的heckit()函数仅支持第二阶段为连续变量的线性回归、二分类probit回归两种结果方程设定,不支持直接将有序logistic/有序probit作为第二阶段结果回归。你当前使用的测试代码默认拟合第二阶段为连续变量的Heckman模型,与你5分类有序结果的研究场景不匹配,输出结果会存在偏差。
2 实现建议与可用R包
你需要的对应Stata heckoprobit命令的带样本选择的有序响应模型,可通过以下方案在R中实现:
- 优先使用
heckmanor包,该包专门适配带样本选择的有序logit/probit模型,核心函数为heckmanor(),可直接替换你现有代码逻辑,示例如下:
# 加载包(首次使用需先执行install.packages("heckmanor")安装) library(heckmanor) # 拟合模型,可通过type参数指定有序回归为probit或logit ord_heckfit <- heckmanor( selection = Use_S ~ Age + Female + Foreign + Perception, outcome = Y ~ X1 + X2 + X3, data = D1, type = "probit" ) # 查看模型结果 summary(ord_heckfit)
- 若有定制化估计需求,可使用
maxLik包手动构造联合似然函数进行极大似然估计,构造逻辑与Stataheckoprobit的似然逻辑一致,可灵活适配自定义约束场景。 - 模型识别注意事项:与经典Heckman模型要求一致,选择方程需包含至少一个仅影响选择行为、不影响有序结果的外生排他性变量,否则模型识别度较低,估计结果稳定性较差。
内容的提问来源于stack exchange,提问作者Giulia
相关产品推荐
相关产品推荐

