Sebagian besar smooths tambahan dalam kotak alat mgcv benar-benar ada untuk aplikasi spesialis - Anda sebagian besar dapat mengabaikannya untuk GAM umum, terutama smooths univariat (Anda tidak perlu spline efek acak, spline pada bola, bidang acak Markov, atau film sabun lebih halus jika Anda memiliki data univariat misalnya.)
Jika Anda dapat menanggung biaya pengaturan, gunakan splines regresi-pelat tipis (TPRS).
Splines ini optimal dalam arti MSE asimptotik, tetapi membutuhkan satu fungsi dasar per pengamatan. Apa yang dilakukan Simon dalam mgcv adalah menghasilkan versi peringkat rendah dari TPRS standar dengan mengambil basis TPRS penuh dan menjadikannya komposisi eigend. Ini menciptakan basis baru di mana k
fungsi basis pertama di ruang baru mempertahankan sebagian besar sinyal dalam basis asli, tetapi dalam banyak fungsi basis lebih sedikit. Beginilah cara mgcv mengelola untuk mendapatkan TPRS yang hanya menggunakan sejumlah fungsi dasar tertentu daripada satu per observasi. Komposisi eigend ini mempertahankan banyak dari optimalitas basis TPRS klasik, tetapi pada upaya komputasi yang cukup untuk set data yang besar.
Jika Anda tidak dapat menanggung biaya pengaturan TPRS, gunakan splines regresi kubik (CRS)
Ini adalah dasar cepat untuk menghasilkan dan karenanya cocok untuk masalah dengan banyak data. Itu adalah simpul tetapi, jadi sampai batas tertentu pengguna sekarang perlu memilih di mana simpul-simpul itu harus ditempatkan. Untuk sebagian besar masalah, hanya sedikit yang dapat diperoleh dengan melampaui penempatan simpul standar (pada batas data dan berjarak secara merata di antaranya), tetapi jika Anda memiliki sampel yang tidak merata pada rentang kovariat, Anda dapat memilih untuk menempatkan simpul contohnya, kuantil sampel kovariat yang ditempatkan secara merata.
Setiap smooth lain dalam mgcv adalah spesial, digunakan di mana Anda menginginkan smooth isotropic atau dua atau lebih kovariat, atau untuk smoothing spasial, atau yang menerapkan penyusutan, atau efek acak dan splines acak, atau di mana kovariat bersifat siklik, atau perbedaannya bervariasi kisaran kovariat. Anda hanya perlu menjelajah sejauh ini ke dalam kotak alat yang halus jika Anda memiliki masalah yang memerlukan penanganan khusus.
Penyusutan
Ada versi susut TPRS dan CRS dalam mgcv . Ini menerapkan spline di mana bagian mulus sempurna dari dasar juga dikenakan hukuman kelancaran. Hal ini memungkinkan proses pemilihan kehalusan untuk mengecilkan kembali mulus bahkan melampaui fungsi linear pada dasarnya ke nol. Ini memungkinkan penalti kelancaran untuk juga melakukan pemilihan fitur.
Duchon splines, P splines dan B splines
Splines ini tersedia untuk aplikasi spesialis di mana Anda perlu menentukan urutan dasar dan urutan penalti secara terpisah. Duchon splines menggeneralisasi TPRS. Saya mendapat kesan bahwa P splines ditambahkan ke mgcv untuk memungkinkan perbandingan dengan pendekatan berbasis kemungkinan hukuman lainnya, dan karena mereka splines digunakan oleh Eilers & Marx dalam makalah mereka tahun 1996 yang mendorong banyak pekerjaan selanjutnya di GAM. P splines juga berguna sebagai basis untuk splines lainnya, seperti splines dengan batasan bentuk, dan splines adaptif.
B splines, seperti yang diterapkan dalam mgcv memungkinkan banyak fleksibilitas dalam mengatur penalti dan simpul untuk splines, yang dapat memungkinkan beberapa ekstrapolasi di luar jangkauan data yang diamati.
Spline siklik
Jika rentang nilai untuk kovariat dapat dianggap sebagai lingkaran di mana titik akhir rentang harus benar-benar setara (bulan atau hari dalam setahun, sudut gerakan, aspek, arah angin), batasan ini dapat dikenakan pada dasar. Jika Anda memiliki kovariat seperti ini, maka masuk akal untuk memaksakan batasan ini.
Perokok adaptif
Alih-alih menyesuaikan GAM terpisah di bagian kovariat, splines adaptif menggunakan matriks penalti berbobot, di mana bobot diperbolehkan bervariasi dengan lancar pada rentang kovariat. Untuk splin TPRS dan CRS, misalnya, mereka mengasumsikan tingkat kelancaran yang sama di seluruh rentang kovariat. Jika Anda memiliki hubungan di mana hal ini tidak terjadi, maka Anda dapat menggunakan tingkat kebebasan lebih dari yang diharapkan untuk memungkinkan spline beradaptasi dengan bagian yang tidak bergerak dan tidak bergerak. Contoh klasik dalam literatur smoothing adalah
library('ggplot2')
theme_set(theme_bw())
library('mgcv')
data(mcycle, package = 'MASS')
pdata <- with(mcycle,
data.frame(times = seq(min(times), max(times), length = 500)))
ggplot(mcycle, aes(x = times, y = accel)) + geom_point()
Data ini jelas menunjukkan periode kelancaran yang berbeda - efektif nol untuk bagian pertama dari seri, banyak selama dampak, berkurang setelahnya.
jika kami memasukkan GAM standar ke data ini,
m1 <- gam(accel ~ s(times, k = 20), data = mcycle, method = 'REML')
kami mendapatkan kecocokan yang wajar tetapi ada beberapa kegoyahan ekstra di awal dan akhir kisaran times
dan kecocokan yang digunakan ~ 14 derajat kebebasan
plot(m1, scheme = 1, residuals = TRUE, pch= 16)
Untuk mengakomodasi perbedaan kecepatan, spline adaptif menggunakan matriks penalti berbobot dengan bobot yang bervariasi secara halus dengan kovariat. Di sini saya mereparasi model asli dengan dimensi dasar yang sama (k = 20) tetapi sekarang kami memiliki 5 parameter kelancaran (standarnya adalah m = 5
) dan bukan yang asli 1.
m2 <- gam(accel ~ s(times, k = 20, bs = 'ad'), data = mcycle, method = 'REML')
Perhatikan bahwa model ini menggunakan derajat kebebasan yang jauh lebih sedikit (~ 8) dan smooth yang dipasang jauh lebih tidak menggoyahkan ujungnya, sementara masih mampu menyesuaikan perubahan besar dalam akselerasi head secara memadai selama dampak.
Apa yang sebenarnya terjadi di sini adalah bahwa spline memiliki dasar untuk kelancaran dan dasar untuk penalti (untuk memungkinkan bobot bervariasi dengan lancar dengan kovariat). Secara default kedua ini P splines, tetapi Anda juga dapat menggunakan jenis dasar CRS juga ( bs
hanya bisa menjadi salah satu 'ps'
, 'cr'
, 'cc'
, 'cs'
.)
Seperti diilustrasikan di sini, pilihan untuk menjadi adaptif atau tidak benar-benar tergantung pada masalahnya; jika Anda memiliki hubungan yang Anda anggap bentuk fungsionalnya halus, tetapi tingkat kelancaran bervariasi pada rentang kovariat dalam hubungan maka spline adaptif dapat masuk akal. Jika seri Anda memiliki periode perubahan cepat dan periode perubahan rendah atau lebih bertahap, itu bisa menunjukkan bahwa kelancaran adaptif mungkin diperlukan.