在R中获得回归预测区间的任何简单方法?

时间:2013-03-04 21:22:41

标签: r regression prediction

我正在处理一个拥有超过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命令?

1 个答案:

答案 0 :(得分:11)

不得不编制我自己的数据但是你去了

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")

enter image description here

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