Koefisien jalur - perbandingan ridge, laso dan regresi jaring elastis

13

Saya ingin membandingkan model yang dipilih dengan punggungan, laso dan jaring elastis. Gambar. Di bawah ini menunjukkan koefisien jalur menggunakan ketiga metode: ridge (Gambar A, alpha = 0), laso (Gambar B; alpha = 1) dan jaring elastis (Gambar C; alpha = 0,5). Solusi optimal tergantung pada nilai yang dipilih dari lambda, yang dipilih berdasarkan validasi silang.

Profil koefisien untuk ridge (A, alpha = 0), laso (B, alpha = 1) dan jaring elastis (C, alpha = 0,5) regresi.  Angka di bagian atas plot mewakili ukuran model. Solusi optimal tergantung pada nilai lambda yang dipilih.  Pemilihan lambda didasarkan pada validasi silang.

Ketika melihat plot-plot ini, saya mengharapkan jaring elastis (Gambar C) menunjukkan efek pengelompokan. Namun tidak jelas dalam kasus yang disajikan. Jalur koefisien untuk laso dan jaring elastis sangat mirip. Apa yang bisa menjadi alasan untuk ini? Apakah ini hanya kesalahan pengkodean? Saya menggunakan kode berikut di R:

library(glmnet)
X<- as.matrix(mydata[,2:22])
Y<- mydata[,23]
par(mfrow=c(1,3))
ans1<-cv.glmnet(X, Y, alpha=0) # ridge
plot(ans1$glmnet.fit, "lambda", label=FALSE)
text (6, 0.4, "A", cex=1.8, font=1)
ans2<-cv.glmnet(X, Y, alpha=1) # lasso
plot(ans2$glmnet.fit, "lambda", label=FALSE)
text (-0.8, 0.48, "B", cex=1.8, font=1)
ans3<-cv.glmnet(X, Y, alpha=0.5) # elastic net 
plot(ans3$glmnet.fit, "lambda", label=FALSE)
text (0, 0.62, "C", cex=1.8, font=1)

Kode yang digunakan untuk plot jalur koefisien jaring elastis persis sama dengan untuk ridge dan laso. Satu-satunya perbedaan adalah pada nilai alpha. Parameter alpha untuk regresi jaring elastis dipilih berdasarkan MSE terendah (mean squared error) untuk nilai-nilai lambda yang sesuai.

Terima kasih untuk bantuannya !

pemula
sumber

Jawaban:

5

p<npn

Jika fitur asli tidak sangat berkorelasi, saya akan mengatakan bahwa masuk akal bahwa Lasso melakukan yang mirip dengan Elastic Net dalam hal koefisien jalur. Melihat dokumentasi untuk paket glmnet , saya juga tidak dapat melihat kesalahan dalam kode Anda.

skd
sumber
Terima kasih banyak atas komentar Anda. Saya mulai berpikir tentang pendekatan regularisasi untuk memilih model terbaik, karena saya telah mengamati multikolinieritas yang parah antara variabel saya (VIF >> 10). Banyak dari mereka berkorelasi pada tingkat> 0,8. Jadi saya mengharapkan jaring elastis untuk melakukan yang berbeda untuk laso dan menunjukkan efek pengelompokan (dalam kasus variabel berkorelasi).
pemula
Anda mungkin harus menggunakan penalti ridge yang lebih kuat?
dcl
apakah Anda memeriksa df multikolinearitas yang disesuaikan? Variabel faktor biasanya multikolinieritas karena mereka saling eksklusif. Saya tidak tahu apakah multicollinearity semacam ini memberikan masalah dengan laso.
Bakaburg