Saya ingin secara manual memperbaiki koefisien tertentu, katakan , lalu koefisien dengan semua prediktor lain, sambil menjaga dalam model.β 1 = 1.0
Bagaimana saya bisa mencapai ini menggunakan R? Saya terutama ingin bekerja dengan LASSO ( glmnet
) jika memungkinkan.
Atau, bagaimana saya dapat membatasi koefisien ini untuk rentang tertentu, katakan ?
Jawaban:
Anda perlu menggunakan
offset
argumen seperti ini:Tentang jangkauan ... Saya pikir itu belum diterapkan di
glmnet
. Jika mereka menggunakan beberapa metode numerik, Anda mungkin ingin menggali ke dalam kode R dan mencoba untuk membatasi di sana, tetapi Anda akan membutuhkan latar belakang pemrograman yang bagus dan solid.sumber
offset
sebenarnya sedang dilakukan? Bagaimana nilai1.1*x1
ditentukan dari pertanyaan?offset
glmnet
lower.limits
upper limits
Baiklah, mari berpikir. Kamu punya:
sumber
Sehubungan dengan membatasi koefisien agar berada dalam kisaran, pendekatan Bayesian untuk estimasi adalah salah satu cara untuk mencapai ini.
Secara khusus, orang akan bergantung pada Markov Chain Monte Carlo. Pertama, pertimbangkan algoritma sampling Gibbs, yang merupakan cara Anda menyesuaikan MCMC dalam kerangka Bayesian tanpa batasan. Dalam pengambilan sampel Gibbs, dalam setiap langkah algoritma Anda sampel dari distribusi posterior setiap parameter (atau kelompok parameter) bersyarat pada data dan semua parameter lainnya. Wikipedia memberikan ringkasan pendekatan yang bagus.
Salah satu cara untuk membatasi rentang adalah menerapkan langkah Metropolis-Hastings. Ide dasarnya adalah membuang variabel simulasi yang ada di luar batas Anda. Anda kemudian dapat terus mengambil sampel ulang hingga berada dalam batas Anda sebelum melanjutkan ke iterasi berikutnya. Kelemahan dari ini adalah bahwa Anda mungkin akan terjebak mensimulasikan banyak kali, yang memperlambat MCMC. Pendekatan alternatif, yang awalnya dikembangkan oleh John Geweke dalam beberapa makalah dan diperluas dalam makalah oleh Rodriguez-Yam, Davis, Sharpe adalah untuk mensimulasikan dari distribusi normal multivariat yang dibatasi. Pendekatan ini dapat menangani kendala ketimpangan linear dan non-linear pada parameter dan saya sudah cukup sukses dengannya.
sumber
glmnet
.Saya tidak terbiasa dengan LASSO atau
glmnet
, tetapilavaan
(kependekan dari "analisis variabel laten") memfasilitasi beberapa model regresi dengan kendala kesetaraan dan kendala ketidaksetaraan tunggal (lihat tabel di halaman 7 dari PDF ini, "lavaan: Paket R untuk pemodelan persamaan struktural " ). Saya tidak tahu apakah Anda dapat memiliki batas atas dan bawah pada koefisien, tetapi mungkin Anda dapat menambahkan setiap ikatan dengan garis yang berbeda, misalnya:Tentu saja, jika Anda menstandarkan semuanya sebelum menyesuaikan model, Anda tidak perlu khawatir tentang memaksakan batas atas 1 pada koefisien regresi Anda. Saya akan mengatakan Anda lebih baik menghilangkannya dalam hal ini, untuk berjaga-jaga jika terjadi kesalahan! (
lavaan
Ini masih dalam versi beta setelah semua ... Saya telah melihat beberapa hasil yang sedikit amis di saya penggunaan terbatas sendiri itu sejauh ini.)sumber