Saya mencoba membuat model yang diperkecil untuk memprediksi banyak variabel dependen (DV) (~ 450) yang sangat berkorelasi.
Variabel independen saya (IV) juga banyak (~ 2000) dan sangat berkorelasi.
Jika saya menggunakan laso untuk memilih model yang direduksi untuk setiap output secara terpisah, saya tidak dijamin mendapatkan subset variabel independen yang sama seperti saya mengulangi setiap variabel dependen.
Apakah ada regresi linier multivariat yang menggunakan laso di R?
Ini bukan grup laso. kelompok laso mengelompokkan IV. Saya ingin regresi linier multivariat (artinya DV adalah matriks, bukan vektor skalar), yang juga menerapkan laso. (Catatan: seperti yang ditunjukkan NRH, ini tidak benar. Grup laso adalah istilah umum yang mencakup strategi yang mengelompokkan IV, tetapi juga mencakup strategi yang mengelompokkan parameter lain seperti DV)
Saya menemukan makalah ini yang masuk ke sesuatu yang disebut Sparse Overlapping Sets Lasso
Berikut adalah beberapa kode yang melakukan regresi linier multivariat
> dim(target)
[1] 6060 441
> dim(dictionary)
[1] 6060 2030
> fit = lm(target~dictionary)
Berikut adalah beberapa kode yang melakukan laso pada DV tunggal
> fit = glmnet(dictionary, target[,1])
Dan inilah yang ingin saya lakukan:
> fit = glmnet(dictionary, target)
Error in weighted.mean.default(y, weights) :
'x' and 'w' must have the same length
Memilih fitur yang sesuai SEMUA target sekaligus
sumber
glmnet
dan memiliki sketsa menyeluruh.Jawaban:
Untuk tanggapan multivarian (jumlah variabel dependen lebih besar dari 1), Anda perlu
family = "mgaussian"
melakukan panggilanglmnet
.The paket lsgl merupakan alternatif, yang menyediakan hukuman yang lebih fleksibel.
glmnet
Hukuman ini adalah contoh dari hukuman laso grup, yang mengelompokkan parameter untuk respons berbeda yang terkait dengan prediktor yang sama. Ini menghasilkan pemilihan prediktor yang sama di semua respons untuk nilai parameter tuning yang diberikan.
Paket lsgl mengimplementasikan penalti grup laso yang jarang dari bentuk mana dan adalah bobot tertentu yang dipilih untuk menyeimbangkan kontribusi dari istilah yang berbeda. Standarnya adalah dan . Parameter adalah parameter tuning. Dengan (dan ) penalti tersebut setara dengan penalti yang digunakan oleh dengan . Dengan (dan
glmnet
family = "mgaussian"
Catatan tentang laso grup. Istilah kelompok laso sering dikaitkan dengan pengelompokan prediktor. Namun, dari sudut pandang yang lebih umum, grup laso hanyalah sekelompok parameter dalam penalti. Pengelompokan yang digunakan oleh
glmnet
withfamily = "mgaussian"
adalah pengelompokan parameter di seluruh respons. Efek dari pengelompokan seperti itu adalah untuk menyandingkan estimasi parameter di seluruh respons, yang ternyata merupakan ide yang bagus, jika semua respons dapat diprediksi dari sekumpulan prediktor yang sama. Gagasan umum menggabungkan beberapa masalah pembelajaran, yang diharapkan dapat berbagi struktur, dikenal sebagai pembelajaran multi-tugas .sumber