比较平滑样条与黄土进行平滑?


25

我希望更好地了解使用黄土或平滑样条曲线平滑某些曲线的利弊。

我的问题的另一个变化是,是否有一种方法可以构造出与使用黄土相同的结果的平滑样条。

欢迎任何参考或见识。


Tal,以下引人注目的文章着眼于许多非参数回归方法Buja,A.,Hastie,T.,&Tibshirani,R.(1989)。线性平滑器和可加模型统计学年鉴,17(2),453-510,最好。
Alexis

Answers:


16

这是一些R代码/示例,可让您比较黄土拟合和样条拟合的拟合:

library(TeachingDemos)
library(splines)

tmpfun <- function(x,y,span=.75,df=3) {
    plot(x,y)
    fit1 <- lm(y ~ ns(x,df))
    xx <- seq( min(x), max(x), length.out=250 )
    yy <- predict(fit1, data.frame(x=xx))
    lines(xx,yy, col='blue')
    fit2 <- loess(y~x, span=span)
    yy <- predict(fit2, data.frame(x=xx))
    lines(xx,yy, col='green')
    invisible(NULL)
}

tmplst <- list( 
    span=list('slider', from=0.1, to=1.5, resolution=0.05, init=0.75),
    df=list('slider', from=3, to=25, resolution=1, init=3))

tkexamp( tmpfun(ethanol$E, ethanol$NOx), tmplst )

您可以对数据进行尝试,并更改代码以尝试其他类型或选项。您可能还需要查看loess.demoTeachingDemos软件包中的函数,以更好地了解黄土算法的功能。请注意,您从黄土中看到的通常是黄土与第二次插值平滑(有时本身是样条曲线)的组合,该loess.demo函数实际上同时显示了平滑黄土和原始黄土的拟合。

从理论上讲,您总是可以找到一个样条曲线,该样条曲线可以根据需要近似逼近另一个连续函数,但是不太可能会有简单的结点选择来可靠地近似拟合适合任何数据集的黄土。


嗨,格雷格:1)感谢您的回答。2)我爱你的loess.demo功能...
Tal Galili

29

平滑样条或黄土的实际结果将非常相似。它们在支撑的边缘看起来可能有些不同,但是只要您确保它是“自然的”平滑样条,它们看起来就会非常相似。

如果您只是使用一个为散点图添加“平滑”,则没有真正的理由偏爱另一个。相反,如果您要对新数据进行预测,则使用平滑样条线通常要容易得多。这是因为平滑样条是原始数据的直接基础扩展。如果您使用100节的速度,则意味着您从原始变量中创建了约100个新变量。黄土只是估算所有经历过的值的响应(或大数据的分层子集)。

通常,已经建立了算法来优化用于平滑样条曲线的惩罚值(R中的mgcv可能做到最好)。Loess并不是很明确,但是您通常仍可以从任何实现中获得合理的输出。MGCV还为您提供了等效的自由度,因此您可以了解数据的“非线性”程度。

我发现,当对非常大的数据进行建模时,与平滑样条或黄土相比,更简单的自然样条通常会提供相似的结果,以最小的计算量。


+1,不错的答案!我喜欢清晰的理论阐述。
gung-恢复莫妮卡

为什么它们在支撑的边缘附近会有所不同?
imu96

1
X
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.