使用具有许多零值的黄土回归
除非已经对 Loess 参数进行了交叉验证(通常情况并非如此),否则Loess 置信区间并没有多大意义。当您按照最初的意图使用黄土进行探索时,了解如何控制它将帮助您指导您的探索并更好地解释其结果。
考虑这个对合成数据集的小型研究,它只有或者作为回应:这是你情况的一个极端例子。绘制为黑点的数据是伯努利的结果变量(“硬币翻转”),其中随水平坐标以阻尼正弦方式变化,如每个面板中的白色参考曲线所示。面板仅因黄土平滑的“跨度”而异,这决定了每个黄土估计的局部性:较小的跨度产生更局部化的估计;也就是说,它们反映了每个最近邻居的响应远比远方的邻居更有价值。平滑显示为蓝色,其周围的置信带显示为深灰色。
左侧面板使用默认跨度. 这导致每个点的黄土估计取决于图中的大多数点:这些数据非常平滑。在许多情况下,白色图位于阴影置信带之外,显示此置信带可能会产生误导。
很明显,只有最后的跨度平滑度是否接近真实值:这里,白色图形包含在阴影灰色区域内。不幸的是,在实践中,我们无法获得任何真正的基础曲线:这正是我们试图估计的。
所有这三个平滑都是完全有效的,因为它们努力勾勒出响应(“y”)相对于回归量(“x”)的总体趋势。左侧的重度平滑表明响应率大致稳定(平均而言,它是稳定的)。右侧较轻的平滑捕捉更高频率的变化。在实践中,它所显示的是“真实”还是“噪音”可能并不明显。
在实践中,我们从不只接受一个默认的平滑级别:我们改变平滑的数量,正如这里所展示的,以便了解不同级别的局部分辨率的数据。我们还可以改变平滑度,以便创建不同类型的数据视觉描述,引导观察者关注全球趋势(如左图)或局部行为(如右图),我们认为合适。
“检查适当性”的最佳工具是在特定分析或可视化目标的上下文中研究平滑的残差。关于探索性数据分析的好书,例如 John Tukey 的EDA,提供了丰富的计算和分析平滑及其残差的技术。
如果您想进行实验,这里是R创建这些插图的代码。
#
# Generate data.
#
n <- 2e2
x <- 1:n
p <- (sin(x/100 * 2*pi)^2 - 1/2)*exp(-x/n) + 1/2
set.seed(17)
y <- rbinom(n, 1, p)
df <- data.frame(x=x, y=y, p=p)
#
# Set up for drawing.
#
library(ggplot2)
spans <- c(0.75, 0.5, 0.25)
k <- length(spans)
viewports <- lapply(1:k, function(i)
grid:::viewport(width=1/k, height=1, x=(i-1/2)/k, y=1/2))
names(viewports) <- spans
#
# Create the plots.
#
g <- ggplot(df, aes(x, y)) + geom_point(aes(x,y), df, alpha=0.25) +
coord_cartesian(ylim=c(0,1))
for (i in 1:k) {
print(g + geom_smooth(method="loess", span=spans[i]) +
geom_line(aes(x,p), df, color="White", lwd=1) +
labs(title=paste("Span =", spans[i])),
vp=viewports[[i]])
}
参考
约翰·W·图基,EDA。艾迪生-卫斯理,1977 年。

