我尝试在回归图上绘制间隔,但是lines函数根本不起作用,而matlines函数仅绘制了三条没有斜率的直线。
我的数据集来自“ faraway”软件包。
y = salmonella$colonies
x = salmonella$dose
salmonella_fit = lm(y ~ x)
summary(salmonella_fit)
newdose = data.frame( x= c(20, 40, 60, 80, 120, 150, 180, 300,500))
conf_interval = predict(salmonella_fit, newdose, interval = "confidence", level = 0.95)
xval = c(20, 40, 60, 80, 120, 150, 180, 300, 500)
plot(conf_interval[ ,1] ~ xval, xlab = "newdose", ylab ="colonies", main = "Regression")
abline(salmonella_fit, col="lightblue")
lines(conf_interval[,2] ~ xval, col ="blue", type = "l")
lines(conf_interval[,3] ~ xval, col ="blue", type = "l")
matlines(conf_interval, xval, col=c("lightblue","blue","blue"))
这就是我得到的:
我一直在寻找网站上的所有解释,但是我仍然听不清楚,希望您能告诉我我的代码有什么问题。
非常感谢。
答案 0 :(得分:0)
lines
函数可将x坐标指定为第一个向量,将y坐标指定为第二个向量。
在您的情况下,整个绘图代码可能看起来像这样:
plot(conf_interval[ ,1] ~ xval, xlab = "newdose", ylab ="colonies", main = "Regression", ylim=range(conf_interval))
abline(salmonella_fit, col="lightblue")
lines(xval, conf_interval[,2], col="blue")
lines(xval, conf_interval[,3], col="blue")
请注意,我还必须添加ylim=range(conf_interval)
,以便扩展y轴的限制。否则,置信区间将位于绘图区域之外。