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?
interpolation
goocreations
fuente
fuente
Respuestas:
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.
fuente
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
fuente
Hay varios tipos de splines, con objetivos en conflicto:
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:
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 .
fuente
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.
fuente