Menafsirkan plot jejak variabel LASSO


15

Saya masih baru dalam glmnetpaket ini, dan saya masih tidak yakin bagaimana menafsirkan hasilnya. Adakah yang bisa membantu saya membaca plot jejak berikut?

Grafik diperoleh dengan menjalankan yang berikut:

library(glmnet)
return <- matrix(ret.ff.zoo[which(index(ret.ff.zoo)==beta.df$date[2]), ])
data   <- matrix(unlist(beta.df[which(beta.df$date==beta.df$date[2]), ][ ,-1]), 
                 ncol=num.factors)
model  <- cv.glmnet(data, return, standardize=TRUE)

op <- par(mfrow=c(1, 2))
plot(model$glmnet.fit, "norm",   label=TRUE)
plot(model$glmnet.fit, "lambda", label=TRUE)
par(op)

masukkan deskripsi gambar di sini

Jawaban:


20

Di kedua plot, setiap garis berwarna menunjukkan nilai yang diambil oleh koefisien yang berbeda dalam model Anda. Lambda adalah bobot yang diberikan pada istilah regularisasi (norma L1), sehingga saat lambda mendekati nol, fungsi kerugian model Anda mendekati fungsi kehilangan OLS. Inilah salah satu cara Anda dapat menentukan fungsi kerugian LASSO untuk membuat ini konkret:

βlSebuahssHai=Argmin [RSS(β)+λL1-Norm(β)]

Karena itu, ketika lambda sangat kecil, solusi LASSO harus sangat dekat dengan solusi OLS, dan semua koefisien Anda ada dalam model. Seiring bertambahnya lambda, istilah regularisasi memiliki efek yang lebih besar dan Anda akan melihat lebih sedikit variabel dalam model Anda (karena semakin banyak koefisien akan bernilai nol).

Seperti yang saya sebutkan di atas, norma L1 adalah istilah regularisasi untuk LASSO. Mungkin cara yang lebih baik untuk melihatnya adalah bahwa sumbu x adalah nilai maksimum yang diizinkan yang dapat diambil oleh norma L1 . Jadi, ketika Anda memiliki norma L1 kecil, Anda memiliki banyak regularisasi. Oleh karena itu, norma L1 nol memberikan model kosong, dan saat Anda meningkatkan norma L1, variabel akan "memasukkan" model ketika koefisien mereka mengambil nilai bukan nol.

Plot di sebelah kiri dan plot di sebelah kanan pada dasarnya menunjukkan kepada Anda hal yang sama, hanya pada skala yang berbeda.


2
Jawabannya sangat rapi, terima kasih! Apakah mungkin menyimpulkan "prediktor terbaik" dari grafik di atas, yaitu model akhir?
Mayou

4
Tidak, Anda harus melakukan validasi silang atau prosedur validasi lainnya untuk itu; itu akan memberi tahu Anda nilai norma L1 (atau yang setara, mana log (lambda)) yang menghasilkan model dengan kemampuan prediksi terbaik.
JAW

11
Jika Anda mencoba menentukan prediktor terkuat Anda, Anda bisa menginterpretasikan plot sebagai bukti bahwa variabel yang memasuki model awal adalah yang paling prediktif dan variabel yang memasukkan model nanti kurang penting. Jika Anda menginginkan "model terbaik," umumnya ini ditemukan melalui validasi silang. Metode umum untuk mencapai ini menggunakan paket glmnet disarankan kepada Anda di sini: stats.stackexchange.com/a/68350/8451 . Saya sangat menyarankan Anda membaca bab Lasso pendek di ESLII (3.4.2 dan 3.4.3), yang dapat diunduh gratis: www-stat.stanford.edu/~tibs/ElemStatLearn
David Marx

@ David Marx, apa angka-angka di atas plot merujuk? bagaimana memilih model terbaik melalui validasi silang.
jeza

@ Davidvidar sudah lama tetapi untuk orang lain bertanya-tanya ini, itu adalah jumlah koefisien pada berat yang tidak bernilai nol.
Ian Belcher
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.