在ggplot2中绘制没有交互作用的线性回归线

6

这段代码使用ggplot2绘制交互作用的回归线:

library(ggplot2)
ggplot(mtcars, aes(hp, mpg, group = cyl)) + geom_point() + stat_smooth(method = "lm")

图片描述

是否可以使用stat_smooth绘制没有交互作用的线条?


三条回归线的斜率应该相同。 - luciano
那么把 , group = cyl 去掉? - David Arenburg
三条回归线(每组气缸一个)具有相同的斜率但不同的截距。 - luciano
1个回答

7

解决方法是在ggplot()之外创建模型。然后对此模型进行预测并将结果添加到原始数据框中。这将添加fitlwrupr列。

mod<-lm(mpg~factor(cyl)+hp,data=mtcars)
mtcars<-cbind(mtcars,predict(mod,interval="confidence"))

现在你可以使用geom_line(),并将fit值作为y来添加三条回归线,使用geom_ribbon()并将lwrupr作为参数来添加置信区间。

ggplot(mtcars, aes(hp, mpg, group = cyl)) + geom_point() +
      geom_line(aes(y=fit))+geom_ribbon(aes(ymin=lwr,ymax=upr),alpha=0.4)

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接