首页 文章

绘制lm对象的95%置信区间

提问于
浏览
1

如何计算和绘制r中回归的置信区间?到目前为止,我有两个等长(x,y)的数值向量和一个回归对象(lm.out) . 我给出了给定x的y的散点图,并将回归线添加到该图中 . 我正在寻找一种方法来为lm.out添加95%的预测置信带 . 我已经尝试过使用预测功能,但我甚至不知道从哪里开始:/ . 这是我目前的代码:

x=c(1,2,3,4,5,6,7,8,9,0)
y=c(13,28,43,35,96,84,101,110,108,13)

lm.out <- lm(y ~ x)

plot(x,y)

regression.data = summary(lm.out) #save regression summary as variable
names(regression.data) #get names so we can index this data
a= regression.data$coefficients["(Intercept)","Estimate"] #grab values
b= regression.data$coefficients["x","Estimate"]
abline(a,b) #add the regression line

谢谢!

编辑:我已经看过建议的副本,并不能完全了解它的底部 .

1 回答

  • 3

    你有一个新的数据向量使用预测,这里 newx .

    x=c(1,2,3,4,5,6,7,8,9,0)
    
    y=c(13,28,43,35,96,84,101,110,108,13)
    
    lm.out <- lm(y ~ x)
    newx = seq(min(x),max(x),by = 0.05)
    conf_interval <- predict(lm.out, newdata=data.frame(x=newx), interval="confidence",
                             level = 0.95)
    plot(x, y, xlab="x", ylab="y", main="Regression")
    abline(lm.out, col="lightblue")
    lines(newx, conf_interval[,2], col="blue", lty=2)
    lines(newx, conf_interval[,3], col="blue", lty=2)
    

    编辑

    正如在Ben的演讲中提到的那样,可以通过 matlines 完成如下:

    plot(x, y, xlab="x", ylab="y", main="Regression")
    abline(lm.out, col="lightblue")
    matlines(newx, conf_interval[,2:3], col = "blue", lty=2)
    

相关问题