Aquí hay algunos R/código de ejemplo que te permitirá comparar el apropiado para un loess de ajuste y una spline con la forma:
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 )
Se puede intentar con tus datos y cambiar el código para probar otros tipos o las opciones. También puede que desee ver en la loess.demo
función en el TeachingDemos paquete para una mejor comprensión de lo que el algoritmo de loess. Tenga en cuenta que lo que se ve de loess es a menudo una combinación de loess con una segunda interpolación de suavizado (a veces sí una spline), el loess.demo
función de la realidad muestra que tanto el alisado, y el crudo de loess ajuste.
En teoría siempre se puede encontrar una curva que se aproxima a otra función continua tan cerca como usted quiere, pero es poco probable que una simple elección de nudos que de forma fiable para dar una aproximación a un loess apto para cualquier conjunto de datos.