Bagaimana cara menangani dengan nilai yang hilang untuk menyiapkan data untuk pemilihan fitur dengan LASSO?

10

Situasi saya:

  • ukuran sampel kecil: 116
  • variabel hasil biner
  • daftar panjang variabel penjelas: 44
  • variabel penjelas tidak datang dari atas kepala saya; pilihan mereka didasarkan pada literatur.
  • kebanyakan kasus dalam sampel dan sebagian besar variabel memiliki nilai yang hilang.

Pendekatan untuk pemilihan fitur yang dipilih: LASSO

Paket glmnet R tidak akan membiarkan saya menjalankan rutin glmnet, tampaknya karena adanya nilai-nilai yang hilang dalam kumpulan data saya. Tampaknya ada berbagai metode untuk menangani data yang hilang, jadi saya ingin tahu:

  • Apakah LASSO memberlakukan batasan dalam hal metode imputasi yang dapat saya gunakan?
  • Apa yang akan menjadi taruhan terbaik untuk metode imputasi? Idealnya, saya memerlukan metode yang bisa saya jalankan di SPSS (lebih disukai) atau R.

UPDATE1: Menjadi jelas dari beberapa jawaban di bawah ini bahwa saya telah menangani masalah yang lebih mendasar sebelum mempertimbangkan metode imputasi. Saya ingin menambahkan di sini pertanyaan baru tentang itu. Pada jawaban yang menyarankan pengkodean sebagai nilai konstan dan pembuatan variabel baru untuk menangani nilai-nilai 'tidak berlaku' dan penggunaan laso grup:

  • Apakah Anda mengatakan bahwa jika saya menggunakan grup LASSO, saya akan dapat menggunakan pendekatan yang disarankan untuk prediktor kontinu juga untuk prediktor kategoris? Jika demikian, saya anggap itu sama dengan membuat kategori baru - saya khawatir ini dapat menimbulkan bias.
  • Apakah ada yang tahu jika paket glmnet R mendukung grup LASSO? Jika tidak, apakah ada yang menyarankan yang lain yang melakukan itu dalam kombinasi dengan regresi logistik? Beberapa opsi yang menyebutkan grup LASSO dapat ditemukan di repositori CRAN, ada saran yang paling sesuai untuk kasus saya? Mungkin SGL?

Ini adalah tindak lanjut dari pertanyaan saya sebelumnya ( Bagaimana memilih subset variabel dari daftar panjang asli saya untuk melakukan analisis regresi logistik? ).

OBS: Saya bukan ahli statistik.

Bingung
sumber
(1) Pendekatan terbaik untuk imputasi tergantung pada proporsi & pola nilai yang hilang, hubungan antara variabel, & asumsi apa yang Anda siapkan untuk membuat alasan untuk nilai yang hilang. (2) Metode imputasi tunggal dapat digunakan untuk memberikan input ke LASSO; kesulitan dalam menilai bagaimana imputasi mempengaruhi hasil. Saya tidak tahu bagaimana menggabungkan beberapa imputasi dengan LASSO (pasti ada yang melakukannya), tetapi perbandingan informal hasil dari berbagai proses imputasi (apakah prediktor yang sama biasanya dipilih?) Masih bisa informatif.
Scortchi
@Scortchi: Sebagian besar nilai saya yang hilang termasuk dalam kategori 'tidak berlaku'. Misalnya: Dalam variabel 'usia wanita dewasa dalam rumah tangga', kasus-kasus di mana pria dewasa adalah seorang janda. Sebenarnya, saya kira saya perlu mengambil langkah kembali ke sini: haruskah saya memperlakukan nilai 0 dalam variabel kontinu sebagai nilai yang hilang? Misalnya: 0 tahun pendidikan, 0 anggota rumah tangga berusia antara 14 dan 60 tahun.
Bingung
Sulit membayangkan situasi di mana Anda ingin memperlakukan itu sebagai fakta yang tidak diketahui tentang perempuan yang absen daripada fakta yang diketahui tentang rumah tangga. Pertanyaan tentang nol sulit untuk dipahami: apakah Anda bertanya apakah misalnya tidak ada tahun pendidikan merupakan nilai yang tidak masuk akal, atau 0 mungkin digunakan untuk mengkodekan nilai yang hilang? (Lalu bagaimana saya tahu?) Tentu saja tidak ada alasan umum untuk memperlakukan 0 sebagai indikasi hilangnya.
Scortchi
@Scortchi: Tentang variabel usia wanita, saya mengerti maksud Anda. Tetapi masalahnya menjadi: bagaimana saya mengkode kasus perempuan yang tidak ada jika tidak sebagai NA? Tentang nol: ya, itulah pertanyaan saya, maaf jika tidak jelas. Saya berpikir bahwa program tersebut mungkin memiliki beberapa masalah dalam menangani nilai nol dan mungkin tidak 'mengerti' apa yang saya maksud dengannya.
Bingung
Anda dapat mengkodekannya sebagai nilai konstan apa pun & memperkenalkan variabel indikator untuk ada / tidaknya (& gunakan grup LASSO). Tidak ada alasan mengapa LASSO atau program regresi lainnya harus menangani nilai nol untuk prediktor secara salah. [Tolong jangan anggap ini salah, tetapi ini adalah pertanyaan yang sangat mendasar, menyarankan bahwa jika ini untuk bersenang-senang Anda mungkin ingin memulai dengan masalah yang lebih sederhana, atau bahwa jika itu nyata Anda mungkin ingin berkonsultasi dengan ahli statistik.]
Scortchi

