我正在处理一个拥有超过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命令?
答案 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")
因此,您可以看到您的预测用于预测新数据值,而不是用于构建β系数的间隔。因此,您实际想要的置信区间将以相同的方式从conf.int获得。