Dưới đây là một số mã R / ví dụ sẽ cho phép bạn so sánh sự phù hợp cho phù hợp hoàng thổ và phù hợp spline:
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 )
Bạn có thể thử nó với dữ liệu của bạn và thay đổi mã để thử các loại hoặc tùy chọn khác. Bạn cũng có thể muốn xem xét loess.demo
chức năng trong gói Dạy học để hiểu rõ hơn về những gì đại số hoàng thổ làm. Lưu ý rằng những gì bạn nhìn thấy từ hoàng thổ thường là sự kết hợp của hoàng thổ với làm mịn nội suy thứ hai (đôi khi chính nó là một spline), loess.demo
chức năng thực sự cho thấy cả sự phù hợp được làm mịn và phù hợp thô.
Về mặt lý thuyết, bạn luôn có thể tìm thấy một spline xấp xỉ một hàm liên tục khác gần như bạn muốn, nhưng không chắc là sẽ có một sự lựa chọn đơn giản về các nút thắt có thể đưa ra một xấp xỉ gần đúng với độ khớp phù hợp cho bất kỳ tập dữ liệu nào.