Apakah regresi logistik bias ketika variabel hasil dibagi 5% - 95%?


10

Saya sedang membangun model kecenderungan menggunakan regresi logistik untuk klien utilitas. Kekhawatiran saya adalah bahwa dari total sampel, akun 'buruk' saya hanya 5%, dan sisanya baik. Saya memprediksi 'buruk'.

  • Apakah hasilnya akan dibiasakan?
  • Apa 'proporsi buruk ke baik' yang optimal untuk membangun model yang baik?

Saya pikir itu selalu lebih baik untuk memiliki 50% barang dan 50% buruk sesuai aturan praktis. Keluar dari model harus tidak bias pada sampel.

Jawaban:


7

Saya tidak setuju dengan jawaban lain di komentar, jadi itu adil saya berikan jawaban saya sendiri. Biarkan menjadi respons (akun baik / buruk), dan X menjadi kovariat.YX

Untuk regresi logistik, modelnya adalah sebagai berikut:

catatan(hal(Y=1|X=x)hal(Y=0|X=x))=α+saya=1kxsayaβsaya

Pikirkan tentang bagaimana data dapat dikumpulkan:

  • Anda bisa memilih pengamatan secara acak dari beberapa "populasi" hipotetis
  • Anda dapat memilih data berdasarkan , dan melihat nilai Y apa yang terjadi.XY

Keduanya tidak apa-apa untuk model di atas, karena Anda hanya memodelkan distribusi . Ini akan disebut studi prospektifY|X .

Kalau tidak:

  • Anda dapat memilih pengamatan berdasarkan (misalkan masing-masing 100), dan melihat prevalensi relatif X (yaitu Anda bertingkat pada Y ). Ini disebut studi retrospektif atau kontrol kasus .YXY

(Anda juga bisa memilih data berdasarkan dan variabel X tertentuYX : ini akan menjadi studi kasus-kontrol bertingkat, dan jauh lebih rumit untuk dikerjakan, jadi saya tidak akan membahasnya di sini).

Ada hasil yang bagus dari epidemiologi (lihat Prentice dan Pyke (1979) ) bahwa untuk studi kasus-kontrol, estimasi kemungkinan maksimum untuk β dapat ditemukan dengan regresi logistik, yaitu menggunakan model prospektif untuk data retrospektif.

Jadi bagaimana ini relevan dengan masalah Anda?

Artinya, jika Anda dapat mengumpulkan lebih banyak data, Anda bisa melihat akun buruk dan masih menggunakan regresi logistik untuk memperkirakan (tetapi Anda perlu menyesuaikan α untuk memperhitungkan representasi berlebihan). ). Katakanlah biayanya $ 1 untuk setiap akun tambahan, maka ini mungkin lebih efektif daripada hanya melihat semua akun.βsayaα

Tetapi di sisi lain, jika Anda sudah memiliki SEMUA data yang mungkin, tidak ada gunanya untuk bertingkat: Anda hanya akan membuang data (memberikan perkiraan yang lebih buruk), dan kemudian dibiarkan dengan masalah mencoba memperkirakan .α


Ini hanya benar meskipun jika Anda memiliki cukup data untuk secara memadai mewakili kelas minoritas (yang biasanya merupakan masalah di mana ada ketidakseimbangan kelas besar - masalahnya adalah ketidakseimbangan per se, tetapi Anda tidak memiliki cukup sampel dari minoritas tersebut. kelas). Dalam hal ini pembobotan diferensial berbasis validasi silang dari kelas positif dan negatif, penyesuaian alfa, atau penyesuaian multiplikatif (semua ekuivalen IIRC) akan menjadi ide yang baik untuk meningkatkan kelas minoritas. Stratifikasi data akan menjadi setara dengan murah dan ceria.
Dikran Marsupial

@ Dikran: Saya tidak melihat bagaimana semua ini gagal menjadi benar dalam kasus itu: Anda tidak harus mewakili kelas minoritas, Anda hanya perlu mewakili perbedaan relatif dengan mayoritas. Jika Anda tidak memiliki cukup data untuk itu, membuang pengamatan dari mayoritas tidak akan membantu.
Simon Byrne

@Simon, saya telah setuju dengan Anda bahwa stratifikasi bukan ide yang baik kecuali jika Anda tidak ingin menyesuaikan alpha, mengubah pola, atau menyesuaikan output dari model. Seperti yang saya katakan masalah dengan ketidakseimbangan kelas bukanlah ketidakseimbangan per se, tetapi bahwa tidak ada data yang cukup untuk kelas minoritas untuk secara memadai mendefinisikan "perbedaan relatif terhadap mayoritas". Ketika itu terjadi, rata-rata itu bias output terhadap kelas mayoritas, dan karenanya melakukan sesuatu untuk mengimbangi bias itu sangat membantu. Stratifikasi adalah salah satu cara untuk melakukan itu, tetapi bukan yang terbaik.
Dikran Marsupial

@Simon, terima kasih BTW untuk referensi Prentice dan Pyke, itu terlihat berguna.
Dikran Marsupial

