在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() 之外制作模型。然后对该模型进行预测并将结果添加到原始数据框中。这将添加列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)

【讨论】:

以上是关于在ggplot2中绘制没有交互的线性回归线的主要内容,如果未能解决你的问题,请参考以下文章

在 ggplot2 中绘制多重回归线

如何从回归模型中绘制线性和二次预测变量,同时还要控制其他变量?

将线性回归线添加到 R 上的 ggplot2 dotplot

如何使用`lmplot`绘制没有截距的线性回归?

seaborn 的 lmplot 的输出没有绘制散点图和线性回归

R ggplot2 线性回归