Memilih variabel untuk dimasukkan dalam model regresi linier berganda

35

Saat ini saya sedang bekerja untuk membangun model menggunakan regresi linier berganda. Setelah mengutak-atik model saya, saya tidak yakin bagaimana cara terbaik menentukan variabel mana yang harus disimpan dan yang harus dihapus.

Model saya mulai dengan 10 prediktor untuk DV. Saat menggunakan semua 10 prediktor, empat dianggap signifikan. Jika saya menghapus hanya beberapa prediktor yang jelas salah, beberapa prediktor saya yang awalnya tidak signifikan menjadi signifikan. Yang mengarahkan saya ke pertanyaan saya: Bagaimana cara menentukan prediktor mana yang akan dimasukkan dalam model mereka? Sepertinya saya Anda harus menjalankan model sekali dengan semua prediktor, menghapus yang tidak signifikan, dan kemudian jalankan kembali. Tetapi jika menghapus hanya beberapa dari prediksi itu membuat yang lain signifikan, saya bertanya-tanya apakah saya mengambil pendekatan yang salah untuk semua ini.

Saya percaya bahwa ini benang mirip dengan pertanyaan saya, tapi saya tidak yakin saya menafsirkan diskusi dengan benar. Mungkin ini lebih merupakan topik desain eksperimental, tetapi mungkin seseorang memiliki pengalaman yang dapat mereka bagikan.

cryptic_star
sumber
Jawaban untuk ini sangat tergantung pada tujuan dan persyaratan Anda: apakah Anda mencari asosiasi sederhana, atau apakah Anda bertujuan untuk prediksi; seberapa tinggi Anda pada interpretabilitas; apakah Anda memiliki informasi tentang variabel dari publikasi lain yang dapat memengaruhi proses; bagaimana dengan interaksi atau versi yang diubah dari variabel: dapatkah Anda memasukkannya; dll. Anda perlu menentukan detail lebih lanjut tentang apa yang Anda coba lakukan untuk mendapatkan jawaban yang baik.
Nick Sabbe
Berdasarkan apa yang Anda tanyakan, ini untuk prediksi. Pengaruh pada variabel lain hanya menawarkan kemungkinan asosiasi. Tidak ada interaksi di antara mereka. Hanya satu nilai yang perlu diubah, dan itu telah dilakukan.
cryptic_star
1
Apakah ada teori yang mengatakan prediksi apa yang harus Anda sertakan? Jika Anda memiliki banyak variabel yang telah Anda ukur, dan tidak ada teori, saya akan merekomendasikan memegang satu set pengamatan sehingga Anda dapat menguji model Anda pada data yang tidak digunakan untuk membuatnya. Tidak benar untuk menguji dan memvalidasi model pada data yang sama.
Michelle
Validasi silang (seperti yang dibahas Nick Sabbe), metode hukuman (Dikran Marsupial), atau memilih variabel berdasarkan teori sebelumnya (Michelle) adalah semua opsi. Tetapi perhatikan bahwa pemilihan variabel secara intrinsik merupakan tugas yang sangat sulit. Untuk memahami mengapa sangat berpotensi penuh, mungkin membantu untuk membaca jawaban saya di sini: algoritme-untuk-model-pemilihan otomatis . Terakhir, ada baiknya mengenali masalah dengan struktur logis dari kegiatan ini, bukan apakah komputer melakukannya untuk Anda secara otomatis, atau Anda melakukannya secara manual untuk diri sendiri.
gung - Reinstate Monica
Lihat juga jawaban untuk posting ini: stats.stackexchange.com/questions/34769/…
jokel

Jawaban:

19

Berdasarkan reaksi Anda terhadap komentar saya:

Anda mencari prediksi. Dengan demikian, Anda tidak harus benar-benar mengandalkan (dalam) signifikansi koefisien. Anda akan lebih baik melakukannya

  • Pilih kriteria yang paling menggambarkan kebutuhan prediksi Anda (mis, tingkat kesalahan klasifikasi, AUC dari ROC, beberapa bentuk dengan bobot, ...)
  • Untuk setiap model minat , evaluasi kriteria ini. Ini dapat dilakukan misalnya dengan memberikan satu set validasi (jika Anda beruntung atau kaya), melalui crossvalidation (biasanya sepuluh kali lipat), atau apa pun opsi lain yang dimungkinkan oleh kriteria minat Anda. Jika mungkin, temukan juga estimasi SE kriteria untuk masing-masing model (mis. Dengan menggunakan nilai pada lipatan yang berbeda dalam crossvalidation)
  • Sekarang Anda dapat memilih model dengan nilai kriteria terbaik, meskipun biasanya disarankan untuk memilih model yang paling parsimoneous (variabel terkecil) yang berada dalam satu SE dari nilai terbaik.

