Untuk penelitian saya saat ini, saya menggunakan metode Lasso melalui paket glmnet di R pada variabel dependen binomial.
Dalam glmnet lambda optimal ditemukan melalui validasi silang dan model yang dihasilkan dapat dibandingkan dengan berbagai tindakan, misalnya kesalahan klasifikasi atau penyimpangan.
Pertanyaan saya: Bagaimana tepatnya penyimpangan didefinisikan dalam glmnet? Bagaimana cara menghitungnya?
(Dalam makalah yang sesuai "Jalur Regularisasi untuk Model Linear Umum melalui Keturunan Koordinat" oleh Friedman et al. Saya hanya menemukan komentar ini tentang penyimpangan yang digunakan dalam cv.glmnet: "berarti penyimpangan (minus dua kali log-kemungkinan di sebelah kiri-keluar) data) "(hal. 17)).
glm
(atau setidaknya, seharusnya - hanya ada satu definisi penyimpangan yang saya ketahui).Jawaban:
Dalam Friedman, Hastie, dan Tibshirani (2010) , penyimpangan model binomial, untuk tujuan validasi silang, dihitung sebagai
Mengingat bahwa ini adalah kertas yang dikutip dalam dokumentasi untuk
glmnet
(pada halaman 2 dan 5), itu mungkin merupakan formula yang digunakan dalam paket.Dan memang, dalam kode sumber untuk fungsi
cvlognet
, residu penyimpangan untuk respons dihitung sebagaidimana
predmat
sederhanadan diteruskan dari
cv.glmnet
fungsi encolsing . Saya menggunakan kode sumber yang tersedia di halaman JStatSoft untuk kertas , dan saya tidak tahu seberapa mutakhir kode itu. Kode untuk paket ini sangat sederhana dan mudah dibaca; Anda selalu dapat memeriksa sendiri dengan mengetikglmnet:::cv.glmnet
.sumber
Selain jawaban @shadowtalker, ketika saya menggunakan paket glmnet, saya merasa seperti penyimpangan dalam validasi silang yang dinormalkan.
Ref: deviance R document
karena jika saya melakukan pembagian,
hasilnya adalah
yang sangat dekat dengan $ cvm fit.
Ini mungkin komentar dari @Hong Ooi pada pertanyaan ini:
/programming/43468665/poisson-deviance-glmnet
sumber