如何获得R中线性回归的预测区间

时间:2014-05-15 12:58:09

标签: r lm predict

这个问题可能源于我不完全理解predict()函数正在做什么的事实,但我想知道是否有办法访问基础预测数据,以便我可以获得预测间隔给定的未观察到的值。这就是我的意思:

x <- rnorm(100,10)
y <- x+rnorm(100,5)

制作线性模型:

mod1 <- lm(y ~ x)

如果我想要模型估计的置信区间,我可以这样做:

confint(mod1)

并获取

>                  2.5 %    97.5 %
(Intercept) -8.1864342 29.254714
x            0.7578651  1.132339

如果我愿意,我可以将这些下限和上限估计值插入到预测方程式中,以获得x的某些输入的较低和较高置信区间。

如果我想做同样的事情,但是有预测间隔怎么办?使用

predict(mod1, interval = "prediction")

看起来它适合模型到具有下限和上限的现有数据,但是没有告诉我哪些参数的下限和上限是基于这样我可以将它们用于未观察到的值。

(我知道我可以在技术上将一个值放入predict()命令中,但我只想要基础参数,这样我就不一定要在R中进行预测。

1 个答案:

答案 0 :(得分:4)

predict函数接受newdata参数,该参数计算未观察值的间隔。这是一个例子

x <- rnorm(100, 10)
y <- x + rnorm(100, 5)
d <- data.frame(x = x, y = y)

mod <- lm(y ~ x, data = d)

d2 <- data.frame(x = c(0.3, 0.6, 0.2))
predict(mod, newdata = d2, interval = 'prediction')

我不知道基础参数的含义。预测间隔的计算涉及复杂的公式,您无法将其减少为几个简单的参数。