Wrt masing-masing model yang menarik : di sini terletak cukup tangkapan. Dengan 10 prediktor potensial, itu adalah satu truk penuh model potensial. Jika Anda punya waktu atau prosesor untuk ini (atau jika data Anda cukup kecil sehingga model cocok dan dievaluasi cukup cepat): miliki bola. Jika tidak, Anda dapat melakukan ini dengan menebak-nebak, pemodelan maju atau mundur (tetapi menggunakan kriteria alih-alih signifikansi), atau lebih baik lagi: gunakan beberapa algoritma yang memilih serangkaian model yang masuk akal. Salah satu algoritma yang melakukan ini, adalah regresi dihukum, khususnya regresi Lasso. Jika Anda menggunakan R, cukup tancapkan paket glmnet dan Anda siap untuk pergi.

Nick Sabbe
sumber
+1, tetapi bisakah Anda menjelaskan mengapa tepatnya Anda akan "memilih model yang paling parsimoneous (variabel terkecil) yang berada dalam satu SE dari nilai terbaik"?
rolando2
Parsimony adalah, untuk sebagian besar situasi, properti yang diinginkan: itu mempertinggi interpretabilitas, dan mengurangi jumlah pengukuran yang Anda perlukan untuk subjek baru untuk menggunakan model. Sisi lain dari cerita adalah bahwa apa yang Anda dapatkan untuk kriteria Anda hanyalah perkiraan, dengan pencocokan SE: Saya telah melihat beberapa plot yang menunjukkan perkiraan kriteria terhadap beberapa parameter penyetelan, di mana nilai 'terbaik' hanya luar biasa puncak. Dengan demikian, aturan 1 SE (yang arbitrer, tetapi merupakan praktik yang diterima) melindungi Anda dari ini dengan nilai tambah memberikan lebih banyak kekikiran.
Nick Sabbe
13

Tidak ada jawaban sederhana untuk ini. Saat Anda menghapus beberapa variabel penjelas yang tidak signifikan, variabel lain yang berkorelasi dengan variabel tersebut mungkin menjadi signifikan. Tidak ada yang salah dengan ini, tetapi membuat pemilihan model setidaknya sebagian seni daripada sains. Inilah sebabnya mengapa percobaan bertujuan untuk menjaga variabel penjelas ortogonal satu sama lain, untuk menghindari masalah ini.

Secara tradisional analis melakukan penambahan bertahap dan pengurangan variabel ke model satu per satu (mirip dengan apa yang telah Anda lakukan) dan mengujinya secara individual atau dalam kelompok kecil dengan uji t atau F. Masalahnya adalah Anda mungkin kehilangan beberapa kombinasi variabel untuk mengurangi (atau menambahkan) di mana efek gabungannya (atau tidak-efek) disembunyikan oleh collinearity.

Dengan daya komputasi modern, layak untuk mencocokkan semua 2 ^ 10 = 1024 kemungkinan kombinasi variabel penjelas dan memilih model terbaik dengan salah satu dari sejumlah kriteria yang mungkin, misalnya AIC, BIC, atau daya prediksi (misalnya, kemampuan untuk memprediksi nilai-nilai). bagian uji dari data yang telah Anda pisahkan dari set yang Anda gunakan agar sesuai dengan model Anda). Namun, jika Anda akan menguji (secara implisit atau eksplisit) 1024 model, Anda perlu memikirkan kembali nilai-p Anda dari pendekatan klasik - perlakukan dengan hati-hati ...

Peter Ellis
sumber
Terima kasih atas kunjungan tingkat tinggi di plus dan minus dari kedua belah pihak. Itu menegaskan banyak dari apa yang saya curigai.
cryptic_star
11

Jika Anda hanya tertarik pada kinerja prediktif, maka mungkin lebih baik menggunakan semua fitur dan menggunakan regresi ridge untuk menghindari pemasangan sampel pelatihan yang berlebihan. Ini pada dasarnya adalah saran yang diberikan dalam lampiran monografi Millar tentang "seleksi subset dalam regresi" , sehingga ia datang dengan silsilah yang masuk akal!

Alasan untuk ini adalah bahwa jika Anda memilih himpunan bagian berdasarkan estimasi kinerja berdasarkan sampel data yang tetap (misalnya AIC, BIC, cross-validation, dll.), Kriteria pemilihan akan memiliki varian terbatas sehingga memungkinkan untuk over-fit kriteria seleksi itu sendiri. Dengan kata lain, untuk mulai dengan saat Anda meminimalkan kriteria seleksi, kinerja generalisasi akan meningkat, namun akan ada titik di mana semakin Anda mengurangi kriteria seleksi, generalisasi yang lebih buruk menjadi. Jika Anda kurang beruntung, Anda dapat dengan mudah berakhir dengan model regresi yang berkinerja lebih buruk daripada yang Anda mulai (yaitu model dengan semua atribut).

Ini sangat mungkin terjadi ketika dataset kecil (sehingga kriteria seleksi memiliki varian tinggi) dan ketika ada banyak pilihan model yang mungkin (misalnya memilih kombinasi fitur). Regularisasi tampaknya kurang rentan terhadap over-fitting karena merupakan parameter skalar yang perlu disesuaikan dan ini memberikan pandangan yang lebih terbatas tentang kompleksitas model, yaitu lebih sedikit derajat kebebasan efektif yang dapat digunakan untuk menyesuaikan kriteria seleksi. .

