多元线性回归:以置信区间绘制一条直线

时间:2018-07-03 06:29:45

标签: r ggplot2 linear-regression confidence-interval

这是我的问题:

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的直线?

1 个答案:

答案 0 :(得分:0)

如果您想看到b1,就应该画出偏回归图,据我所知。

在这种情况下,

  1. 对每个变量除外{strong> attitude
  2. 进行quality回归
  3. 使其他预测变量回归quality
  4. 绘制这些拟合的残差:

    X <-
      data_frame(
        x = lm(quality ~.-attitude, data = data)$resid,
        y = lm(attitude ~ .-quality, data = data)$resid
      )
    X %>%
      ggplot(aes(x, y)) +
      geom_smooth(method = "lm")
    

此行可能与b1相同,尽管不是x,y点。