Saya ingin lebih memahami pro / kontra untuk menggunakan loess atau splines smoothing untuk menghaluskan beberapa kurva.
Variasi lain dari pertanyaan saya adalah apakah ada cara untuk membangun spline smoothing dengan cara yang akan menghasilkan hasil yang sama seperti menggunakan loess.
Referensi atau wawasan apapun disambut.
regression
splines
loess
Tal Galili
sumber
sumber
Jawaban:
Berikut ini beberapa kode / contoh yang memungkinkan Anda membandingkan kecocokan untuk kecocokan loess dan kecocokan spline:
Anda dapat mencobanya dengan data Anda dan mengubah kode untuk mencoba jenis atau opsi lain. Anda mungkin juga ingin melihat
loess.demo
fungsi dalam paket TeachingDemos untuk pemahaman yang lebih baik tentang apa yang dilakukan oleh algorythm loess. Perhatikan bahwa apa yang Anda lihat dari loess seringkali merupakan kombinasi dari loess dengan perataan interpolasi kedua (kadang-kadang itu sendiri spline),loess.demo
fungsi ini sebenarnya menunjukkan fit loess yang dihaluskan dan mentah.Secara teoritis Anda selalu dapat menemukan spline yang mendekati fungsi kontinu lain sedekat yang Anda inginkan, tetapi tidak mungkin bahwa akan ada pilihan sederhana simpul yang andal akan memberikan perkiraan dekat ke kecocokan loess untuk setiap set data.
sumber
Hasil sebenarnya dari spline smoothing atau loess akan sangat mirip. Mereka mungkin terlihat sedikit berbeda di tepi dukungan, tetapi selama Anda memastikan itu adalah spline smoothing "alami" mereka akan terlihat sangat mirip.
Jika Anda hanya menggunakan satu untuk menambahkan "lebih halus" ke sebar, tidak ada alasan nyata untuk memilih satu dari yang lain. Jika Anda ingin membuat prediksi pada data baru, umumnya lebih mudah menggunakan smoothing spline. Ini karena spline smoothing adalah perluasan basis langsung dari data asli; jika Anda menggunakan 100 knot untuk membuatnya berarti Anda membuat ~ 100 variabel baru dari variabel asli. Loess sebaliknya hanya memperkirakan respons di semua nilai yang dialami (atau subset bertingkat untuk data besar).
Secara umum, ada algoritma yang ditetapkan untuk mengoptimalkan nilai penalti untuk merapikan splines (mgcv dalam R mungkin melakukan ini yang terbaik). Loess tidak cukup jelas, tetapi Anda umumnya masih akan mendapatkan output yang masuk akal dari implementasi apa pun. MGCV juga memberi Anda perasaan untuk Derajat Kebebasan yang setara sehingga Anda bisa merasakan betapa "tidak linear" datanya.
Saya menemukan bahwa ketika memodelkan pada data yang sangat besar, spline alami yang lebih sederhana sering memberikan hasil yang sama untuk perhitungan minimal dibandingkan dengan spline smoothing atau loess.
sumber