Pertanyaan saya berkaitan dengan GAM dalam paket mgcv R. Karena ukuran sampel yang kecil saya ingin menentukan kesalahan prediksi menggunakan validasi silang leave-one-out. Apakah ini masuk akal? Apakah ada paket atau kode bagaimana saya bisa melakukan ini? The errorest()
fungsi dalam ipred paket tidak bekerja. Dataset tes sederhana adalah:
library(mgcv)
set.seed(0)
dat <- gamSim(1,n=400,dist="normal",scale=2)
b<-gam(y~s(x0)+s(x1)+s(x2)+s(x3),data=dat)
summary(b)
pred <- predict(b, type="response")
Terima kasih banyak atas bantuannya!
r
cross-validation
gam
mgcv
Peter
sumber
sumber
Jawaban:
Aku benar-benar seperti paket
caret
untuk hal-hal seperti ini, tapi sayangnya saya baru saja membaca bahwa Anda tidak dapat menentukanformula
digam
persis untuk itu."Ketika Anda menggunakan kereta dengan model ini, Anda tidak dapat (saat ini) menentukan formula gam. Caret memiliki fungsi internal yang menentukan formula berdasarkan pada berapa level unik yang dimiliki masing-masing prediktor, dll. Dengan kata lain, kereta saat ini menentukan istilah dihaluskan dan yang merupakan efek utama linear lama biasa. "
sumber: /programming/20044014/error-with-train-from-caret-package-using-method-gam
tetapi jika Anda membiarkan
train
memilih istilah yang halus, dalam hal ini menghasilkan model Anda persis. Metrik kinerja default dalam kasus ini adalah RMSE, tetapi Anda dapat mengubahnya menggunakansummaryFunction
argumentrainControl
fungsi.Saya pikir salah satu kelemahan utama dari LOOCV adalah bahwa ketika dataset besar, dibutuhkan selamanya. Karena dataset Anda kecil dan berfungsi cukup cepat, saya pikir itu adalah pilihan yang masuk akal.
Semoga ini membantu.
keluaran:
sumber
Dalam pdf perpustakaan mgcv dikatakan;
"Diberikan struktur model yang ditentukan oleh formula model gam, gam () mencoba untuk menemukan kelancaran yang tepat untuk setiap istilah model yang berlaku menggunakan kriteria kesalahan prediksi atau metode berbasis kemungkinan. Kriteria kesalahan prediksi yang digunakan adalah Generalized (Approximate) Cross Validation (GCV atau GACV) ketika parameter skala tidak diketahui atau Pengukur Risiko Tidak Berbias (UBRE) saat diketahui. "
"gam in mgcv memecahkan masalah estimasi parameter smoothing dengan menggunakan kriteria Generalized Cross Validation (GCV): nD / (n - DoF) 2
atau
kriteria Un-Biased Risk Estimator (UBRE): D / n + 2sDoF / n - s "
sumber