Deseo comprender mejor los pros / contras para usar ya sea loess o splines de suavizado para suavizar alguna curva.
Otra variación de mi pregunta es si hay una manera de construir una spline de suavizado de manera que produzca los mismos resultados que con el uso de loess.
Cualquier referencia o idea es bienvenida.
regression
splines
loess
Tal Galili
fuente
fuente
Respuestas:
Aquí hay un código / ejemplo R que le permitirá comparar los ajustes para un ajuste de loess y un ajuste de spline:
Puede probarlo con sus datos y cambiar el código para probar otros tipos u opciones. También es posible que desee ver la
loess.demo
función en el paquete TeachingDemos para comprender mejor qué hace el algoritmo loess. Tenga en cuenta que lo que ve de loess es a menudo una combinación de loess con un segundo suavizado de interpolación (a veces en sí mismo una spline), laloess.demo
función en realidad muestra el ajuste de loess suavizado y sin procesar.Teóricamente, siempre puede encontrar una spline que se aproxime a otra función continua tan cerca como desee, pero es poco probable que haya una elección simple de nudos que brinden una aproximación cercana a un ajuste de loess para cualquier conjunto de datos.
fuente
Los resultados reales de una spline o loess de suavizado serán bastante similares. Es posible que se vean un poco diferentes en los bordes del soporte, pero siempre y cuando se asegure de que sea una estría de suavizado "natural", se verán muy similares.
Si solo está usando uno para agregar un "suavizador" a un diagrama de dispersión, no hay una razón real para preferir uno sobre el otro. Si, en cambio, desea hacer predicciones sobre nuevos datos, generalmente es mucho más fácil usar una spline de suavizado. Esto se debe a que la spline de suavizado es una expansión de base directa de los datos originales; si usaste 100 nudos para hacerlo, significa que creaste ~ 100 nuevas variables a partir de la variable original. En cambio, Loess solo estima la respuesta en todos los valores experimentados (o un subconjunto estratificado para datos grandes).
En general, existen algoritmos establecidos para optimizar el valor de penalización para suavizar splines (mgcv en R probablemente lo haga mejor). Loess no es tan claro, pero generalmente obtendrá resultados razonables de cualquier implementación. MGCV también le da una idea de grados de libertad equivalentes para que pueda tener una idea de cuán "no lineales" son sus datos.
Encuentro que al modelar datos muy grandes, una spline natural más simple a menudo proporciona resultados similares para un cálculo mínimo en comparación con una spline de suavizado o loess.
fuente