Saya perhatikan bahwa interpolasi spline dengan derajat lebih tinggi dari 3 (segala sesuatu di luar splines kubik) memiliki kesalahan interpolasi yang sangat tinggi, oleh karena itu prediksi sebagian besar mengerikan. Saya telah menemukan berbagai catatan kuliah, slide, dan video Youtube yang hanya menunjukkan bahwa splines kubik (tingkat 3) optimal dan apa pun di luar itu adalah ide yang buruk. Namun sumber-sumber ini tidak pernah menyebutkan mengapa ini terjadi.
Adakah yang bisa menjelaskan kepada saya mengapa ini terjadi dan mungkin memberi saya judul / tautan ke jurnal / makalah konferensi yang menjelaskan hal ini atau bahkan mungkin memberikan bukti.
interpolation
Goocreations
sumber
sumber
Jawaban:
Tidak ada bukti seperti itu karena itu tidak selalu benar. Ini adalah aturan praktis, karena saya jamin Anda dapat menemukan situasi - jumlah situasi yang tak terbatas sebenarnya - di mana spline orde tinggi akan lebih baik daripada spline kubik. Urutan spline optimal untuk setiap situasi tertentu adalah urutan yang sama persis dengan sistem yang Anda coba modelkan. Jika urutannya sama dan titik data Anda bebas kesalahan (tidak pernah terjadi, tentu saja, kecuali dalam masalah teoretis), maka Anda harus dapat memodelkan sistem dengan sempurna.
Alasan mereka merekomendasikan untuk tidak pergi lebih tinggi dari splines kubik adalah karena overfitting benar-benar buruk. Overfitting dapat memperbesar kesalahan, sementara "underfitting" (memilih metode spline dengan urutan lebih rendah dari urutan sistem yang Anda modelkan) memperkenalkan beberapa penyaringan lulus rendah yang tidak terlalu buruk atau kadang-kadang bahkan menguntungkan.
sumber
Berikut ini adalah garis besar kasar (yang mungkin atau mungkin tidak benar). Spline adalah interpolasi polinomial, yaitu setiap bagian kurva antara titik dukungan tetangga adalah polinomial. Polinomial orde N memiliki koefisien N + 1 (derajat kebebasan) dan karenanya dapat memenuhi 4 syarat batas per bagian. Pilihan kondisi batas menentukan jenis interpolasi. Untuk spline yang mengenai titik-titik pendukung dengan tepat dan menciptakan turunan pertama dan kedua yang berkelanjutan.
Untuk spline pesanan lebih tinggi, Anda juga bisa mendapatkan turunan pesanan lebih tinggi untuk kontinu, tetapi itu cenderung menambahkan banyak konten frekuensi tinggi pada transisi yang lebih tajam dan sering menghasilkan "deringan" atau osilasi berlebihan. Kata asli "spline" berasal dari penggaris fleksibel yang digunakan orang untuk membuat interpolasi "mekanis". Saya pikir Anda benar-benar dapat menunjukkan dengan menganalisis mekanika penggaris spline kubik cocok dengan perilaku itu.
Seperti kebanyakan hal, itu tergantung pada aplikasi Anda dan apa yang ingin Anda lakukan. Alternatif yang menarik untuk splines kubik adalah interpolasi hermit yang dapat menjamin monoton dan memastikan bahwa interpolasi tidak pernah berayun di luar poin pendukung. Dari fungsi bantuan MATLAB
sumber
Ada beberapa jenis splines, dengan tujuan yang saling bertentangan:
Untuk beberapa titik data, Anda mungkin ingin menginterpolasi secara tepat; tetapi untuk ribuan poin, atau bahkan selusin dengan suara, interpolasi pasti akan bergoyang. Kebanyakan spline fitter memiliki parameter untuk memperdagangkan kedekatan yang cocok vs kelancaran keseluruhan. Berikut adalah sebaris splines derajat 1 (sambungan linear, sambungan-titik) dengan data = garis + derau. Anda melihat bahwa pemasangan data tepat zig-zag ke atas dan ke bawah, sementara perataan maksimum memberikan garis lurus:
Ada splines untuk pekerjaan yang berbeda, tergantung pada data input dan poin baru di antara: puluhan / jutaan poin, seberapa berisik, tersebar / pada kisi, 1d 2d 3d ... Pada kisi biasa dalam 3d misalnya, spline derajat akan melihat tetangga dari setiap titik permintaan: 1 (tetangga terdekat), 8 (trilinear), 27, 64 ... Bisakah Anda membeli 64? Apakah Anda memerlukan 64? Tergantung.d (d+1)3
(Sangat singkat, B-splines halus;
Catmull-Rom splines interpolasi, misalnya bingkai film;
campuran seperti 1/3 B + 2/3 CR berguna di antaranya.)
Bagaimana tingkat polinomial mempengaruhi kegoyahan? Lihat fenomena Runge .
Pada overshoot di 1d 2d 3d ... lihat (ahem) pertanyaan ini di math.stackexchange.
Tentang bahaya ekstrapolasi dengan splines di luar linear, lihat ini di SO.
Lihat juga stackoverflow.com/questions/tagged/spline .
sumber
Cara lain untuk melihatnya adalah dengan memperhatikan bahwa gambar dan set data yang paling menarik "halus" sampai tingkat tertentu. Interpolasi noise gaussian, misalnya, harus bekerja lebih baik dengan splines orde tinggi.
sumber