Ich habe festgestellt, dass die Spline-Interpolation mit einem Grad höher als 3 (alles jenseits der kubischen Splines) einen sehr hohen Interpolationsfehler aufweist, daher ist die Vorhersage meistens schrecklich. Ich bin auf verschiedene Vorlesungsunterlagen, Folien und Youtube-Videos gestoßen, die einfach darauf hinweisen, dass kubische Splines (3. Grad) optimal sind und dass alles darüber hinaus eine schlechte Idee ist. Diese Quellen erwähnen jedoch nie, warum dies der Fall ist.
Kann mir jemand erklären, warum dies der Fall ist und mir vielleicht einen Titel / Link zu einem Journal / Konferenzpapier geben, der dies erklärt, oder vielleicht sogar einen Beweis geben.
interpolation
goocreations
quelle
quelle
Antworten:
Es gibt keinen solchen Beweis, weil es nicht immer wahr ist. Dies ist eine Faustregel, da ich garantiere, dass Sie eine Situation entwickeln können - eine unendliche Anzahl von Situationen -, in denen Splines höherer Ordnung besser abschneiden als kubische Splines. Die optimale Spline-Reihenfolge für eine bestimmte Situation entspricht genau der Reihenfolge des Systems, das Sie modellieren möchten. Wenn die Reihenfolge gleich ist und Ihre Datenpunkte fehlerfrei sind (natürlich nie, außer bei theoretischen Problemen), sollten Sie in der Lage sein, das System perfekt zu modellieren.
Der Grund, warum sie empfehlen, nicht höher als kubische Splines zu gehen, ist, dass Überanpassung wirklich sehr, sehr schlecht ist. Eine Überanpassung kann Fehler erheblich vergrößern, während eine "Unteranpassung" (Auswahl einer Spline-Methode mit einer niedrigeren Reihenfolge als der Reihenfolge des zu modellierenden Systems) eine Tiefpassfilterung einführt, die entweder nicht so schlecht oder manchmal sogar vorteilhaft ist.
quelle
Hier ist eine grobe Gliederung (die möglicherweise korrekt ist oder nicht). Spline ist eine Polynominterpolation, dh jeder Abschnitt der Kurve zwischen benachbarten Stützpunkten ist ein Polynom. Ein Polynom der Ordnung N hat N + 1 Koeffizienten (Freiheitsgrade) und kann daher 4 Randbedingungen pro Abschnitt erfüllen. Die Wahl der Randbedingungen bestimmt die Art der Interpolation. Für einen Spline, der genau auf die Stützpunkte trifft und eine kontinuierliche erste und zweite Ableitung erzeugt.
Bei Splines höherer Ordnung können Ableitungen höherer Ordnung ebenfalls kontinuierlich sein. Dies führt jedoch dazu, dass bei schärferen Übergängen viel Hochfrequenzgehalt hinzugefügt wird, und führt häufig zu "Klingeln" oder übermäßiger Schwingung. Die ursprünglichen Wörter "Spline" stammen von einem flexiblen Lineal, mit dem "mechanische" Interpolationen durchgeführt wurden. Ich denke, Sie können tatsächlich zeigen, indem Sie die Linealmechanik analysieren, dass der kubische Spline diesem Verhalten entspricht.
Wie bei den meisten Dingen hängt es von Ihrer Anwendung ab und davon, was Sie tun möchten. Eine interessante Alternative zu kubischen Splines sind hermitische Interpolationen, die Monotonie garantieren und sicherstellen können, dass die Interpolation niemals außerhalb der Stützpunkte schwingt. Über die MATLAB-Hilfefunktion
quelle
Es gibt verschiedene Arten von Splines mit widersprüchlichen Zielen:
Für einige Datenpunkte möchten Sie möglicherweise genau interpolieren. Aber für Tausende von Punkten oder sogar ein Dutzend mit Rauschen wird die exakte Interpolation wackeln. Die meisten Spline-Monteure haben Parameter, um die Nähe der Passform gegenüber der Gesamtglätte abzuwägen. Hier ist eine Darstellung von Splines Grad 1 (stückweise linear, Punkte verbinden) mit Daten = Linie + Rauschen. Sie sehen, dass die Daten genau im Zick-Zack nach oben und unten passen, während die maximale Glättung eine gerade Linie ergibt:
(Sehr kurz, B-Splines glatt;
Catmull-Rom-Splines interpolieren, z. B. Frames von Filmen;
Mischungen wie 1/3 B + 2/3 CR liegen sinnvoll dazwischen.)
Wie wirkt sich der Polynomgrad auf die Wackeligkeit aus? Siehe Runges Phänomen .
Beim Überschwingen in 1d 2d 3d ... siehe (ahem) diese Frage auf math.stackexchange.
Auf die Gefahren der Extrapolation mit Keilen über linear finden diese auf SO.
Siehe auch stackoverflow.com/questions/tagged/spline .
quelle
Eine andere Möglichkeit, dies zu betrachten, besteht darin, festzustellen, dass die interessantesten Bilder und Datensätze bis zu einem gewissen Grad "glatt" sind. Das Interpolieren von Gaußschem Rauschen sollte beispielsweise bei Splines höherer Ordnung besser funktionieren.
quelle