【发布时间】:2021-12-03 11:21:26
【问题描述】:
这是运行单个固定效果方法的三种不同方法,它们产生或多或少相同的结果(见下文)。我的主要问题是如何使用第二个模型(model_plm)或第三个模型(model_felm)获得预测概率或平均边际效应。我知道如何使用第一个模型 (model_lm) 并在下面使用 ggeffects 显示一个示例,但这仅在我有一个小样本时才有效。
由于我有超过一百万个人,我的模型只能使用 model_plm 和 model_felm。如果我使用model_lm,那么与一百万个人一起运行需要很长时间,因为他们在模型中受到控制。我还收到以下错误:Error: vector memory exhausted (limit reached?)。我检查了 StackOverflow 上的许多线程以解决该错误,但似乎没有任何解决方法。
我想知道是否有解决此问题的有效方法。我的主要兴趣是提取交互residence*union 的预测概率。我通常使用以下软件包之一提取预测概率或平均边际效应:ggeffects、emmeans 或 margins。
library(lfe)
library(plm)
library(ggeffects)
data("Males")
model_lm = lm(wage ~ exper + residence+health + residence*union +factor(nr)-1, data=Males)
model_plm = plm(wage ~ exper + residence + health + residence*union,model = "within", index=c("nr", "year"), data=Males)
model_felm = felm(wage ~ exper + residence + health + residence*union | nr, data= Males)
pred_ggeffects <- ggpredict(model_lm, c("residence","union"),
vcov.fun = "vcovCL",
vcov.type = "HC1",
vcov.args = list(cluster = Males$nr))
【问题讨论】:
-
emmeans::ref_grid中有一个新的nuisance参数可能会有所帮助。只需将nuisance = "nr"添加到通话中,并希望将其传递给emmeans -
感谢您的评论,我试过了,但它不适用于
model_plm或model_felm这是我试图运行的模型。您的建议适用于model_lm,但我的分析无法使用基本lm函数运行,因为模型中控制了超过一百万个人 -
好吧,那我想没有补救办法了。滋扰条款预先对指定因子进行平均,但如果模型不是可加的,则无法做到这一点。在我看来,无论如何你都应该将
nr建模为随机效应;很难想象你对百万个人的影响有特别的兴趣。 -
包括个人级别的固定效应,可针对所有稳定的个人特征进行调整,例如智力、偏好和工作习惯的时间不变方面。我可能错了,但据我所知,RE 无法解释(与 FE 一样)这些随时间变化的特征
-
在我看来这是一种不好的做法,因为您的结果仅适用于研究中包含的个人,并且不会超出他们的范围。将个体作为随机效应,您仍然可以控制个体效应,但残差变化包括个体之间的变化,因为它应该。但我不会多说,因为 SO 不是统计网站。
标签: r panel-data emmeans marginal-effects