Jawaban:

10

Ketika prediktor kontinu berisi nilai 'tidak berlaku', sering berguna untuk mengkodekannya menggunakan dua variabel:x

x1={cwhen x is not applicablexotherwise

di mana adalah konstanta, &c

x2={1when x is not applicable0otherwise

Misalkan prediktor linier untuk respons diberikan oleh

η=β0+β1x1+β2x2+

yang memutuskan untuk

η=β0+β1x1+

ketika diukur, atau kex

η=β0+β1c+β2+

ketika x 'tidak berlaku'. Pilihan adalah arbitrer, & tidak memengaruhi estimasi intersep atau slope ; menjelaskan efek dari yang 'tidak berlaku' dibandingkan dengan ketika .cβ0β1β2xx=c

Ini bukan pendekatan yang cocok ketika respon bervariasi sesuai dengan nilai tidak diketahui : variabilitas kelompok 'hilang' akan meningkat, & estimasi koefisien prediktor lain 'bias karena perancu. Lebih baik menyalahkan nilai yang hilang.x

Penggunaan LASSO memperkenalkan dua masalah:

  1. Pilihan mempengaruhi hasil karena jumlah penyusutan yang diterapkan tergantung pada besarnya estimasi koefisien.c
  2. Anda perlu memastikan bahwa & keduanya masuk atau keduanya keluar dari model yang dipilih.x1x2

Anda dapat menyelesaikan keduanya dengan menggunakan grup LASSO dengan grup yang terdiri dari & : hukuman -norm diterapkan pada -norm dari matriks ortonormalisasi . (Prediktor kategorikal adalah anak poster untuk grup LASSO — Anda hanya akan mengkode 'tidak berlaku' sebagai level yang terpisah, seperti yang sering dilakukan dalam regresi yang tidak dilegalisasi.) Lihat Meier et al (2008), JRSS B, 70 , 1, "The laso grup untuk regresi logistik " & grplasso .x1x2L1L2[x1 x2]

Scortchi - Reinstate Monica
sumber
Apakah ada yang tahu jika paket glmnet R mendukung grup LASSO? Jika tidak, apakah ada yang menyarankan yang lain yang melakukan itu dalam kombinasi dengan regresi logistik? Beberapa opsi yang menyebutkan grup LASSO dapat ditemukan di repositori CRAN, ada saran yang paling sesuai untuk kasus saya? Mungkin SGL?
Bingung
Jadi, akankah Anda mengatakan bahwa jika saya menggunakan grup LASSO, saya akan dapat menggunakan pendekatan yang Anda sarankan untuk prediktor kontinu juga untuk prediktor kategoris?
Bingung
5

Imputasi Berganda tidak pernah merupakan pendekatan yang buruk. Anda juga bisa melakukan Informasi Lengkap Kemungkinan Maksimal. Ulasan bagus dan perbandingan di sini dan di sini .

Tetapi jika Anda memilih rute itu, pertimbangkan untuk menggunakan Stan agar sesuai dengan imputasi ML bersamaan dengan regresi Anda sebagai model Bayesian tunggal, karena LASSO adalah kasus khusus dari regresi Bayesian .

shadowtalker
sumber
Saya telah salah paham tentang metode imputasi berganda, sekarang saya melihat bahwa itu akan berlaku untuk kasus saya. Saya mengedit pertanyaan saya untuk mencerminkan hal ini. Apakah Anda tahu apakah SPSS atau R menjalankan dua opsi yang Anda sebutkan?
Bingung
1
Ada paket R miyang mungkin membantu Anda.
shadowtalker
2
Anda dapat menjalankan Stan melalui R (lihat RStan ).
Scortchi
Paket beberapa imputasi tambahan untuk R termasuk Ameliadan mice.
Sycorax berkata Reinstate Monica
0

Perintah CATREG dalam Statistik menangani data yang hilang dengan LASSO. Anda dapat mengecualikan kasus secara searah atau memiliki prosedur yang dipermasalahkan. Meskipun namanya menyarankan untuk variabel kategori, Anda dapat mengatur skala ke Numerik untuk menangani kasus kontinu.

JKP
sumber
ini SAS PROC CATREG, saya kira?
Ben Bolker
@ JKK: Sebenarnya saya telah menemukan perintah ini. Namun, mengingat variabel outome saya adalah biner, saya mengasumsikan regresi logis akan lebih tepat daripada regresi kategoris (CATREG) - apakah saya benar? Selain itu, opsi di CATREG tampaknya agak terbatas - Anda hanya dapat memilih di antara kasus yang tidak termasuk, mengganti nilai yang hilang dengan nilai rata-rata atau membuat kategori tambahan.
Bingung