R 如何绘制点和模型';带glm伽马链的s线=对数?
我使用glm和Gamma分布以及link=log来创建回归。我试图用visreg创建模型的线条,但它只是为了响应而创建,没有显示点。我想创建一个包含所有点和模型线的图形。可以使用visreg吗?如果不是的话,我是否可以使用另一个软件包来实现这一点 我已经尝试过使用“abline”创建模型的线条,但没有成功R 如何绘制点和模型';带glm伽马链的s线=对数?,r,graph,glm,gamma-distribution,R,Graph,Glm,Gamma Distribution,我使用glm和Gamma分布以及link=log来创建回归。我试图用visreg创建模型的线条,但它只是为了响应而创建,没有显示点。我想创建一个包含所有点和模型线的图形。可以使用visreg吗?如果不是的话,我是否可以使用另一个软件包来实现这一点 我已经尝试过使用“abline”创建模型的线条,但没有成功 MODEL=glm(y~x, family=Gamma(link='log'), data) visreg(MODEL, scale='response') 我不知道visreg包的实现,但
MODEL=glm(y~x, family=Gamma(link='log'), data)
visreg(MODEL, scale='response')
我不知道
visreg
包的实现,但是从头开始创建一行并不是那么困难。遗憾的是,a行
无法工作,因为该行在表单上不会是线性的y=ax+b
。相反,我们可以使用4个小步骤:
visreg
包负责步骤2-4
使用help(glm)
中的gamma
模型示例,我将用一个最小的可复制示例来说明如何实现这一点:
让我们先做一个模型
#minimum reproducible example
#From help(glm)
clotting <- data.frame(
u = c(5,10,15,20,30,40,60,80,100),
lot1 = c(118,58,42,35,27,25,21,19,18))
summary(fit1 <- glm(lot1 ~ log(u), data = clotting, family = Gamma(link = "log")))
为了获得一些可绘制的数据,我使用了predict
函数
plotData <- xy.coords(x = newdata$u, y = predict(fit1, newdata = newdata))
现在我们有一个图,如下所示:
要添加点,可以使用点
。请注意,您可能必须更改xlim
和ylim
参数,正如我在下面所做的那样(它们分别设置了x轴和y轴上的限制)
其结果如下:
奖励:按原始比例绘制
如果您想将其绘制为lot1
(或者在您的情况下为y
)的值,只需更改即可
plotData <- xy.coords(x = newdata$u, y = predict(fit1, newdata = newdata))
plotData图形不显示点,只显示模型的线。有没有办法在这张图上画出这些点?当然,我错过了那个点。答案将在15秒后出现。
plot(plotData, ylab = "log( lot1 | u )", main = "Model plot on link scale")
plot(plotData, ylab = "log( lot1 | u )", main = "Model plot on link scale",
ylim = range(clotting$lot1),
xlim = rng)
points(clotting$u, clotting$lot1)
plotData <- xy.coords(x = newdata$u, y = predict(fit1, newdata = newdata))
plotData <- xy.coords(x = newdata$u, y = predict(fit1, newdata = newdata, type = "response"))