这个维基百科链接列出了一些检测 OLS 残差异方差的技术。我想了解哪种动手技术在检测受异方差影响的区域方面更有效。
例如,这里 OLS“残差与拟合”图中的中心区域的方差高于图的两侧(事实上我并不完全确定,但为了这个问题,我们假设是这种情况)。为了确认,查看 QQ 图中的错误标签,我们可以看到它们与残差图中心的错误标签相匹配。
但是我们如何量化具有显着更高方差的残差区域呢?
这个维基百科链接列出了一些检测 OLS 残差异方差的技术。我想了解哪种动手技术在检测受异方差影响的区域方面更有效。
例如,这里 OLS“残差与拟合”图中的中心区域的方差高于图的两侧(事实上我并不完全确定,但为了这个问题,我们假设是这种情况)。为了确认,查看 QQ 图中的错误标签,我们可以看到它们与残差图中心的错误标签相匹配。
但是我们如何量化具有显着更高方差的残差区域呢?
这个问题有一种探索的感觉。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 方法建模的。然后将线性回归的残差平方并回归到原始线性模型中的变量上。后一种回归称为辅助回归。
, 在哪里是观察次数和是个来自辅助回归作为同方差原假设的检验统计量。
出于您的目的,您可以关注此模型中的各个系数,以查看哪些变量最能预测高方差或低方差结果。