残差异方差的度量

机器算法验证 回归 最小二乘 异方差
2022-02-17 02:24:42

这个维基百科链接列出了一些检测 OLS 残差异方差的技术。我想了解哪种动手技术在检测受异方差影响的区域方面更有效。

例如,这里 OLS“残差与拟合”图中的中心区域的方差高于图的两侧(事实上我并不完全确定,但为了这个问题,我们假设是这种情况)。为了确认,查看 QQ 图中的错误标签,我们可以看到它们与残差图中心的错误标签相匹配。

但是我们如何量化具有显着更高方差的残差区域呢?

异方差

2个回答

这个问题有一种探索的感觉。John Tukey 在其经典的探索性数据分析(Addison-Wesley 1977)中描述了许多探索异方差性的过程。也许最直接有用的是他的“流浪示意图”的变体。这会将一个变量(例如预测值)分割成多个 bin,并使用 m 字母摘要(箱线图的概括)来显示每个 bin 的另一个变量的位置、分布和形状。为了强调整体模式而不是机会偏差,进一步平滑了 m 字母统计数据。

通过利用boxplot. R我们用模拟的强异方差数据来说明:

    set.seed(17)
    n <- 500
    x <- rgamma(n, shape=6, scale=1/2)
    e <- rnorm(length(x), sd=abs(sin(x)))
    y <- x + e

数据

让我们从 OLS 回归中获得预测值和残差:

    fit <- lm(y ~ x)
    res <- residuals(fit)
    pred <- predict(fit)

那么,这里是使用等计数箱作为预测值的漂移示意图。lowess用于快速和肮脏的平滑。

    n.bins <- 17
    bins <- cut(pred, quantile(pred, 
                      probs = seq(0, 1, 1/n.bins)))
    b <- boxplot(res ~ bins, boxwex=1/2, 
                 main="Residuals vs. Predicted",
                 xlab="Predicted", ylab="Residual")
    colors <- hsv(seq(2/6, 1, 1/6))
    temp <- sapply(1:5, function(i) lines(lowess(1:n.bins, 
                         b$stats[i,], f=.25), 
            col=colors[i], lwd=2))

徘徊示意图

蓝色曲线平滑中位数。它的水平趋势表明回归通常是一个很好的拟合。其他曲线平滑盒子末端(四分位数)和栅栏(通常是极值)。它们的强收敛和随后的分离证明了异方差性——并帮助我们对其进行表征和量化。

(注意水平轴上的非线性比例,反映了预测值的分布。通过更多的工作,这个轴可以线性化,这有时很有用。)

通常,异方差性是使用 Breusch-Pagan 方法建模的。然后将线性回归的残差平方并回归到原始线性模型中的变量上。后一种回归称为辅助回归

nRa2, 在哪里n是观察次数和Ra2是个R2来自辅助回归作为同方差原假设的检验统计量。

出于您的目的,您可以关注此模型中的各个系数,以查看哪些变量最能预测高方差或低方差结果。