使用库"效果"在GLM图中缩放轴。

时间:2016-02-29 10:58:23

标签: r plot effects

我是一名生物学毕业生,试图使用R和图书馆"效果"来绘制我的GLMM。

我试图使用这个字符串绘制我的模型,它完美无缺。

enter image description here

library(effects) 
mod.cowles <- glmer((preshunt)~road+(1|area),family=binomial)
eff.cowles <- allEffects(mod.cowles) 
plot(eff.cowles, main= FALSE,rug=FALSE,colors=1, band.colors=3, col=1)

我的问题是我需要具有相同lims的轴,从0到0.5的值开始并且具有相同的缩放。我试图通过在脚本中添加它们来做到这一点

mod.cowles <- glmer((preshunt)~road+(1|area),family=binomial)
eff.cowles <- allEffects(mod.cowles) 
plot(eff.cowles, main= FALSE,rug=FALSE,colors=1, band.colors=3, col=1, xlim=c(0,0.5), ylim=c(0,0.5))

然后R只是决定给我一个空图,甚至没有正确的轴。

enter image description here

有人能给我一个如何解决这个问题的提示吗?

2 个答案:

答案 0 :(得分:3)

我写信给John Fox函数的作者并得到一个回复​​,y上的值实际上是logit scale(:facepalm:,这是一个逻辑回归!)。将“原始”值转换为logit并返回它是相当简单的。

这是一个可重复的例子:

library(effects) 
library(lme4)

mod.cowles <- glmer(volunteer ~ extraversion + (1|sex), 
                    family=binomial, data = Cowles) # doesn't converge
eff.cowles <- allEffects(mod.cowles) 

plot(eff.cowles, main= FALSE,rug=FALSE,colors=1, band.colors=3, col=1, 
     xlim=c(0, 20), ylim = qlogis(c(0.1, 0.6))) # also log(c(.1, .6)/c(.6, .1))

enter image description here

您可以设置ylim = qlogis(c(0.01, 0.99)),然后您将获得以下图表。请注意,这是logit scale,其中0和1是(-)Inf

qlogis(seq(0, 1, by = 0.1))
[1] -Inf -2.1972246 -1.3862944 -0.8472979 -0.4054651 0.0000000
    0.4054651 0.8472979 1.3862944 2.1972246 Inf

enter image description here

答案 1 :(得分:0)

即使这篇文章很老,但这可能仍然有帮助,或者遇到同样问题的其他人。我遇到了一个空图和&amp;错误的轴刻度,并认为它与R的版本或更确切的一些包。更改为新版本解决了问题。