Interpolación spline de orden superior


8

Noté que la interpolación de splines con un grado superior a 3 (todo más allá de las splines cúbicas) tiene un error de interpolación muy alto, por lo tanto, la predicción es principalmente horrible. Me he encontrado con varias notas de clase, diapositivas y videos de Youtube que simplemente indican que las splines cúbicas (3er grado) son óptimas y que cualquier cosa más allá de eso es una mala idea. Sin embargo, estas fuentes nunca mencionan por qué este es el caso.

¿Puede alguien explicarme por qué este es el caso y tal vez darme un título / enlace a un periódico / conferencia que explique esto o tal vez incluso dar una prueba?


1
Tengo que hacer referencia a este fenómeno de sobreajuste, pero no puedo encontrar ninguna literatura académica que mencione esto. ¿Saben ustedes de algún artículo / libro / tesis que pueda usar?
goocreations

Respuestas:


10

No existe tal prueba porque no siempre es cierto. Es una regla general, porque te garantizo que podrías llegar a una situación, una cantidad infinita de situaciones, en la que las splines de orden superior serían mejores que las splines cúbicas. El orden óptimo de splines para cualquier situación dada es exactamente el mismo orden que el sistema que está intentando modelar. Si el orden es el mismo y sus puntos de datos están libres de errores (nunca, por supuesto, excepto en el caso de problemas teóricos), entonces debería poder modelar el sistema perfectamente.

La razón por la que recomiendan no ir más allá de las splines cúbicas es porque el sobreajuste es realmente malo. El sobreajuste puede aumentar enormemente los errores, mientras que el "subajuste" (elegir un método de spline con un orden inferior al orden del sistema que está modelando) introduce un filtrado de paso bajo que no es tan malo o, a veces, incluso beneficioso.


+1. Tenga en cuenta que elegir un ajuste de orden inferior al modelo que representa no es un filtro de paso bajo 'pseudo': es una forma de filtro de paso bajo por derecho propio.
Tarin Ziyaee

@ user4619 Tienes razón. Quise decir que no es un filtro de paso bajo en el sentido en que generalmente pensamos con los filtros FIR y IIR, pero es un filtro de paso bajo, simplemente no es fácilmente caracterizable. Editó la respuesta.
Jim Clay

3

Aquí hay un bosquejo aproximado (que puede o no ser correcto). Spline es una interpolación polinómica, es decir, cada sección de la curva entre los puntos de soporte vecinos es un polinomio. Un polinomio de orden N tiene coeficientes N + 1 (grados de libertad) y, por lo tanto, puede satisfacer 4 condiciones límite por sección. La elección de las condiciones de contorno determina el tipo de interpolación. Para una spline que está golpeando los puntos de soporte exactamente y creando una derivada continua primera y segunda.

Para splines de orden superior, también puede obtener derivadas de orden superior para que sean continuas, pero eso tiende a agregar una gran cantidad de contenido de alta frecuencia en transiciones más nítidas y, a menudo, da como resultado un "timbre" o una oscilación excesiva. Las palabras originales "spline" se derivan de una regla flexible que la gente solía hacer interpolaciones "mecánicas". Creo que realmente puedes mostrar analizando la mecánica de la regla que la spline cúbica coincide con ese comportamiento.

Como con la mayoría de las cosas, depende de su aplicación y de lo que quiera hacer. Una alternativa interesante a las splines cúbicas son las interpolaciones hermitianas que pueden garantizar la monotonía y asegurarse de que la interpolación nunca se salga de los puntos de apoyo. Desde la función de ayuda de MATLAB

Tips

spline constructs  in almost the same way pchip constructs . However, spline chooses the slopes at the  differently, namely to make even  continuous. This has the following effects:

   - spline produces a smoother result, i.e.  is continuous.    
   - spline produces a more accurate result if the data consists of values of a smooth function.    
   - pchip has no overshoots and less oscillation if the data are not smooth.    
   - pchip is less expensive to set up.
   - The two are equally expensive to evaluate.

2

Hay varios tipos de splines, con objetivos en conflicto:

  • acercarse a los puntos de datos de entrada
  • curvas suaves vs. onduladas

Para algunos puntos de datos, es posible que desee interpolar exactamente; pero para miles de puntos, o incluso una docena con ruido, la interpolación se moverá exactamente. La mayoría de los ajustadores de spline tienen parámetros para compensar la cercanía del ajuste frente a la suavidad general. Aquí hay una gráfica de splines de grado 1 (lineal por partes, conecta los puntos) con datos = línea + ruido. Verá que ajustar los datos exactamente en zig-zags hacia arriba y hacia abajo, mientras que el suavizado máximo proporciona una línea recta:

ingrese la descripción de la imagen aquí Hay splines para diferentes trabajos, dependiendo de los datos de entrada y los nuevos puntos intermedios: decenas / millones de puntos, qué ruidoso, disperso / en una cuadrícula, 1d 2d 3d ... En una cuadrícula regular en 3d, por ejemplo, un la spline de grado mirará vecinos de cada punto de consulta: 1 (vecino más cercano), 8 (trilineal), 27, 64 ... ¿Puede pagar 64? ¿Necesitas 64? Depende.d(d+1)3

(Muy brevemente, las estrías B son suaves; las estrías
Catmull-Rom se interpolan, por ejemplo, cuadros de películas;
mezclas como 1/3 B + 2/3 CR son útiles entre ellas).

¿Cómo afecta el grado polinómico a la ondulación? Ver el fenómeno de Runge .

Sobrepaso en 1d 2d 3d ... vea (ejem) esta pregunta en math.stackexchange.
Sobre los peligros de la extrapolación con splines más allá de lo lineal, vea esto en SO.

Consulte también stackoverflow.com/questions/tagged/spline .


-1

Otra forma de ver esto es notando que las imágenes y los conjuntos de datos más interesantes son "suaves" hasta cierto punto. La interpolación de ruido gaussiano, por ejemplo, debería funcionar mejor con splines de orden superior.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.