Apakah regresi bertahap?


14

Misalkan saya ingin membangun classifier biner. Saya memiliki beberapa ribu fitur dan hanya beberapa sampel. Dari pengetahuan domain, saya punya alasan kuat untuk percaya bahwa label kelas dapat diprediksi secara akurat hanya dengan menggunakan beberapa fitur, tetapi saya tidak tahu yang mana . Saya juga ingin aturan keputusan akhir mudah ditafsirkan / dijelaskan, lebih lanjut memerlukan sejumlah fitur. Subset tertentu dari fitur saya sangat berkorelasi, jadi memilih beberapa yang paling prediktif secara independen tidak akan berfungsi. Saya juga ingin dapat melakukan pengujian hipotesis secara bermakna pada fitur saya.

Apakah prosedur regresi bertahap berikut ini masuk akal dalam kondisi ini:

  1. Mengingat fitur yang sudah ada dalam model (atau hanya memotong pada iterasi pertama), pilih fitur yang menghasilkan rasio kemungkinan log terbesar ketika ditambahkan ke model. Gunakan uji rasio kemungkinan chi-square untuk menghitung nilai-P nominal untuk setiap tes hipotesis yang dilakukan dalam seleksi ini. Nol di sini adalah bahwa menambahkan variabel tambahan ke model tidak memberikan kemampuan prediksi tambahan. Alternatifnya adalah meningkatkan kemampuan prediksi

  2. Perlakukan hipotesis yang diuji pada Langkah 1 dari setiap iterasi sebagai keluarga dan hitung laju penemuan palsu untuk nilai-P terkecil (untuk fitur yang dipilih) menggunakan sesuatu seperti Benjamini-Hochberg.

  3. Goto 1 kecuali beberapa kriteria berhenti dipenuhi.

  4. Laporkan laju penemuan palsu untuk fitur individu, tetapi bukan nilai-P untuk model secara keseluruhan (karena ini akan meningkat secara besar-besaran). Masing-masing dari beberapa pengujian ini mengoreksi P-nilai mewakili signifikansi statistik dari fitur yang diberikan semua fitur yang sebelumnya ditambahkan ke model.

Apakah melakukan sesuatu seperti ini dalam keadaan ini berhasil menghindari semua kritik khas regresi bertahap? Apakah tingkat penemuan yang salah dihitung dengan cara ini masuk akal?


3
Apakah ada alasan untuk tidak menggunakan pendekatan regresi yang dihukum (laso, elasticnet, dll.)?
Ben Bolker

Jawaban:


11

Saya tidak akan merekomendasikan Anda menggunakan prosedur itu. Rekomendasi saya adalah: Abaikan proyek ini. Hanya menyerah dan berjalan pergi. Anda tidak memiliki harapan ini berfungsi.

Dore illustration of Dante's Inferno "Abandon hope" sumber untuk gambar

Mengesampingkan masalah standar dengan pemilihan bertahap (lih., Di sini ), dalam kasus Anda, Anda kemungkinan besar memiliki prediksi sempurna karena pemisahan dalam ruang dimensi tinggi.

Saya tidak memiliki rincian tentang situasi Anda, tetapi Anda menyatakan bahwa Anda memiliki "hanya beberapa sampel". Mari kita beramal dan mengatakan Anda memiliki 90. Selanjutnya Anda mengatakan Anda memiliki "beberapa ribu fitur". Bayangkan Anda 'hanya' punya 2.000. Demi kesederhanaan, katakanlah semua fitur Anda adalah biner. Anda "percaya bahwa label kelas dapat diprediksi secara akurat hanya menggunakan beberapa fitur", katakanlah Anda akan mencari set hingga hanya 9 fitur maks. Terakhir, mari kita bayangkan bahwa hubungan itu deterministik, sehingga hubungan yang sebenarnya akan selalu hadir dengan sempurna dalam data Anda. (Kita dapat mengubah angka-angka dan asumsi-asumsi ini, tetapi itu hanya akan membuat masalah menjadi lebih buruk.) Sekarang, seberapa baik Anda dapat memulihkan hubungan itu dalam kondisi (murah hati) ini? Artinya, seberapa sering set yang benar menjadi satu-satunya set yang menghasilkan akurasi sempurna? Atau, dengan kata lain, berapa banyak set sembilan fitur juga akan cocok secara kebetulan saja?

