λcatatan( λ )∑saya| βsaya|
Untuk itu, saya membuat beberapa data yang berkorelasi dan tidak berkorelasi untuk menunjukkan:
x_uncorr <- matrix(runif(30000), nrow=10000)
y_uncorr <- 1 + 2*x_uncorr[,1] - x_uncorr[,2] + .5*x_uncorr[,3]
sigma <- matrix(c( 1, -.5, 0,
-.5, 1, -.5,
0, -.5, 1), nrow=3, byrow=TRUE
)
x_corr <- x_uncorr %*% sqrtm(sigma)
y_corr <- y_uncorr <- 1 + 2*x_corr[,1] - x_corr[,2] + .5*x_corr[,3]
Data x_uncorr
memiliki kolom yang tidak berkorelasi
> round(cor(x_uncorr), 2)
[,1] [,2] [,3]
[1,] 1.00 0.01 0.00
[2,] 0.01 1.00 -0.01
[3,] 0.00 -0.01 1.00
sementara x_corr
memiliki korelasi yang telah ditetapkan sebelumnya antara kolom
> round(cor(x_corr), 2)
[,1] [,2] [,3]
[1,] 1.00 -0.49 0.00
[2,] -0.49 1.00 -0.51
[3,] 0.00 -0.51 1.00
Sekarang mari kita lihat plot laso untuk kedua kasus ini. Pertama, data yang tidak berkorelasi
gnet_uncorr <- glmnet(x_uncorr, y_uncorr)
plot(gnet_uncorr)
Beberapa fitur menonjol
- Prediktor masuk ke model dalam urutan besarnya koefisien regresi linier sejati.
- ∑saya| βsaya|∑saya| βsaya|
- Ketika prediktor baru memasuki model, itu mempengaruhi kemiringan jalur koefisien semua prediktor dalam model dengan cara deterministik. Misalnya, ketika prediktor kedua memasuki model, kemiringan jalur koefisien pertama dipotong setengah. Ketika prediktor ketiga memasuki model, kemiringan jalur koefisien adalah sepertiga dari nilai aslinya.
Ini semua adalah fakta umum yang berlaku untuk regresi laso dengan data yang tidak berkorelasi, dan semuanya dapat dibuktikan dengan tangan (latihan yang baik!) Atau ditemukan dalam literatur.
Sekarang mari kita lakukan data berkorelasi
gnet_corr <- glmnet(x_corr, y_corr)
plot(gnet_corr)
Anda dapat membaca beberapa hal dari plot ini dengan membandingkannya dengan kasus yang tidak berkorelasi
- Jalur prediktor pertama dan kedua memiliki struktur yang sama dengan kasus yang tidak berkorelasi sampai prediktor ketiga memasuki model, meskipun mereka berkorelasi. Ini adalah fitur khusus dari dua kasus prediktor, yang dapat saya jelaskan dalam jawaban lain jika ada minat, itu akan membawa saya agak jauh dari diskusi saat ini.
- ∑ | βsaya|
Jadi sekarang mari kita lihat plot Anda dari dataset mobil dan bacalah beberapa hal menarik (saya mereproduksi plot Anda di sini sehingga diskusi ini lebih mudah dibaca):
Sebuah kata peringatan : Saya menulis analisis berikut yang didasarkan pada asumsi bahwa kurva menunjukkan koefisien terstandarisasi , dalam contoh ini mereka tidak. Koefisien non-standar tidak berdimensi, dan tidak dapat dibandingkan, sehingga tidak ada kesimpulan yang dapat diambil dari mereka dalam hal kepentingan prediktif. Agar analisis berikut ini valid, harap berpura-pura bahwa plot tersebut dari koefisien terstandarisasi, dan harap lakukan analisis sendiri pada jalur koefisien terstandarisasi.
- Seperti yang Anda katakan,
wt
prediktor tampaknya sangat penting. Memasuki model pertama, dan memiliki keturunan yang lambat dan mantap ke nilai akhir. Itu memang memiliki beberapa korelasi yang membuatnya menjadi perjalanan yang sedikit bergelombang, am
khususnya tampaknya memiliki efek drastis ketika masuk.
am
juga penting. Itu datang kemudian, dan berkorelasi dengan wt
, karena mempengaruhi kemiringan wt
dengan cara kekerasan. Ini juga berkorelasi dengan carb
dan qsec
, karena kita tidak melihat pelunakan lereng yang dapat diprediksi saat masuk. Setelah empat variabel tersebut telah memasuki meskipun, kita jangan melihat pola berkorelasi bagus, sehingga tampaknya tidak berkorelasi dengan semua prediktor di akhir.
- Sesuatu masuk sekitar 2,25 pada sumbu x, tetapi lintasannya sendiri tidak terlihat, Anda hanya dapat mendeteksinya dengan pengaruhnya terhadap parameter
cyl
dan wt
.
cyl
cukup facinating. Memasuki kedua, jadi penting untuk model kecil. Setelah variabel lain, dan terutama am
masuk, itu tidak begitu penting lagi, dan trennya berbalik, akhirnya semuanya dihapus. Sepertinya efek cyl
dapat sepenuhnya ditangkap oleh variabel yang masuk pada akhir proses. Apakah lebih tepat untuk digunakan cyl
, atau kelompok variabel pelengkap, benar-benar tergantung pada pengorbanan bias-varians. Mempunyai grup dalam model akhir Anda akan meningkatkan variansnya secara signifikan, tetapi mungkin ini merupakan penyebab bias yang lebih rendah menebusnya!
Itu pengantar kecil bagaimana saya belajar membaca informasi dari plot ini. Saya pikir mereka sangat menyenangkan!
Terima kasih untuk analisis yang bagus. Untuk melaporkan secara sederhana, dapatkah Anda mengatakan bahwa wt, am, dan cyl adalah 3 prediktor terpenting mpg. Juga, jika Anda ingin membuat model untuk prediksi, mana yang akan Anda sertakan berdasarkan gambar ini: wt, am and cyl? Atau kombinasi lainnya. Juga, Anda tampaknya tidak membutuhkan lambda terbaik untuk analisis. Apakah ini tidak penting seperti dalam regresi ridge?
Saya akan mengatakan kasus wt
dan am
jelas, mereka penting. cyl
jauh lebih halus, penting dalam model kecil, tetapi sama sekali tidak relevan dalam model besar.
Saya tidak akan dapat menentukan apa yang akan dimasukkan hanya berdasarkan gambar, yang benar-benar harus dijawab konteks dari apa yang Anda lakukan. Anda dapat mengatakan bahwa jika Anda menginginkan model tiga prediktor, maka wt
, am
dan cyl
merupakan pilihan yang baik, karena mereka relevan dalam skema besar hal-hal, dan akhirnya akan memiliki ukuran efek yang masuk akal dalam model kecil. Ini didasarkan pada asumsi bahwa Anda memiliki beberapa alasan eksternal untuk menginginkan model tiga prediksi kecil.
Memang benar, jenis analisis ini melihat seluruh spektrum lambdas dan memungkinkan Anda memilah-milah hubungan pada berbagai kompleksitas model. Yang mengatakan, untuk model akhir, saya pikir menyetel lambda optimal sangat penting. Dengan tidak adanya kendala lain, saya pasti akan menggunakan validasi silang untuk menemukan di mana di sepanjang spektrum ini lambda paling prediktif adalah, dan kemudian menggunakan lambda itu untuk model akhir , dan analisis akhir.
λ
Di arah lain, kadang-kadang ada kendala luar untuk seberapa kompleks suatu model dapat (biaya implementasi, sistem warisan, minimalisme penjelas, interpretabilitas bisnis, warisan estetika) dan inspeksi semacam ini benar-benar dapat membantu Anda memahami bentuk data Anda, dan pengorbanan yang Anda lakukan dengan memilih model yang lebih kecil dari optimal.
-1
diglmnet(as.matrix(mtcars[-1]), mtcars[,1])
.