【发布时间】:2018-01-16 20:58:47
【问题描述】:
我目前正在计算R 中的二项式概率glm。
为了分析交互效果,我使用了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
现在我的问题是:如何使用 probit 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 轴的图:
【问题讨论】:
-
如果您向reproducible example 提供示例输入数据,这样我们就可以运行代码并自行测试,这样会更容易提供帮助。