寻找R中多项式有序Probit / Logit回归的边际效应

时间:2013-11-13 21:45:36

标签: r regression logistic-regression

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

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

1 个答案:

答案 0 :(得分: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