在效果图

时间:2018-01-16 20:58:48

标签: r plot glm

我目前正在glm中计算二项式概率R

为了分析交互效果,我使用effects包。我想绘制不同的交互,其中一个交互变量在固定的水平上保持不变。我为变量的几个值执行此操作,以查看效果如何演变。

我使用以下操作:

    plot(effect("varL",hx1,given.values=c("varP"=0.7)))
    plot(effect("varL",hx1,given.values=c("varP"=0.1)))

但是,要以图形方式比较不同的图,所有图的y轴应该相同,但情况并非如此。在绘制不同的varP值时,y轴会改变其范围。

指定ylim时,绘图也不正确,并显示与指定完全不同的段。

我尝试了这篇文章中推荐的内容(Scaling axis in a GLM plot with library "effects"),但是却产生了错误消息:

plot(effect("varL",hx1,given.values=c("varP"=0.7)), ylim = qlogis(c(0, 0.20)))

Error in valid.viewport(x, y, width, height, just, gp, clip, xscale, yscale,  : 
  invalid 'yscale' in viewport

现在我的问题是:如何使用概率glm模型设置y轴以使用效果包绘制交互效果?我确信问题是ylim采用指定的值而不将它们调整为logit和probit比例。 qlogis可能适用于logit,但不适用于probit。

下面的一些代码来复制问题。你看到y轴“跳”,我想避免。

install.packages("effects")
require(effects)

varL <- rnorm(100, mean = 1000, sd = 10)
varP <- rnorm(100, mean = 5)
entry <- as.factor(sample(0:1, 100, replace = TRUE))

dat <- data.frame(varL, varP, entry)

hx1 <- glm(entry ~ varL*varP, data = dat, family = binomial(link = "probit"))



plot(effect("varL",hx1,given.values=c("varP"=min(dat$varP))))
plot(effect("varL",hx1,given.values=c("varP"=max(dat$varP))))

以下是“跳跃”y轴的情节:

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

实际上我在逻辑回归方面遇到了类似的问题,我使用了建议Change the y axis on Effect plot in R

基本上我需要做的就是添加参数rescale.axis = F和ylim = c(0,1)