簡體   English   中英

如何計算使用 nnet package 創建的多項 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM