0

我有超过 5000 万个观测值的样本。我在 R 中估计以下模型:

model1 <- feglm(rejection~  variable1+ variable1^2 +  variable2+ variable3+ variable4 | city_fixed_effects + year_fixed_effects, family=binomial(link="logit"),  data=database)

根据 model1 的估计,我计算边际效应:

mfx2 <- marginaleffects(model1)
summary(mfx2)

这行代码还计算了每一个减慢 R 的固定效应的边际效应。我只需要计算变量 1、2 和 3 的平均边际效应。如果我单独计算边际效应,使用 mfx2 <- margineffects (model1, variables = "variable1") 那么它不显示标准误差和平均边际效应的 p 值。

这个问题有什么解决办法吗?

4

1 回答 1

1

fixestmarginaleffects软件包最近都进行了更改以提高互操作性。下一个官方 CRAN 版本将能够做到这一点,但从 2021-12-08 开始,您可以使用开发版本。安装:

library(remotes)
install_github("lrberge/fixest")
install_github("vincentarelbundock/marginaleffects")

我建议在拟合模型之前将您的固定效应变量转换为因子:

library(fixest)
library(marginaleffects)

dat <- mtcars
dat$gear <- as.factor(dat$gear)

mod <- feglm(am ~ mpg + mpg^2 + hp + hp^3| gear,
             family = binomial(link = "logit"),
             data = dat)

然后,您可以使用marginaleffectssummary来计算平均边际效应:

mfx <- marginaleffects(mod, variables = "mpg")
summary(mfx)
## Average marginal effects 
##       type Term Effect Std. Error  z value Pr(>|z|)  2.5 % 97.5 %
## 1 response  mpg 0.3352         40 0.008381  0.99331 -78.06  78.73
## 
## Model type:  fixest 
## Prediction type:  response

请注意,计算平均边际效应需要为数据集的每一行计算不同的边际效应。当您的数据包含数百万个观察值时,这在计算上可能会很昂贵。

newdata相反,您可以使用参数和函数计算回归量的特定值的边际效应typical。有关这些的详细信息,请参阅marginaleffects文档:

marginaleffects(mod, 
                variables = "mpg", 
                newdata = typical(mpg = 22, gear = 4))
##   rowid     type term     dydx std.error       hp mpg gear predicted
## 1     1 response  mpg 1.068844   50.7849 146.6875  22    4 0.4167502
于 2021-12-08T21:01:55.790 回答