LOESS 置信区间取决于点数

LOESS confidence intervals depend on the number of points

让我们构建一个带有一些“噪音”的线性趋势如下:

X <- seq(0,20,1); Y <- X/4 + sin(X); plot(X,Y)

现在我用 loess 平滑数据集并用 qt 和黄土标准误差绘制“95% 置信区间”:

X.pred <- seq(0, 20, length.out = 1000)   # To have smooth lines
Fit    <- predict(loess(Y ~ X, span = 0.75), newdata = X.pred, se = TRUE)
lines(X.pred, Fit$fit)
lines(X.pred, Fit$fit + qt(0.975, Fit$df) * Fit$se.fit, lty = 3)
lines(X.pred, Fit$fit - qt(0.975, Fit$df) * Fit$se.fit, lty = 3)

结果非常直观,下方趋势清晰可见,“波段”几乎覆盖了所有点(符合 95% 置信区间的预期)。

当我们有很多点需要拟合时,问题就出现了。让我们将点数增加 10 倍:

X <- seq(0, 20, 0.1); Y <- X/4 + sin(X); plot(X, Y)

当我 运行 使用与上面相同的脚本时,带现在很窄,显然没有覆盖 95% 的点。我怎样才能获得“直观的”loess 95% 的条带,而不考虑拟合点的数量?

这是对置信带行为的误解;对于任何合理的估计形式,随着样本量的增加,置信区间将缩小为零(即使残差保持不变)。您似乎在寻找 预测区间 。您可以通过将残差方差(例如 resid.sd <- loess(Y ~ X, span = 0.75)$s; resid.var <- resid.sd^2)添加到拟合的平方标准误差,并使用总和的平方根作为 qnorm() 中的标准差来近似地获得这些。 (将参数误差的t-distributed分布和残差的高斯分布结合起来并不容易......)