在ggplot2中绘制没有交互的线性回归线
Posted
技术标签:
【中文标题】在ggplot2中绘制没有交互的线性回归线【英文标题】:plot linear regressions lines without interaction in ggplot2 【发布时间】:2014-07-06 12:53:43 【问题描述】:此代码绘制回归线与 ggplot2 中的交互:
library(ggplot2)
ggplot(mtcars, aes(hp, mpg, group = cyl)) + geom_point() + stat_smooth(method = "lm")
可以用stat_smooth
绘制没有交互的线条吗?
【问题讨论】:
三个回归线的斜率应该相同 所以把, group = cyl
带出去?
三条回归线(每组圆柱一条),每条线的斜率相同但截距不同
【参考方案1】:
解决方法是在ggplot()
之外制作模型。然后对该模型进行预测并将结果添加到原始数据框中。这将添加列fit
、lwr
和upr
。
mod<-lm(mpg~factor(cyl)+hp,data=mtcars)
mtcars<-cbind(mtcars,predict(mod,interval="confidence"))
现在您可以使用geom_line()
和fit
值作为y
添加三个回归线,并使用geom_ribbon()
和lwr
和upr
添加置信区间。
ggplot(mtcars, aes(hp, mpg, group = cyl)) + geom_point() +
geom_line(aes(y=fit))+geom_ribbon(aes(ymin=lwr,ymax=upr),alpha=0.4)
【讨论】:
以上是关于在ggplot2中绘制没有交互的线性回归线的主要内容,如果未能解决你的问题,请参考以下文章
如何从回归模型中绘制线性和二次预测变量,同时还要控制其他变量?
将线性回归线添加到 R 上的 ggplot2 dotplot