Pemilihan model dan kinerja model dalam regresi logistik

9

Saya punya pertanyaan tentang pemilihan model dan kinerja model dalam regresi logistik. Saya memiliki tiga model yang didasarkan pada tiga hipotesis berbeda. Dua model pertama (beri nama z dan x) hanya memiliki satu variabel penjelas di setiap model, dan yang ketiga (beri nama w) lebih rumit. Saya menggunakan AIC untuk pemilihan variabel untuk model w dan kemudian AIC untuk membandingkan mana dari tiga model yang menjelaskan variabel dependen terbaik. Saya telah menemukan bahwa model w memiliki AIC terendah dan sekarang ingin melakukan beberapa statistik kinerja pada model itu untuk mendapatkan beberapa gagasan tentang kekuatan prediksi model. Karena yang saya tahu adalah bahwa model ini lebih baik dari dua yang lain tetapi tidak seberapa baik itu.

Karena saya telah menggunakan semua data untuk mempelajari model (untuk dapat membandingkan ketiga model) bagaimana saya menjalankan kinerja model? Dari apa yang telah saya kumpulkan, saya tidak bisa hanya melakukan validasi k-fold pada model akhir yang saya dapatkan dari pemilihan model menggunakan AIC tetapi harus mulai dari awal dengan semua variabel penjelas yang disertakan, apakah ini benar? Saya akan berpikir bahwa itu adalah model terakhir yang saya pilih dengan AIC yang saya ingin tahu seberapa baik kinerjanya, tetapi menyadari bahwa saya telah melatih semua data sehingga model mungkin bias. Jadi jika saya harus mulai dari awal dengan semua variabel penjelas di semua lipatan saya akan mendapatkan model akhir yang berbeda untuk beberapa lipatan, dapatkah saya memilih model dari lipatan yang memberikan daya prediksi terbaik dan menerapkannya pada set data lengkap untuk membandingkan AIC dengan dua model lainnya (z dan x)? Atau bagaimana cara kerjanya?

Bagian kedua dari pertanyaan saya adalah pertanyaan dasar tentang over-parameterisasi. Saya memiliki 156 poin data, 52 adalah 1 sisanya 0. Saya memiliki 14 variabel penjelas untuk dipilih untuk model w, saya menyadari bahwa saya tidak dapat memasukkan semua karena parameterisasi berlebih, saya telah membaca bahwa Anda hanya boleh menggunakan 10% dari kelompok variabel dependen dengan pengamatan paling sedikit yang hanya akan menjadi 5 untuk saya. Saya mencoba menjawab pertanyaan dalam ekologi, apakah boleh memilih variabel awal yang menurut saya menjelaskan ketergantungan terbaik hanya berdasarkan ekologi? Atau bagaimana saya memilih variabel penjelas awal? Tidak terasa benar untuk sepenuhnya mengecualikan beberapa variabel.

Jadi saya benar-benar punya tiga pertanyaan:

  • Mungkinkah menguji kinerja pada model yang dilatih pada set data lengkap dengan validasi silang?
  • Jika tidak, bagaimana saya memilih model akhir saat melakukan cross-validation?
  • Bagaimana saya memilih variabel awal sehingga saya ingin parameterisasi berlebihan?

Maaf atas pertanyaan berantakan dan ketidaktahuan saya. Saya tahu bahwa pertanyaan serupa telah diajukan tetapi masih merasa sedikit bingung. Hargai setiap pemikiran dan saran.

mael
sumber

Jawaban:

7

Memang benar bahwa lebih baik menggunakan kumpulan data uji untuk memvalidasi model Anda. Namun, Anda masih bisa mengatakan seberapa baik kinerja model Anda pada data Anda, selama Anda jujur ​​tentang apa yang Anda lakukan. Apa yang tidak bisa Anda lakukan adalah mengatakan itu akan melakukan ini dengan baik pada data lain : Kemungkinan tidak akan. Sayangnya, banyak artikel yang diterbitkan setidaknya mengisyaratkan gagasan yang salah ini.

Anda bertanya

apakah boleh memilih variabel awal yang menurut saya menjelaskan ketergantungan terbaik hanya berdasarkan ekologi?

Tidak hanya itu OK, itu lebih baik daripada skema otomatis. Memang, ini juga bisa menjadi variabel final . Ini tergantung, agaknya, pada tingkat pengetahuan di lapangan. Jika tidak banyak yang diketahui tentang apa yang Anda teliti, maka mungkin diperlukan pendekatan yang lebih eksploratif. Tetapi jika Anda memiliki alasan yang baik untuk berpikir bahwa variabel-variabel tertentu harus ada dalam model, maka dengan segala cara, masukkan mereka. Dan saya berpendapat untuk membiarkan mereka di sana, bahkan jika tidak signifikan.

Peter Flom
sumber
1

