【发布时间】:2018-09-29 23:33:55
【问题描述】:
这是我的问题:
1) 我进行了多元线性回归:假设如下:
lm(attitude~quality+price+location+Income)
我主要关心态度和质量的关系,其他变量都是控制变量。
2) 然后我想做一个态度和质量之间的散点图。很简单:
Q <-ggplot(data=data, aes(x=quality, y=attitude))
Q + geom_point(size = 1)
3) 我还想绘制x和y之间的拟合线,斜率应该是多元线性回归的偏回归系数。即应该是下式中的b1:态度=b1*质量+b2*价格+b3*位置+b4*收入,而不是下式中的b:态度=b*质量。因此,以下代码无法正常工作,因为它会绘制 b 而不是 b1 的斜率。
g <- g + geom_smooth(method = lm)
有人问了一个非常相似的问题,see here
提供的答案如下所示(替换为我的变量):
g <- g + geom_smooth(data=data, aes(x=quality, y=attitude, ymin=lcl, ymax=ucl))
但是,这是一个 LOWESS 图(正如您在帖子中看到的图),而不是线性直线图。
我的问题:如何添加一条斜率 b1 的直线,带置信区间?
【问题讨论】:
-
可能
sjPlot包有一些方便的功能:Plotting Marginal Effects of Regression Models -
欢迎来到 StackOverflow!请阅读有关how to ask a good question 的信息以及如何提供reproducible example。这将使其他人更容易帮助您。
-
这个question 给出了所需的确切代码,除了它涉及一个glm 而不是lm,所以我会说足够接近重复?
-
嗨 (1) 感谢 zx8754 的编辑。 (2) 感谢 Axeman 的链接和评论,但我不能很好地理解他们的问题和代码。 (3) 感谢 Henrik 的链接。 sjPlot 有效,我编写了以下代码:plot_model(fit, type = "pred", terms = "quality", show.data = TRUE)。我有一个以下问题:是否可以添加一个图层来使用 geom_label_repel,因为我想在散点图上显示点的标签。似乎 plot_model 不允许添加此层:geom_label_repel(aes(x=quality, y=attitude, label = Region)),即使我可以在 ggplots 中添加。
-
@Will 如果您“只想”获取相关数据然后自己自定义图表,您可以查看相关的
ggeffects包。
标签: r ggplot2 linear-regression confidence-interval