使用R中的效果包可视化逻辑回归

时间:2014-04-23 07:27:56

标签: r visualization logistic-regression effects

我正在使用R中的effects包来绘制使用lme4包估计的二项Logistic回归中的分类和数值预测变量的影响。我的因变量是个体动物中是否存在病毒,我的预测因素是各种个体特征(例如,性别,年龄,捕获的月/年,寄生虫的存在,比例质量指数(SMI),以及作为随机变量)。

当我在回归中使用allEffects函数时,我得到下面的图。与下面的模型汇总输出相比,您可以看到每条线的斜率看起来都是零,无论估计的系数如何,并且y轴的刻度会出现奇怪的情况,其中刻度线和刻度标签似乎在同一点上被覆盖。

enter image description here

以下是我的模型代码和摘要输出:

library(lme4)
library(effects)
virus1.mod<-glmer(virus1~ age + sex + month.yr + parasites + SMI + (1|site) , data=virus1data, family=binomial)
virus1.effects<-allEffects(virus1.mod)
plot(virus1.effects, ylab="Probability(infected)", rug=FALSE)  

> summary(virus1.mod)
    Generalized linear mixed model fit by maximum likelihood ['glmerMod']
     Family: binomial ( logit )
    Formula: virus1 ~ age + sex + month.yr + parasite + SMI + (1 | site)
       Data: virus1data

         AIC      BIC   logLik deviance
    189.5721 248.1130 -76.7860 153.5721

    Random effects:
     Groups Name        Variance  Std.Dev.
     site   (Intercept) 4.729e-10 2.175e-05
    Number of obs: 191, groups: site, 6

    Fixed effects:
                   Estimate Std. Error z value Pr(>|z|)  
    (Intercept)   5.340e+00  2.572e+00   2.076  0.03789 *
    ageJ          1.126e+00  8.316e-01   1.354  0.17583  
    sexM         -3.943e-02  4.562e-01  -0.086  0.93113  
    month.yrFeb-08  -2.259e+01  6.405e+04   0.000  0.99972  
    month.yrFeb-09  -2.201e+01  2.741e+04  -0.001  0.99936  
    month.yrJan-08.516e+00  8.175e-01  -3.078  0.00208 **
    month.yrJan-09 -2.607e+00  8.066e-01  -3.232  0.00123 **
    month.yrJul-08 -1.428e+00  8.571e-01  -1.666  0.09563 .
    month.yrJul-09 -2.795e+00  1.170e+00  -2.389  0.01691 *
    month.yrJun-08 -2.259e+01  3.300e+04  -0.001  0.99945  
    month.yrMar-09 -5.451e-01  6.705e-01  -0.813  0.41622  
    month.yrMar-08 -1.863e+00  7.921e-01  -2.352  0.01869 *
    month.yrMay-09 -6.319e-01  8.956e-01  -0.706  0.48047  
    month.yrMay-08  3.818e-01  1.015e+00   0.376  0.70691  
    month.yrSep-08 2.563e+01  5.806e+05   0.000  0.99996  
    parasiteTRUE -6.329e-03  4.834e-01  -0.013  0.98955  
    SMI          -3.438e-01  1.616e-01  -2.127  0.03342 *

我的数据框架:

> str(virus1data)
'data.frame':     191 obs. of  8 variables:
 $ virus1   : Factor w/ 2 levels "0","1": 1 1 1 1 1 2 1 2 1 1 ...
 $ age     : Factor w/ 2 levels "A","J": 1 1 1 1 1 1 1 1 1 1 ...
 $ sex     : Factor w/ 2 levels "F","M": 2 2 2 2 1 1 2 1 2 2 ...
 $ site    : Factor w/ 6 levels “site1”,"site2”,"site3",..: 1 1 1 1 2 2 2 3 2 3 ...
 $ rep : Factor w/ 7 levels "NRF","L","NR",..: 3 7 3 7 1 1 3 1 7 7 ...
 $ month.yr  : Factor w/ 17 levels "Feb-08","Feb-09",..: 4 5 5 5 13 7 14 9 9 9 ...
 $ parasite : Factor w/ 2 levels "FALSE","TRUE": 1 1 2 1 1 2 2 1 2 1 ...
 $ SMI     : num  14.1 14.8 14.5 13.1 15.3 ...
 - attr(*, "na.action")=Class 'omit'  Named int [1:73] 6 12 13 21 22 23 24 25 26 27 ...
  .. ..- attr(*, "names")= chr [1:73] "1048" "1657" "1866" "2961" ...

如果没有提供我的实际数据,是否有人知道可能导致此问题的原因?我已经使用此函数与不同的数据集(相同的自变量,但不同的病毒作为响应变量,和不同的记录)没有问题。

这是我第一次在简历上发帖,所以我希望这个问题是合适的,并且我提供了足够的(和正确的)信息。

0 个答案:

没有答案