-1

我正在处理一个包含超过 300K 元素的大数据集,并运行一些回归分析,试图使用预测变量 Distance 估计一个名为 Rate 的参数。我有回归方程。现在我想获得置信区间和预测区间。我可以通过以下命令轻松获得系数的置信区间:

> confint(W1500.LR1, level = 0.95)
              2.5 %      97.5 %
(Intercept) 666.2817393 668.0216072
Distance      0.3934499   0.3946572  

这给了我系数 CI 的上限和下限。现在我想为预测区间获得相同的上限和下限。到目前为止,我唯一了解到的是,我可以使用以下代码获取特定距离值(例如 200、500 等)的预测区间:

predict(W1500.LR1, newdata, interval="predict")  

这对我没有用,因为我有超过 300K 不同的距离值,需要为每个值运行此代码。有什么简单的方法可以像我上面显示的 confint 命令那样获得预测间隔?

4

1 回答 1

12

必须自己编数据,但你去吧

x = rnorm(300000)
y = jitter(3*x,1000)

fit = lm(y~x)

#Prediction intervals
pred.int =  predict(fit,interval="prediction")

#Confidence intervals
conf.int =  predict(fit,interval="confidence")

fitted.values = pred.int[,1]

pred.lower = pred.int[,2]
pred.upper = pred.int[,3]

plot(x[1:1000],y[1:1000])
lines(x[1:1000],fitted.values[1:1000],col="red",lwd=2)
lines(x[1:1000],pred.lower[1:1000],lwd=2,col="blue")
lines(x[1:1000],pred.upper[1:1000],lwd=2,col="blue")

在此处输入图像描述

因此,您可以看到您的预测是用于预测新数据值,而不是用于构建 beta 系数的区间。因此,您真正想要的置信区间将以相同的方式从 conf.int 获得。

于 2013-03-04T21:54:36.407 回答