【问题标题】:Replicating Stata's xtlogit regression for panel data in R为 R 中的面板数据复制 Stata 的 xtlogit 回归
【发布时间】:2016-08-06 11:04:34
【问题描述】:

我正在尝试复制在 R 中的面板数据上运行的 Stata xtlogit re 回归。面板数据是指我在不同年份 (year_id) 对不同个人 (person_id) 有多个观察结果。我的因变量(DV)是二进制的。我有 2 个我想预测的主要变量(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?。但是,我不确定该问题的解决方案将如何应用于面板数据。

【问题讨论】:

  • plm 包中的命令 plm 不适用于面板 logit 模型。您需要查看例如包pglm
  • @Helix123 感谢您的评论!我在 pglm 中复制了公式,并且正确地复制了输出!如果您将评论作为答案发布,我可以将其标记为“正确答案”。还有一个问题:pglm 计算一个模型大约需要半个小时,而 Stata 只需要几秒钟。知道为什么会这样吗?
  • 您的数据集非常大,我相信pglm 过程并没有真正优化,并且是纯 R 语言。在一些“数字运算”包中,关键部分是用 C(++) 编写的为了速度增益。实际上,该软件包似乎处于“早期”阶段(请参阅版本号),尽管最新的 CRAN 版本是 2013 年... Stata 通常具有相当优化的程序(并且也可以从预编译代码中受益) .
  • 不是问题,而是自变量(不是一个好术语,但我不会多说)用于预测;说你想预测它们是令人困惑的,甚至可能是困惑的。

标签: r stata lme4 plm


【解决方案1】:

plm 包中的命令 plm 不适用于像 xtlogit 用于 Stata 的面板 logit 模型。您需要查看例如包pglm 和函数pglm 在那里。

【讨论】:

    猜你喜欢
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-15
    • 2021-09-26
    • 1970-01-01
    • 2021-08-25
    相关资源
    最近更新 更多