Jika Anda akan melakukan pemilihan model maka saya pikir Anda lebih baik melakukan pencarian lengkap dan menimbang masing-masing model daripada memetik ceri. Anda hanya memiliki 14 variabel, yang tentunya layak - 16384 model yang berbeda tidak terlalu besar, terutama karena ukuran sampel kecil. Saya juga akan melihat bobot yang dinormalisasi, yang didefinisikan oleh:

wm=[lexp(12[AIClAICm])]1

Bobot ini menganggap AIC negatif dua kali kemungkinan log ditambah dua kali jumlah beta. Jika model terbaik memiliki bobot mendekati maka gunakan saja. jika tidak, Anda harus rata-rata hasil Anda model aross dengan berat total mendekati . Apa yang biasanya terjadi adalah bahwa kelompok variabel "inti" harus selalu disertakan, dengan ketidakpastian atas set "non-inti", dan seperangkat variabel tidak penting ketiga yang tidak pernah muncul dalam model dengan bobot tinggi.111

Anda juga dapat mengganti AIC dengan BIC atau IC lain berbasis penalti untuk melihat seberapa besar bobotnya tergantung pada kompleksitas kompleksitas penalti yang digunakan.

probabilityislogic
sumber
Menggunakan AIC pada semua model yang mungkin adalah proses dengan banyak sekali yang membuat saya bertanya-tanya tentang kinerja. Berbicara dalam generalisasi yang luas, tidak selalu logis untuk memikirkan hal ini sebagai masalah pemilihan variabel melainkan sebagai masalah hukuman (penyusutan).
Frank Harrell
Apakah ada proses yang tidak memiliki multiplisitas ekstrim dalam pemilihan model? Anda berhadapan dengan ruang diskrit besar - ini selalu mengarah ke sejumlah besar perbandingan. Saya pikir pertanyaannya adalah apakah implisit sebelumnya atas model itu masuk akal.
probabilityislogic
Baik. Tapi saya pikir sebagian besar latihan pemilihan model tidak perlu (yaitu, kekikiran bukan teman Anda) dan hasil dari tidak memiliki prior sama sekali.
Frank Harrell
Saya juga setuju, saya pikir Bayes Factors paling baik digunakan untuk masalah struktur model, seperti apakah menggunakan distribusi normal atau t misalnya. Mereka tidak berguna untuk pemilihan kovariat, tetapi tidak efisien dibandingkan dengan penyusutan.
probabilityislogic
Maaf atas komentar saya yang terlambat, tetapi apakah Anda tahu ada cara mudah untuk menghitung ini dalam R? Saya memiliki AIC: s dalam daftar atau matriks. Saya cukup baru untuk R sehingga membangun fungsi yang rumit sulit. Terima kasih!
mael
0

Untuk menjawab "Mungkinkah menguji kinerja pada model yang dilatih pada set data lengkap dengan validasi silang?" TIDAK, saya pikir ini tidak masalah. Anda harus memasukkan ketiga model ke subset yang sama dari dataset Anda. Kemudian lakukan validasi silang untuk melihat mana yang lebih baik.

Stat
sumber
1
Jadi jika saya mengerti Anda benar, saya hanya harus menggunakan satu pelatihan dan satu set tes untuk semua model? Bisakah saya masih menggunakan 5 variabel saya untuk model terakhir atau itu risiko untuk parameterisasi berlebihan? Dan bukankah itu risiko dengan hanya satu set latihan dan tes - karena itu akan sangat tergantung pada di mana perpecahan akan dengan relatif sedikit data yang saya miliki - atau apakah itu tidak perlu dikhawatirkan? Kalau tidak, rasanya seperti ini akan menjadi cara yang paling benar untuk melakukannya.
mael
0

Mungkinkah menguji kinerja pada model yang dilatih pada set data lengkap dengan validasi silang?

Saya pikir tidak. Mungkin metode yang lebih baik adalah mengevaluasi masing-masing dari ketiga model menggunakan validasi silang berulang. Karena Anda telah memilih fitur berdasarkan pengetahuan sebelumnya, Anda tidak perlu khawatir tentang pemilihan fitur. Metode ini memungkinkan Anda untuk mengevaluasi kinerja model.

Jika tidak, bagaimana saya memilih model akhir saat melakukan cross-validation?

Setelah Anda mengevaluasi kinerja model Anda menggunakan validasi silang berulang, Anda dapat melatih model akhir menggunakan semua data yang tersedia.

Bagaimana saya memilih variabel awal sehingga saya ingin parameterisasi berlebihan?

Jika saya mengerti dengan benar: Seperti yang disarankan oleh kontributor di atas Anda dapat menambahkan fitur Anda berdasarkan pengetahuan sebelumnya dari area tersebut atau Anda perlu melakukan pemilihan fitur dalam validasi silang untuk menghindari overfitting. Prosedur pemilihan fitur yang sama ini kemudian akan diterapkan ke semua data saat melatih model akhir. Anda tidak dapat menggunakan model ini untuk melaporkan kinerja model yang digeneralisasi, ini harus berasal dari perkiraan validasi silang.

BGreene
sumber