Mendeteksi prediktor signifikan dari banyak variabel independen

31

Dalam dataset dari dua populasi yang tidak tumpang tindih (pasien & sehat, total ) saya ingin mencari (dari variabel independen) prediktor signifikan untuk variabel dependen berkelanjutan. Ada korelasi antara prediktor. Saya tertarik untuk mencari tahu apakah salah satu prediktor terkait dengan variabel dependen "dalam kenyataan" (daripada memprediksi variabel dependen setepat mungkin). Ketika saya kewalahan dengan berbagai pendekatan yang mungkin, saya ingin bertanya pendekatan mana yang paling direkomendasikan.300n=60300

  • Dari pemahaman saya, inklusi bertahap atau pengecualian prediktor tidak dianjurkan

  • Misalnya menjalankan regresi linier secara terpisah untuk setiap prediktor dan mengoreksi nilai-p untuk beberapa perbandingan menggunakan FDR (mungkin sangat konservatif?)

  • Regresi komponen-utama: sulit ditafsirkan karena saya tidak akan dapat memberi tahu tentang kekuatan prediktif dari para prediktor individu tetapi hanya tentang komponen-komponennya.

  • ada saran lain?

jokel
sumber
Saya pernah mendengar tentang orang yang menggunakan regresi teregulasi L1 untuk melakukan hal-hal semacam ini. Tetapi saya tidak cukup tahu untuk menulis jawaban yang tepat ...
Raja
2
Untuk memberikan rekomendasi terbaik, ini akan membantu kami untuk mengetahui bagaimana Anda akan melanjutkan setelah mengidentifikasi "prediktor yang signifikan." Apakah Anda mencoba memprediksi hasilnya setepat mungkin; menemukan cara pelit untuk memprediksinya (misalnya, menggunakan satu set prediktor hingga k yang secara efisien akan melakukannya; jelaskan apa yang menyebabkan hasil "dalam kenyataan"; atau sesuatu yang lain? Juga, seberapa besar kumpulan data Anda?
rolando2
@rolando: terima kasih atas komentarnya! Saya memperbarui pertanyaan: jumlah total pengamatan saya adalah n = 60 subyek. Tujuan saya bukan untuk memprediksi variabel dependen setepat mungkin tetapi untuk menjelaskan apa yang menyebabkan hasil "dalam kenyataan" (= harapan untuk menemukan hubungan antara variabel yang dapat dikonfirmasi dalam studi / dataset selanjutnya)
jokel
Saya juga memposting pertanyaan tindak lanjut termasuk beberapa data dummy. Saya akan sangat berterima kasih atas semua petunjuk. stats.stackexchange.com/questions/34859/…
jokel

Jawaban:

30

Saya akan merekomendasikan mencoba glm dengan regularisasi laso . Ini menambahkan penalti ke model untuk jumlah variabel, dan saat Anda meningkatkan penalti, jumlah variabel dalam model akan berkurang.

Anda harus menggunakan validasi silang untuk memilih nilai parameter penalti. Jika Anda memiliki R, saya sarankan menggunakan paket glmnet . Gunakan alpha=1untuk regresi laso, dan alpha=0untuk regresi ridge. Menetapkan nilai antara 0 dan 1 akan menggunakan kombinasi denda laso dan ridge, juga dikenal sebagai jaring elastis.

Zach
sumber
4
Saya setuju dengan Zach. David Cassell dan saya menulis makalah tentang ini, berkonsentrasi pada SAS tetapi tidak sepenuhnya. Ini Berhenti Stepwise .
Peter Flom - Reinstate Monica
1
Saya pikir itu 0 untuk punggungan dan 1 untuk laso
Raja
1
@ Zak: Terima kasih atas petunjuknya. Apakah ada cara untuk mendapatkan beberapa uji-statistik yang akan memungkinkan saya untuk menilai signifikansi dari satu prediktor. Pada akhirnya saya ingin mengatakan "prediktor X secara signifikan terkait dengan variabel dependen Y".
jokel
2
Mengenai CI, dari manual paket R lain yang mengimplementasikan LASSO ( cran.r-project.org/web/packages/penalized/vignettes/… , halaman 18): "Merupakan pertanyaan yang sangat wajar untuk menanyakan kesalahan standar regresi koefisien atau jumlah perkiraan lainnya. Pada prinsipnya kesalahan standar seperti itu dapat dengan mudah dihitung, misalnya menggunakan bootstrap. Namun, paket ini sengaja tidak menyediakannya. Alasan untuk ini adalah bahwa kesalahan standar tidak terlalu berarti untuk perkiraan yang sangat bias seperti timbul dari metode estimasi hukuman. "
miura
2
@miura Baru-baru ini diperkenalkan adalah uji statistik untuk hal itu, oleh penulis Lasso asli juga: kertas dan slide (lebih mudah dibaca)
Cam.Davidson.Pilon
23

Untuk memperluas jawaban Zach (+1), jika Anda menggunakan metode LASSO dalam regresi linier, Anda mencoba meminimalkan jumlah fungsi kuadratik dan fungsi nilai absolut, yaitu:

minβ(YXβ)T(YXβ)+i|βi|

Bagian pertama adalah kuadrat dalam (emas di bawah), dan yang kedua adalah kurva berbentuk persegi (hijau di bawah). Garis hitam adalah garis persimpangan. βFungsi tujuan LASSO

Minimum terletak pada kurva persimpangan, diplot di sini dengan kurva kontur kurva kuadratik dan berbentuk persegi:

Kurva kontur LASSO

Anda dapat melihat minimum ada pada salah satu sumbu, maka itu telah menghilangkan variabel itu dari regresi.

Anda dapat melihat posting blog saya tentang menggunakan hukuman untuk regresi dan pemilihan variabel (atau dikenal sebagai regularisasi Lasso). L1

Cam.Davidson.Pilon
sumber
8
(+1) tetapi untuk posting blog, yang sangat bagus. Akan lebih baik jika Anda memperluas jawaban Anda di sini agak, karena ini akan meningkatkan kemungkinan informasi yang tersisa tersedia.
richiemorrisroe
2

Apa keyakinan Anda sebelumnya tentang berapa banyak prediktor yang penting? Apakah mungkin sebagian besar dari mereka memiliki efek nol, atau semuanya mempengaruhi hasil, beberapa variabel hanya kurang dari yang lain?

Dan bagaimana status kesehatan terkait dengan tugas prediktif?

Jika Anda percaya bahwa hanya beberapa variabel yang penting, Anda dapat mencoba spike dan slab sebelumnya (dalam paket spikeSlabGAM R, misalnya), atau L1. Jika Anda berpikir semua prediktor memengaruhi hasil, Anda mungkin kurang beruntung.

Dan secara umum, semua peringatan terkait dengan inferensial kausal dari data pengamatan berlaku.

scellus
sumber
2

Apa pun yang Anda lakukan, ada baiknya mendapatkan interval kepercayaan bootstrap pada peringkat pentingnya prediktor untuk menunjukkan bahwa Anda benar-benar dapat melakukan ini dengan dataset Anda. Saya ragu bahwa salah satu metode andal dapat menemukan prediktor "benar".

Frank Harrell
sumber
1

Saya ingat Lasso regresi tidak berkinerja baik ketika , tapi saya tidak yakin. Saya pikir dalam hal ini Net Elastis lebih sesuai untuk pemilihan variabel.np

Andy Lu
sumber
Ini benar, lebih khusus ketika n << p, lihat kertas jaring elastis asli ini: stanford.edu/
~astie
1
Ketika n <p, LASSO memilih paling banyak n variabel.
miura