GAM adaptif memuluskan dalam mgcv

9

Buku Simon Wood tentang GAM dan paket R terkait mgcv keduanya sangat terperinci dan informatif dalam hal teori GAM dan penyesuaian model dengan data nyata dan disimulasikan.

Untuk smooths 1D, benar-benar tidak ada yang perlu dikhawatirkan, kecuali untuk memutuskan apakah akan mengimplementasikan fungsi basis siklik vs adaptif, yang dapat memberikan hasil prediksi yang sangat berbeda dibandingkan dengan smooth cubic, thin-plate dan P-spline, karena, dalam kasing adaptif, banyak GAM dipasang ke berbagai wilayah sepanjang spline. Sejauh yang saya tahu, basis siklik adalah umum dalam pemodelan time-series, sedangkan smooths adaptif harus dipertimbangkan ketika data sangat bervariasi sehubungan dengan variabel respon; Namun, smoothing adaptif harus digunakan "dengan hemat dan hati-hati".

Saya telah menyelidiki GAM untuk beberapa waktu sekarang, dan diberikan pertanyaan penelitian saya, saya mendapati diri saya banyak berubah pikiran ketika menyangkut kelancaran implementasi. mgcv mencakup 17 smooths berbeda untuk dipilih (menurut perhitungan saya). Saya telah mempertimbangkan smooths cubic dan P-spline.

Pertanyaan saya sekarang adalah : kapankah smoothing adaptif harus dipertimbangkan dibandingkan dengan non-adaptif, jika tujuan akhirnya adalah menggunakan GAM yang sesuai untuk keperluan prediksi? Untuk tujuan saya, saya tetap berpegang pada kriteria kelancaran GCV standar, meskipun memiliki kecenderungan kurang lancar.

Literatur berkembang dalam GAM ekologis terapan, tetapi saya belum menemukan studi yang mengimplementasikan kelancaran adaptif.

Setiap saran sangat dihargai.

compbiostats
sumber

Jawaban:

20

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 kfungsi 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()

masukkan deskripsi gambar di sini

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 timesdan kecocokan yang digunakan ~ 14 derajat kebebasan

plot(m1, scheme = 1, residuals = TRUE, pch= 16)

masukkan deskripsi gambar di sini

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.

masukkan deskripsi gambar di sini

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 ( bshanya 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.

Gavin Simpson
sumber
1
Terima kasih Gavin! Ini benar-benar jawaban yang sangat baik yang saya pikir juga akan membantu orang lain dengan kepedulian yang sama.
compbiostats
Untuk masalah saya, saya cocok dengan kurva peningkatan monoton yang akhirnya naik ke asymptote horizontal. Pada awal kurva saya, data meningkat cukup cepat, sebelum akhirnya melambat ke arah asimtot. Dalam beberapa kasus, ekstrapolasi (dekat / jauh) di luar kisaran data yang diamati diperlukan. Model saya sangat sederhana, tetapi saya menyadari bahwa prediksi di sini paling spekulatif.
compbiostats