34 votos

¿Comparando alisa ranuras vs loess para alisar?

Me gustaría entender mejor las ventajas y desventajas para el uso de loess o una spline de suavizado para suavizar algunos curva.

Otra variación de mi pregunta es si hay una forma de construir una spline suavizadora de manera que obtendrá los mismos resultados que usando loess.

Se acogen con satisfacción cualquier referencia o información.

Gracias.

38voto

Shea Parkes Puntos 2014

Los resultados reales de un smoothing spline o loess va a ser muy similar. Se puede tener un aspecto un poco diferente en los bordes del soporte, pero siempre y cuando te asegures de que es un "natural" smoothing spline tendrá un aspecto muy similar.

Si sólo utiliza uno para agregar un "suave" a un diagrama de dispersión, en realidad no hay razón para preferir uno sobre el otro. Si en cambio quieres hacer predicciones sobre nuevos datos, por lo general es mucho más fácil usar un smoothing spline. Esto es debido a que el smoothing spline es de forma directa a la expansión de los datos originales; si usted utiliza el 100 nudos para hacer eso significa que usted crea ~100 nuevas variables a partir de la variable original. Loess en lugar de sólo las estimaciones de la respuesta en todos los valores experimentados (o un estratificado subconjunto de datos de gran tamaño).

En general, existen algoritmos para optimizar el valor de penalización para los splines de suavizado (mgcv en R, probablemente, hace de este el mejor). Loess no es tan clara, pero por lo general aún así obtener una producción razonable desde cualquier aplicación. MGCV también le da una idea de la equivalencia de los diplomas de la Libertad, de modo que usted puede obtener una idea de cómo "no-lineal" de sus datos.

Me parece que cuando modelado de datos muy grandes, un simple naturales spline a menudo proporciona resultados similares para un mínimo de cálculo en comparación con un smoothing spline o loess.

16voto

Eero Puntos 1612

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.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X