【问题标题】:Finding Marginal Effects of Multinomial Ordered Probit/Logit Regression in R在 R 中找到多项有序 Probit/Logit 回归的边际效应
【发布时间】:2013-11-13 21:45:35
【问题描述】:

我试图找到我的概率的边际效应(但如果有人知道如何使用 logit 回归,我可以使用它来代替)回归。我的因变量(我的 Y)告诉我一个人可以做的 4 种可能的行动,并按行动的积极性排序(行动 1:最积极的反应,行动 4 最不积极的反应)。我的自变量是 4 个变量(都是连续的),它们告诉我系统的状态。回归的目标是了解系统状态的变化如何影响反应的选择。

我查看了几个包(mlogit、erer、VGAM 等),但两个包似乎都没有边际效应函数,可以简单地为您提供每个自变量的边际效应。

我想获得类似于使用 maBina 等边际效应函数进行二项式 logit/probit 回归的结果。例如,如果我要使用 glm 运行一个简单的 logit/probit 回归,我会得到:

mylogit <- glm(admit ~ gre + gpa + rank, family = binomial(link = "logit"), x=TRUE, data =    mydata)
> summary(mylogit)

Call:
glm(formula = admit ~ gre + gpa + rank, family = binomial(link = "logit"), 
data = mydata, x = TRUE)

Deviance Residuals: 
   Min       1Q   Median       3Q      Max  
-1.6268  -0.8662  -0.6388   1.1490   2.0790  

Coefficients:
              Estimate Std. Error z value Pr(>|z|)    
(Intercept) -3.989979   1.139951  -3.500 0.000465 ***
gre          0.002264   0.001094   2.070 0.038465 *  
gpa          0.804038   0.331819   2.423 0.015388 *  
rank2       -0.675443   0.316490  -2.134 0.032829 *  
rank3       -1.340204   0.345306  -3.881 0.000104 ***
rank4       -1.551464   0.417832  -3.713 0.000205 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

但由于这是一个 logit 回归,因此系数并不能告诉我 GPA 对大学录取概率的边际影响。为了获得这样的边际效应,因此要回答“GPA 值的增加如何影响我被大学录取的可能性?”)我需要运行一个单独的命令,例如 maBina,然后我得到:

>maBina(mylogit, x.mean = FALSE, rev.dum = TRUE, digits = 3)
Call:  glm(formula = admit ~ gre + gpa + rank, family = binomial(link = "logit"), 
data = mydata, x = TRUE)

Coefficients:
(Intercept)          gre          gpa        rank2        rank3        rank4  
-3.989979     0.002264     0.804038    -0.675443    -1.340204    -1.551464  

Degrees of Freedom: 399 Total (i.e. Null);  394 Residual
Null Deviance:      500 
Residual Deviance: 458.5        AIC: 470.5

$out
             effect error t.value p.value
(Intercept) **-0.776** 0.233  -3.337   0.001
gre          **0.000** 0.000   1.931   0.054
gpa          **0.156** 0.069   2.263   0.024
rank2       **-0.136** 0.061  -2.221   0.027
rank3       **-0.261** 0.072  -3.614   0.000
rank4       **-0.251** 0.049  -5.106   0.000

“效果”(最新表格左起第二列,粗体)是我正在寻找的。​​p>

【问题讨论】:

  • 您是否考虑将其移至Cross Validated?我可能会在那里回答这个问题。
  • 您好,感谢您的回答!如何将其移至交叉验证?如果这意味着获得新答案,我可以将我的问题移到那里。
  • 我的建议是在简历上发布一个新问题,并要求删除这个问题。这个问题已经有了答案,所以模组可能会决定不删除它。

标签: r regression logistic-regression


【解决方案1】:

如果您想要的只是系数表和标准误差表,通常使用 summary.glm 并从该对象中提取系数表,这里就是这种情况:

 summary(glmfit)$coefficients   # or
 coef( summary(glmfit))

另一方面,如果您想要的是对比例或概率的预测,那么使用 predict.glm 能够在测量尺度上而不是在估计回归系数的变换尺度上提供预测响应:

?predict.glm

还有一个effects 包提供图形显示并允许指定选定的对比度。

install.packages("effects", dependencies=TRUE)
help(package="effects")

如果您提供一个简单的示例并说明您所指的“效果”值是什么,将会阐明您的期望。

所以在澄清之后,我现在想知道您是否需要一种程序化方法来提取特定值。如果是这样,那么它很简单:

> ea$out['gpa', 'effect']
[1] 0.534       # where ea is the object created in ?maBina example

【讨论】:

  • 感谢您的回复!我的理解是,使用 logit 或 probit 模型,回归系数不会告诉我回归量的边际效应。我对预测本身不感兴趣,但我只想知道 X1 值的变化如何影响选择 4 个动作中的任何一个的可能性。我已经编辑了我最初的问题,以更好地解释“边际效应”是什么意思。
  • 没错。这就是为什么我很惊讶你提供了你所说的你想要的系数矩阵。我指出predict.glm 允许您指定..,type="response",... 参数,我想知道您是否正在寻找它。再次。发布具有您对特定结果的期望的数据集是提出问题的最佳方式。
  • 对不起,我已经编辑了我的问题,以便更清楚地说明哪个是回归输出(我的示例二进制 logit 回归),哪个是边际效应输出(对于我的示例,获得使用函数 maBina) 进行回归。不幸的是,我无法发布数据集,但我不确定这如何有助于确定如何使用 R 以获得我所追求的边际效应。此外,鉴于我不知道如何在 R 中获得这些边际效应的值,我对它们没有任何期望
  • 对不起,我试图让事情更清楚,我实际上让它们变得更复杂了!我为您提供的是一个双变量 logit 模型的示例,其中有几个函数可以计算边际概率。我需要的是当我们有一个 MULTINOMIAL logit 回归(不是二项式)时该怎么做
  • 当然有你可以做的。为什么不发布dput(maBina(mylogit, x.mean = FALSE, rev.dum = TRUE, digits = 3)$out) 的结果,并且一定要说出你想要的数字。
猜你喜欢
  • 2019-07-15
  • 2018-11-19
  • 2011-08-13
  • 2019-05-06
  • 1970-01-01
  • 1970-01-01
  • 2017-08-08
  • 1970-01-01
  • 2016-11-24
相关资源
最近更新 更多