1

我试图找到我的概率的边际效应(但如果有人知道如何用 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

其中“效果”(最新表格左侧第二列,粗体)是我正在寻找的。

4

1 回答 1

0

通常,如果您想要的只是系数表和标准误差表,则使用 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
于 2013-11-13T22:02:58.027 回答