该维基百科链接列出了多种检测OLS残差异方差性的技术。我想了解哪种动手操作技术在检测受异方差影响的区域时更有效。
例如,在这里,OLS“残差vs拟合”图中的中心区域的方差比图中侧面的高(我并不完全确定事实,但出于问题考虑,我们假设是这种情况)。作为确认,查看QQ图中的错误标签,我们可以看到它们与残差图中心的错误标签匹配。
但是我们如何量化方差明显更高的残差区域呢?
该维基百科链接列出了多种检测OLS残差异方差性的技术。我想了解哪种动手操作技术在检测受异方差影响的区域时更有效。
例如,在这里,OLS“残差vs拟合”图中的中心区域的方差比图中侧面的高(我并不完全确定事实,但出于问题考虑,我们假设是这种情况)。作为确认,查看QQ图中的错误标签,我们可以看到它们与残差图中心的错误标签匹配。
但是我们如何量化方差明显更高的残差区域呢?
Answers:
这个问题对它有探索性的感觉。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))
蓝色曲线使中间值平滑。其水平趋势表明回归通常很合适。其他曲线使框的末端(四分位数)和围栏(通常是极值)平滑。它们的强大收敛性和随后的分离证明了异方差性,并帮助我们对其进行了表征和量化。
(请注意,水平轴上的非线性比例反映了预测值的分布。如果做更多的工作,则该轴可以线性化,这有时很有用。)