![](/img/trans.png)
[英]How to get average marginal effects (AMEs) with standard errors of a multinomial logit model?
[英]How to compute marginal effects of a multinomial logit model created with the nnet package?
我有一个多项式 logit model 使用multinom
命令使用nnet
R package 创建。 因变量具有三个类别/选择选项。 我正在根据农民特征对选择某种灌溉类型(不灌溉、地表灌溉、滴灌)的概率进行建模。
我想估计边际效应,即当我将自变量 X 增加一个单位时,选择灌溉类型 Y 的概率会改变多少? 我尝试使用margins
package ( marginal_effects
)来执行此操作,但这仅给出数据集中每个观察值的 1 个值。 我期待三个值,因为我想要三种灌溉类型中的每一种的边际效应。
有人知道是否有更好的 R package 用于此? 或者我是否对margins
包做错了什么? 谢谢你。
您可以使用marginaleffects
包来做到这一点(免责声明:我是维护者)。 请注意警告。
library(nnet)
library(marginaleffects)
mod <- multinom(factor(cyl) ~ hp + mpg, data = mtcars, quiet = true)
mfx <- marginaleffects(mod, type = "probs")
## Warning in sanity_model_specific.multinom(model, ...): The standard errors
## estimated by `marginaleffects` do not match those produced by Stata for
## `nnet::multinom` models. Please be very careful when interpreting the results.
summary(mfx)
## Average marginal effects
## type Group Term Effect Std. Error z value Pr(>|z|) 2.5 %
## 1 probs 6 hp 2.792e-04 0.000e+00 Inf < 2.22e-16 2.792e-04
## 2 probs 6 mpg -1.334e-03 0.000e+00 -Inf < 2.22e-16 -1.334e-03
## 3 probs 8 hp 2.396e-05 1.042e-126 2.298e+121 < 2.22e-16 2.396e-05
## 4 probs 8 mpg -2.180e-04 1.481e-125 -1.472e+121 < 2.22e-16 -2.180e-04
## 97.5 %
## 1 2.792e-04
## 2 -1.334e-03
## 3 2.396e-05
## 4 -2.180e-04
##
## Model type: multinom
## Prediction type: probs
marginaleffects
效应 package 理论上应该可以工作,但是由于文件大小限制,我的示例无法编译(这意味着我没有足够的 RAM 用于它尝试使用的 1.5 GB 向量)。 它甚至不是那么大的数据集,这很奇怪。
如果对多项模型使用margin_effects marginal_effects()
( margins
包),它只显示默认类别的output。 您必须手动设置要查看的每个类别。 您可以用扫帚清理 output,然后结合其他方式。 它很笨重,但它可以工作。
marginal_effects(model, category = 'cat1')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.