我正在尝试复制在R中的面板数据上运行的Stata xtlogit re回归。通过面板数据,我的意思是我在不同年份(year_id)对不同的个体(person_id)有多个观察。我的因变量(DV)是二进制的。我有两个我想要预测的主要变量(IV1和IV2)和一些控制变量(some_controls)。总共我有大约40,000个观察结果。
我是使用Stata的新手,因此我可能无法识别提供给xtlogit命令的代码的相关部分。但是,据我所知,相关的Stata代码如下:
isid person_id year_id
xtset person_id year_id,y
eststo: xtlogit DV IV1 IV2 some_controls cformat(%3.2f) pformat(%3.2f) re vsquish noomitted nolog noemptycells vce(robust)
我尝试使用以下公式在R中复制它:
使用" plm"包:
plm(DV ~ IV1 + IV2 + some_controls, index = c("person_id","year_id"), model ="random", data = data_frame_name)
使用lme4包:
glmer(DV ~ IV1 + IV2 + some_controls + (1|person_id) + (1|year_id), family = binomial, data = data_frame_name)
不幸的是,plm模型无法通过运行Stata代码重现我得到的结果。 glmer模型返回错误"错误:pwrssUpdate没有收敛(maxit)迭代"。
我很感谢有关如何完全复制Stata代码计算结果的建议。
我找到了Stata's xtlogit (fe, re) equivalent in R?。但是,我不确定该问题的解决方案将如何应用于面板数据。
答案 0 :(得分:1)
包plm
}中的命令plm
不适用于Stata等xtlogit
等面板logit模型。您需要查看例如包含pglm
和函数pglm
。