Dikran Marsupial
sumber
0

Gunakan perpustakaan lompatan. Saat Anda memplot variabel, sumbu y menunjukkan R ^ 2 yang disesuaikan. Anda melihat di mana kotak-kotak berwarna hitam di R ^ 2 tertinggi. Ini akan menunjukkan variabel yang harus Anda gunakan untuk regresi linier berganda Anda.

Contoh anggur di bawah ini:

library(leaps)
regsubsets.out <-
  regsubsets(Price ~ Year + WinterRain + AGST + HarvestRain + Age + FrancePop,
         data = wine,
         nbest = 1,       # 1 best model for each number of predictors
         nvmax = NULL,    # NULL for no limit on number of variables
         force.in = NULL, force.out = NULL,
         method = "exhaustive")
regsubsets.out

#----When you plot wherever R^2 is the highest with black boxes,
#so in our case AGST + HarvestRain + WinterRain + Age and the dependent var.is Price----#
summary.out <- summary(regsubsets.out)
as.data.frame(summary.out$outmat)
plot(regsubsets.out, scale = "adjr2", main = "Adjusted R^2")
zschleien
sumber
Ini tidak terdengar sangat berbeda dari apa yang disebut seleksi 'subset terbaik', yang memiliki masalah yang diketahui.
gung - Reinstate Monica
leaps secara eksplisit menghitung 'himpunan bagian terbaik', meskipun tidak menyarankan Anda bagaimana memilih di antara himpunan bagian ukuran yang berbeda. (Itu menjadi masalah antara Anda dan klerus statistik Anda.)
steveo'america
Cukup lucu, leapsdidasarkan pada "kode FORTRAN77 oleh Alan Miller [...] yang dijelaskan lebih detail dalam bukunya 'Subset Selection in Regression'", sebuah buku yang disebutkan oleh Dikran dalam jawaban lain untuk pertanyaan ini :-)
jorijnsmit
-2

Mengapa tidak melakukan analisis korelasi Pertama dan kemudian hanya memasukkan dalam regresi yang berhubungan dengan Dv?

anna
sumber
2
Ini umumnya merupakan cara yang buruk untuk memilih variabel mana yang akan dipilih, lihat misalnya Apakah menggunakan matriks korelasi untuk memilih prediktor untuk regresi benar? Analisis korelasi sangat berbeda dengan regresi berganda, karena dalam kasus terakhir kita perlu berpikir tentang "partialling out" (kemiringan regresi menunjukkan hubungan setelah variabel-variabel lain diperhitungkan ), tetapi matriks korelasi tidak menunjukkan ini.
Silverfish
Ini tidak memberikan jawaban untuk pertanyaan itu. Setelah memiliki reputasi yang cukup, Anda dapat mengomentari setiap pos ; alih-alih, berikan jawaban yang tidak memerlukan klarifikasi dari penanya . - Dari Ulasan
Sycorax berkata Reinstate Monica
1
@GeneralAbrial Menurut saya ini adalah jawaban untuk pertanyaan, meskipun singkat. Ini bukan solusi yang baik untuk masalah ini, tapi itulah gunanya naik / turunnya nilai. (Saya pikir "mengapa tidak" dimaksudkan sebagai pertanyaan retoris, bukan permintaan klarifikasi dari penulis.)
Silverfish
-4

Penasihat saya menawarkan cara lain yang memungkinkan untuk melakukan hal ini. Jalankan semua variabel Anda satu kali, lalu hapus variabel yang gagal memenuhi beberapa ambang (kami menetapkan ambang kami sebagai p <.25). Lanjutkan iterasi seperti itu sampai semua variabel jatuh di bawah nilai 0,25 itu, kemudian laporkan nilai-nilai yang signifikan.

cryptic_star
sumber
1
Hai allie, itulah yang disebutkan oleh @Peter Ellis pada paragraf kedua dari jawabannya. Kalimat kedua di sana mencakup masalah yang diperkenalkan teknik ini. Apakah Anda memiliki teori, yang memberi tahu Anda apa prediktor untuk dimasukkan ke dalam model Anda?
Michelle
Ya, @Michelle berhak untuk menggarisbawahi pertanggungjawaban atas pendekatan ini. Ini dapat menghasilkan hasil yang sangat sewenang-wenang.
rolando2
Ya, ada teori di balik itu semua, yang kami harapkan akan berkembang. Secara khusus, kami melihat bagaimana isyarat sosial tertentu (seperti bicara) berinteraksi. Kami menyadari mana yang memiliki atau tidak memiliki pengaruh. Namun, kami berusaha menyediakan versi berbutir halus. Jadi, pidato dapat dipecah menjadi pertanyaan, opini, penilaian, dll.
cryptic_star
2
Oke, jadi Anda melakukan analisis eksplorasi. :) Anda dapat mencoba berbagai kombinasi, tetapi Anda harus menguji model yang Anda dapatkan pada data baru. Menurut definisi, dengan apa yang Anda lakukan, Anda akan memiliki model "terbaik" untuk data Anda, tetapi mungkin tidak berfungsi jika Anda mengumpulkan set data lain.
Michelle