获得线性模型中预测限值的公式(即:预测区间)

机器算法验证 r 回归 预测模型 预测区间
2022-01-31 01:22:52

让我们看下面的例子:

set.seed(342)
x1 <- runif(100)
x2 <- runif(100)
y <- x1+x2 + 2*x1*x2 + rnorm(100)
fit <- lm(y~x1*x2)

这将使用 OLS 回归基于 x1 和 x2 创建一个 y 模型。如果我们希望预测给定 x_vec 的 y,我们可以简单地使用从summary(fit).

但是,如果我们想预测 y 的下预测和上预测怎么办?(对于给定的置信水平)。

那么我们将如何构建公式呢?

3个回答

您将需要矩阵算术。我不确定 Excel 会如何处理。无论如何,这里是细节。

假设您的回归写为y=Xβ+e.

X是包含预测的预测变量值的行向量(格式与X)。然后预测由下式给出

y^=Xβ^=X(XX)1XY
具有相关的方差
σ2[1+X(XX)1(X)].
然后可以计算出 95% 的预测区间(假设误差为正态分布)为
y^±1.96σ^1+X(XX)1(X).
这考虑了由于误差项引起的不确定性e以及系数估计的不确定性。但是,它忽略了任何错误X. 所以如果预测变量的未来值是不确定的,那么使用这个表达式计算的预测区间就会太窄。

您是否偶然发现了不同类型的预测区间?predict.lm手册页

 ## S3 method for class 'lm'
 predict(object, newdata, se.fit = FALSE, scale = NULL, df = Inf, 
         interval = c("none", "confidence", "prediction"),
         level = 0.95, type = c("response", "terms"),
         terms = NULL, na.action = na.pass,
         pred.var = res.var/weights, weights = 1, ...)

设置“区间”指定在指定“级别”计算置信区间或预测(容差)区间,有时称为窄区间与宽区间。

你是这么想的吗?

@Tal:我可以建议Kutner 等人作为线性模型的绝佳来源。

之间有区别

  1. 的预测Y来自个人的新观察Xvec,
  2. a 的期望值YXvec,E(Y|Xvec)
  3. Y从几个实例xvec

它们都在文本中详细介绍。

我认为您正在寻找置信区间的公式E(Y|Xvec)那就是Y^±t1α/2sY^在哪里t拥有n2df 和sY^是标准误Y^,σ2n+(XvecX¯)2σ2(XiX¯)2