Saya ingin melakukan hal berikut:
1) Regresi OLS (tanpa istilah hukuman) untuk mendapatkan koefisien beta ; adalah variabel yang digunakan untuk regresi. Saya melakukan ini dengan
lm.model = lm(y~ 0 + x)
betas = coefficients(lm.model)
2) Regresi Lasso dengan masa hukuman, kriteria pemilihannya adalah Kriteria Informasi Bayesian (BIC), yang diberikan oleh
di mana berarti variabel / angka regresi, untuk jumlah pengamatan, dan untuk beta awal yang diperoleh pada langkah 1). Saya ingin mendapatkan hasil regresi untuk nilai khusus ini , yang berbeda untuk setiap regressor yang digunakan. Karenanya jika ada tiga variabel, akan ada tiga nilai yang berbeda .
Masalah optimasi OLS-Lasso kemudian diberikan oleh
Bagaimana saya bisa melakukan ini dalam R dengan paket lars atau glmnet? Saya tidak dapat menemukan cara untuk menentukan lambda dan saya tidak 100% yakin jika saya mendapatkan hasil yang benar jika saya menjalankan
lars.model <- lars(x,y,type = "lasso", intercept = FALSE)
predict.lars(lars.model, type="coefficients", mode="lambda")
Saya menghargai bantuan apa pun di sini.
Memperbarui:
Saya telah menggunakan kode berikut sekarang:
fits.cv = cv.glmnet(x,y,type="mse",penalty.factor = pnlty)
lmin = as.numeric(fits.cv[9]) #lambda.min
fits = glmnet(x,y, alpha=1, intercept=FALSE, penalty.factor = pnlty)
coef = coef(fits, s = lmin)
Pada baris 1 saya menggunakan validasi silang dengan faktor penalti yang ditentukan ( ), yang berbeda untuk setiap regresi . Baris 2 memilih "lambda.min" dari fits.cv, yang merupakan lambda yang memberikan kesalahan validasi silang rata-rata minimum. Baris 3 melakukan laso fit ( ) pada data. Sekali lagi saya menggunakan faktor penalti . Baris 4 mengekstrak koefisien dari kecocokan yang termasuk ke dalam "optimal" dipilih pada baris 2.λλalpha=1
Sekarang saya memiliki koefisien beta untuk regressor yang menggambarkan solusi optimal dari masalah minimisasi
dengan faktor penalti . Rangkaian koefisien optimal kemungkinan besar adalah subset dari regressor yang awalnya saya gunakan, ini adalah konsekuensi dari metode Lasso yang menyusutkan jumlah regressor yang digunakan.
Apakah pemahaman dan kode saya benar?
$\alpha$
menjadi . Tolong buat ini, karena itu akan membuat orang lebih mudah memahami pertanyaan Anda, dan karenanya menjawabnya.