Beberapa (terlalu) matematika dan simulasi sederhana harus memberikan beberapa petunjuk untuk pertanyaan ini. Pertama, dengan 9 variabel, masing-masing bisa 0 atau 1, jumlah pola yang bisa ditunjukkan oleh pengamatan adalah , tetapi Anda akan memiliki hanya 90 pengamatan. Dengan demikian, sangat mungkin bahwa, untuk serangkaian 9 variabel biner, setiap pengamatan memiliki nilai prediktor yang berbeda — tidak ada ulangan. Tanpa ulangan dengan nilai prediktor yang sama di mana beberapa memiliki y = 0 dan beberapa y = 1, Anda akan memiliki pemisahan yang lengkap dan prediksi sempurna dari setiap pengamatan akan dimungkinkan. 29=512

Di bawah ini, saya memiliki simulasi (dikodekan dalam R) untuk melihat seberapa sering Anda mungkin tidak memiliki pola nilai x dengan 0s dan 1s. Cara kerjanya adalah saya mendapatkan satu set angka dari 1 hingga 512, yang mewakili pola yang mungkin, dan melihat apakah ada pola di 45 pertama (yang mungkin 0s) cocok dengan salah satu pola di 45 kedua (itu mungkin 1s). Ini mengasumsikan bahwa Anda memiliki data respons yang seimbang sempurna, yang memberi Anda perlindungan sebaik mungkin terhadap masalah ini. Perhatikan bahwa memiliki beberapa vektor x yang direplikasi dengan nilai y yang berbeda tidak benar-benar membuat Anda keluar dari hutan, itu hanya berarti Anda tidak akan dapat memprediksi dengan sempurna setiap pengamatan tunggal dalam dataset Anda, yang merupakan standar I yang sangat ketat. saya gunakan di sini.

set.seed(7938)  # this makes the simulation exactly reproducible
my.fun = function(){
  x = sample.int(512, size=90, replace=TRUE)
  return(sum(x[1:45]%in%x[46:90])==0)
}
n.unique = replicate(10000, my.fun())
mean(n.unique)  # [1] 0.0181

Simulasi menyarankan Anda akan memiliki masalah ini dengan sekitar 1,8% dari set 9 x-variabel. Sekarang, berapa banyak set 9 yang ada? Sebenarnya, itu akan menjadi (karena kami telah menetapkan bahwa 9 variabel penyebab deterministik yang sebenarnya ada di set Anda). Namun, banyak dari set itu akan tumpang tindih; akan ada tahun 1991 / 9 221 non-tumpang tindih set 9 dalam partisi tertentu dari variabel Anda (dengan banyak partisi tersebut mungkin). Jadi, dalam beberapa partisi yang diberikan, kita mungkin berharap akan ada 221 ×1991 choose 9=1.3×10241991/9221221×0.0184 set 9 x-variabel yang akan memprediksi dengan sempurna setiap pengamatan dalam dataset Anda.

Perhatikan bahwa hasil ini hanya untuk kasus di mana Anda memiliki dataset yang relatif lebih besar (dalam "puluhan"), jumlah variabel yang relatif lebih kecil (dalam "ribuan"), hanya mencari kasus di mana setiap pengamatan tunggal dapat diprediksi dengan sempurna ( akan ada lebih banyak set yang hampir sempurna), dll. Kasing Anda yang sebenarnya tidak mungkin bekerja dengan baik 'ini'. Selain itu, kami menetapkan bahwa hubungan tersebut sangat deterministik. Apa yang akan terjadi jika ada gangguan acak dalam hubungan tersebut? Dalam hal ini, Anda masih akan memiliki ~ 4 (nol) set yang memprediksi data Anda dengan sempurna, tetapi set yang tepat mungkin tidak ada di antara mereka .

Tl; dr , poin dasar di sini adalah bahwa set variabel Anda terlalu besar / dimensi tinggi, dan jumlah data Anda terlalu kecil, untuk memungkinkan segala sesuatu terjadi. Jika benar-benar benar bahwa Anda memiliki "puluhan" sampel, "ribuan" variabel, dan sama sekali tidak tahu di muka variabel mana yang mungkin benar, Anda tidak memiliki harapan untuk pergi ke mana pun dengan prosedur apa pun. Pergi lakukan hal lain dengan waktu Anda.