1
@ Dikran: Ini mungkin bias untuk model lain, tetapi BUKAN untuk regresi logistik, itulah intinya.
Simon Byrne

3

Secara asimptot, rasio pola positif dan negatif pada dasarnya tidak relevan. Masalahnya muncul terutama ketika Anda memiliki terlalu sedikit sampel kelas minoritas untuk menggambarkan distribusi statistiknya secara memadai. Membuat dataset lebih besar umumnya menyelesaikan masalah (jika memungkinkan).

Jika ini tidak memungkinkan, hal terbaik yang harus dilakukan adalah sampel ulang data untuk mendapatkan dataset yang seimbang, dan kemudian menerapkan penyesuaian multiplikatif pada output dari classifier untuk mengkompensasi perbedaan antara set pelatihan dan frekuensi kelas relatif operasional. Meskipun Anda dapat menghitung faktor penyesuaian optimal (asimtotik), dalam praktiknya yang terbaik adalah menyesuaikan penyesuaian menggunakan validasi silang (seperti yang kita hadapi dengan kasus praktis terbatas daripada yang asimtotik).

Dalam situasi seperti ini, saya sering menggunakan komite model, di mana masing-masing dilatih pada semua pola minoritas dan sampel acak yang berbeda dari pola mayoritas dengan ukuran yang sama dengan pola minoritas. Ini menjaga terhadap nasib buruk dalam pemilihan satu himpunan bagian dari pola mayoritas.


2
Tetapi apakah ini berkaitan dengan regresi logistik? Kita tidak perlu menggambarkan distribusi statistik dari kedua kelas, hanya rasio odds relatif (lihat komentar saya di @Henry).
Simon Byrne

Dalam contoh univariat mungkin, tetapi jika Anda memiliki lebih dari satu variabel penjelas maka Anda memerlukan informasi tentang distribusi pola untuk mengarahkan "diskriminan" dengan benar.
Dikran Marsupial

Bukankah lebih baik untuk menerapkan penyesuaian multiplikatif dalam ruang peluang log sebelum fungsi logistik diterapkan?
rm999

IIRC, penyesuaian optimal asimtitik adalah untuk mengalikan dengan rasio frekuensi kelas operasional dan pelatihan, ini didasarkan pada aturan Bayes, sehingga diterapkan pada probabilitas daripada rasio log-odds. Namun, karena kami hanya mencoba untuk mengoreksi defisiensi yang sulit secara matematis dalam estimasi, mungkin tidak terlalu penting bagaimana penyesuaian dilakukan, itu benar-benar hanya "faktor fudge".
Dikran Marsupial

@ Dikran: Saya tidak mengerti apa yang Anda maksud dengan benar mengarahkan "diskriminan". Bahkan dalam kasus multivariat, regresi logistik masih hanya menghitung rasio odds relatif.
Simon Byrne

1

Secara teori, Anda akan dapat membedakan dengan lebih baik jika proporsi "baik" dan "buruk" memiliki ukuran yang hampir sama. Anda mungkin dapat bergerak ke arah ini dengan mengambil sampel bertingkat, melampauikan kasus-kasus buruk dan kemudian mengubah ukuran untuk kembali ke proporsi sebenarnya nanti.

Ini membawa beberapa risiko. Khususnya, model Anda cenderung memberi label individu sebagai "berpotensi buruk" - mungkin mereka yang mungkin tidak membayar tagihan utilitas saat jatuh tempo. Penting bahwa dampak kesalahan ketika melakukan hal ini dikenali dengan benar: khususnya berapa banyak "pelanggan baik" akan diberi label "berpotensi buruk" oleh model, dan Anda cenderung tidak akan mendapatkan kesalahan pengulangan hadiah jika Anda tidak mengubah nilai Anda. model dengan stratified sampling.


Sebenarnya, saya tidak berpikir ini berlaku untuk regresi logistik: parameter odds-ratio (yang melakukan diskriminasi) tidak berubah terhadap stratifikasi pada variabel respon. Inilah sebabnya mengapa ini dapat digunakan untuk studi kasus-kontrol.
Simon Byrne

@Simon: Saya tidak setuju dengan komentar Anda tentang rasio odds, tetapi saya telah melihat orang gagal untuk mengambil kembali ini ke konsekuensi untuk populasi dengan benar setelah stratified sampling ketika mereka melakukannya dalam kasus lain. Misalnya, jika Anda menemukan bahwa orang yang faktor A benar memiliki peluang dua kali lipat "buruk" daripada yang tanpa faktor A, ini tidak boleh berubah dengan pengambilan sampel bertingkat, tetapi jika Anda ingin tahu proporsi populasi yang akan menjadi jika tidak terpengaruh jika Anda menargetkan mereka yang memiliki faktor A, maka Anda perlu mempertimbangkan informasi dari sampel Anda dengan hati-hati.
Henry

maaf, bukan itu yang saya tidak setujui. Itu adalah bit pertama: konsekuensi dari invarian adalah bahwa setelah Anda memiliki data, tidak ada gunanya bertingkat, Anda hanya membuang data. (ceritanya berbeda dalam hal biaya pengumpulan data, karenanya ada studi kasus-kontrol).
Simon Byrne

