线性回归模型的置信区间和预测区间

机器算法验证 r 回归
2022-03-13 23:41:49

好的,所以我试图理解线性回归。我有一个数据集,看起来一切都很好,但我很困惑。这是我的线性模型总结:

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 0.2068621  0.0247002   8.375 4.13e-09 ***
temp        0.0031074  0.0004779   6.502 4.79e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.04226 on 28 degrees of freedom
Multiple R-squared: 0.6016, Adjusted R-squared: 0.5874 
F-statistic: 42.28 on 1 and 28 DF,  p-value: 4.789e-07 

因此,p 值非常低,这意味着不太可能偶然获得 x,y 之间的相关性。如果我绘制它然后绘制回归线,它看起来像这样: http://s14.directupload.net/images/120923/l83eelv.png

蓝线 = 置信区间
绿线 = 预测区间

现在,很多点都没有落入置信区间,为什么会这样呢?我认为没有一个数据点落在回归线 b/c 上,它们只是彼此相距很远,但我不确定:这是一个真正的问题吗?它们仍然在回归线附近,您完全可以看到一种模式。但这足够了吗?我试图弄清楚,但我只是一遍又一遍地问自己同样的问题。

到目前为止我的想法:置信区间表明,如果你一遍又一遍地计算 CI,95% 的时间真实均值会落入 CI。所以:dp不落入它不是问题,因为这些不是真正的手段。另一方面,预测区间表示,如果你一遍又一遍地计算 PI,95% 的时间里,真正的 VALUE 会落入区间。因此,其中包含要点非常重要(我确实有)。然后我读过PI总是必须比CI更宽。这是为什么?这就是我所做的:

conf<-predict(fm, interval=c("confidence"))
prd<-predict(fm, interval=c("prediction"))

然后我通过以下方式绘制它:

matlines(temp,conf[,c("lwr","upr")], col="red")
matlines(temp,prd[,c("lwr","upr")], col="red")

现在,如果我计算附加数据的 CI 和 PI,无论我选择多宽的范围,我都会得到与上面完全相同的行。我无法理解。这意味着什么?这将是:

conf<-predict(fm,newdata=data.frame(x=newx), interval=c("confidence"))
prd<-predict(fm,newdata=data.frame(x=newx), interval=c("prediction"))

对于新的 x,我选择了不同的序列。如果该序列的观察数与我的回归中的变量不同,我会收到警告。为什么会这样?

1个回答

我了解您的一些问题,但其他问题不清楚。让我回答并陈述一些事实,也许这会消除你所有的困惑。

你的合身度非常好。置信区间应该非常紧密。可以考虑两种类型的置信区域,bsimultanoues 区域,旨在以给定的置信水平覆盖整个真实回归函数。

您正在查看的其他内容是拟合回归点的置信区间。它们仅旨在覆盖 y 在协变量的给定值处的拟合值。它们不打算覆盖协变量其他值的 y 值。实际上,如果间隔非常紧密,因为它们在您的情况下应该是这样,当您远离协变量的固定值时,它们将不会覆盖许多数据点(如果有的话)。对于那种类型的覆盖,您需要同时获得置信曲线(上限和下限曲线)。

现在确实,如果您在协变量的给定值处预测 ay,并且您希望预测区间的置信水平与您在协变量的给定值处用于 y 的置信区间的置信区间相同,则区间将更宽。原因是模型告诉您会增加可变性,因为新的 y 将有其自己的独立误差,必须在区间中加以考虑。根据拟合中使用的数据,该误差分量不会进入估计值。