1
Nah, itu intro orisinal untuk sebuah jawaban, saya menyukainya.
Łukasz Grad

1
Meninggalkan proyek seringkali merupakan opsi yang masuk akal. Walaupun tentu saja sebagian kecil dari kasus, saya memiliki lebih dari satu kali menyarankan klien bahwa proyek yang mereka pikirkan tidak akan bisa dikerjakan.
gung - Reinstate Monica

1

Yi ;(i=1,,n)Xij ;(j=1,,p)YY=0Y=1γmm ;(m=1,..,M)γmTXijXij0

XjY=1Y=0

Jadi saya menyarankan mengevaluasi prediksi secara langsung, daripada rasio kemungkinan. Namun, observasi yang diprediksi tidak boleh dimasukkan dalam estimasi model (karena inilah situasi yang akan Anda hadapi ketika benar-benar menggunakan model Anda). Jadi miliki langkah baru 1) (tebal adalah perubahan yang saya sarankan). 1) Mengingat fitur yang sudah ada dalam model (atau hanya memotong pada iterasi pertama), pilih fitur yang menghasilkan prediksi terbaik ketika ditambahkan ke model.

Sekarang Anda harus memutuskan

  1. apa yang Anda inginkan "terbaik" berarti secara matematis
  2. cara membagi data Anda menjadi bagian "pas" dan "memprediksi"

Saya akan memberikan saran untuk masing-masing:

  1. Y=1Y=0F=CC+IFCI
  2. 12,,n121,3,,n2nF=CnFm

Fm(m=1,,M)m=argmaxmMFm . Perhatikan bahwa hal baik tentang metode di atas adalah bahwa Anda tidak perlu khawatir tentang berapa banyak variabel dalam model Anda atau seberapa berkorelasi variabel-variabel ini (kecuali jika tidak memungkinkan untuk benar-benar cocok dengan model). Ini karena model tersebut sesuai secara terpisah dengan prediksi, sehingga bias karena pemasangan yang berlebihan, atau degradasi karena ketidakstabilan numerik akan muncul dalam prediksi yang lebih buruk.

sthMs=p+1XjXj

Langkah-langkah bisa berisiko karena Anda mungkin menemukan "maksimum lokal" daripada "global maksimum", terutama karena Anda memiliki banyak prediktor (ini adalah "ruang" besar untuk dioptimalkan, dan mungkin multi-modal - artinya ada banyak model "terbaik")

100F

Saya pikir Anda akan menemukan ini jauh lebih mudah untuk membenarkan pilihan model akhir Anda untuk non-ahli statistik, daripada mencoba menjelaskan mengapa nilai-p menunjukkan model itu baik.

Y

Dua komentar terakhir:

  1. Anda juga bisa menggunakan mesin ini untuk memutuskan apakah langkah-bijaksana lebih baik daripada seleksi maju (hanya menambahkan variabel) atau seleksi mundur (mulai dari model penuh, dan hanya menghapus variabel).
  2. pnXTXXTWX(XTX+λI)1XTY(XTWX+λI)1XTWY . Pada dasarnya,λλ

Terima kasih atas sarannya. Ada tiga masalah dengan ini, meskipun: 1. Saya peduli tentang mengukur ketidakpastian dalam prediksi saya dan kontribusi masing-masing variabel, bukan hanya akurasi prediksi biner. 2. Mengingat sifat dataset saya, ini terlalu intensif secara komputasi. 3. Dari pengetahuan domain, saya percaya bahwa masalah optima lokal tidak penting.
dsimcha

100nF

Sebenarnya kamu benar. Prosedur ini akan menjadi bagian dari basis kode yang lebih besar dan saya lupa bahwa beberapa sisa kode tidak perlu dijalankan kembali untuk setiap iterasi jackknife. Namun, dua poin lainnya masih berlaku.
dsimcha

FFFchosenF(j)variabel pada akurasi prediksi karena masing-masing variabel)

F
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.