@Simon: Ketika Anda mengatakan "studi kasus-kontrol", apakah maksud Anda bahwa Anda awalnya berencana untuk mengambil sampel kasus "buruk" dan sampel kasus "baik"? Dengan proporsi yang lebih tinggi dari kasus "buruk" daripada proporsi kecil dalam populasi? Jika demikian, itulah yang saya maksudkan dengan "pengambilan sampel bertingkat, terlalu banyak kasus buruk" dalam jawaban saya.
Henry

Ya, itulah yang saya maksudkan juga. Pertanyaan itu tampaknya mengindikasikan bahwa mereka sudah memiliki data, maka tidak ada gunanya bertingkat.
Simon Byrne

0

ysayahalsayahalsaya

ysayaBernoulli(halsaya)
halsaya=logit-1(Sebuah+b1x1+...+bnxn)
logit-1=exp(X)1+exp(x)

Sekarang apakah itu penting jika Anda memiliki proporsi kegagalan yang rendah (akun buruk)? Tidak juga, selama data sampel Anda seimbang, seperti yang sudah ditunjukkan beberapa orang. Namun, jika data Anda tidak seimbang, maka mendapatkan lebih banyak data mungkin hampir tidak berguna jika ada beberapa efek seleksi yang tidak Anda perhitungkan. Dalam hal ini, Anda harus menggunakan pencocokan, tetapi kurangnya keseimbangan dapat menjadikan pencocokan tidak berguna. Strategi lain sedang mencoba untuk menemukan eksperimen alami, sehingga Anda dapat menggunakan variabel instrumental atau desain ketidakcocokan regresi.

Terakhir, tetapi tidak kalah pentingnya, jika Anda memiliki sampel seimbang atau tidak ada bias seleksi, Anda mungkin khawatir dengan fakta bahwa akun buruk jarang terjadi. Saya tidak berpikir 5% jarang, tetapi untuk berjaga-jaga, lihat di kertas oleh Gary King tentang menjalankan logistik acara langka. Dalam paket Zelig, di R, Anda dapat menjalankan logistik peristiwa langka.


0

Oke jadi saya bekerja di Deteksi Penipuan jadi masalah semacam ini bukan hal baru bagi saya. Saya pikir komunitas pembelajaran mesin memiliki sedikit untuk mengatakan tentang data tidak seimbang (seperti di kelas tidak seimbang). Jadi ada beberapa strategi mudah mati yang saya pikir telah disebutkan, dan beberapa ide yang rapi, dan beberapa jalan keluar di sana. Saya bahkan tidak akan berpura-pura tahu apa artinya ini untuk asimptotik untuk masalah Anda, tetapi sepertinya selalu memberi saya hasil yang wajar dalam regresi logistik. Mungkin ada kertas di sana di suatu tempat, tidak yakin sekalipun.

Berikut adalah opsi Anda seperti yang saya lihat:

  1. Mengabaikan kelas minoritas. Ini sama dengan mengambil sampel kelas minoritas dengan penggantian sampai Anda memiliki jumlah pengamatan yang sama dengan kelas mayoritas. Ada cara-cara mewah untuk melakukan ini sehingga Anda melakukan hal-hal seperti jittering nilai-nilai observasi, sehingga Anda memiliki nilai-nilai yang dekat dengan aslinya tetapi tidak salinan sempurna, dll.
  2. Undersample, ini adalah tempat Anda mengambil subsampel kelas mayoritas. Sekali lagi suka cara untuk melakukan ini sehingga Anda menghapus sampel mayoritas yang paling dekat dengan sampel minoritas, menggunakan algoritma tetangga terdekat dan sebagainya.
  3. Atur ulang kelas. Untuk regresi logistik inilah yang saya lakukan. Pada dasarnya, Anda mengubah fungsi kerugian untuk menghukum kasus minoritas yang tidak diklasifikasikan dengan benar jauh lebih berat daripada kelas mayoritas yang salah diklasifikasikan. Tetapi sekali lagi Anda secara teknis tidak melakukan kemungkinan maksimum.
  4. Simulasikan data. Banyak ide bagus yang pernah saya mainkan di sini. Anda dapat menggunakan SMOTE untuk menghasilkan data, Generatif Adversarial Networks, Autoencoder menggunakan bagian generatif, penduga kepadatan kernel untuk menggambar sampel baru.

Bagaimanapun, saya telah menggunakan semua metode ini, tetapi saya menemukan yang paling sederhana adalah hanya reweight masalah untuk regresi logistik. Satu hal yang dapat Anda lakukan untuk mengecek model Anda adalah mengambil:

-Intercept/beta

Itu harus menjadi batas keputusan (probabilitas 50% berada di kedua kelas) pada variabel ceteris paribus yang diberikan . Jika itu tidak masuk akal, misalnya batas keputusan adalah angka negatif pada variabel yang benar-benar positif, maka Anda akan mendapatkan bias dalam regresi logistik Anda yang perlu diperbaiki.

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.