Regresi logistik: memaksimalkan positif sejati - positif palsu

9

Saya memiliki model regresi logistik (cocok melalui glmnet di R dengan regularisasi jaring elastis), dan saya ingin memaksimalkan perbedaan antara positif benar dan positif palsu. Untuk melakukan ini, prosedur berikut muncul dalam pikiran:

  1. Sesuai dengan model regresi logistik standar
  2. Dengan menggunakan ambang prediksi 0,5, identifikasi semua prediksi positif
  3. Tetapkan bobot 1 untuk pengamatan yang diprediksi secara positif, 0 untuk semua lainnya
  4. Fit model regresi logistik tertimbang

Apa yang akan menjadi kelemahan dengan pendekatan ini? Apa cara yang benar untuk melanjutkan masalah ini?

Alasan ingin memaksimalkan perbedaan antara jumlah positif sejati dan negatif palsu adalah karena desain aplikasi saya. Sebagai bagian dari proyek kelas, saya membangun partisipan otonom di pasar online - jika model saya memperkirakan ia dapat membeli sesuatu dan menjualnya nanti dengan harga yang lebih tinggi, ia menempatkan penawaran. Saya ingin tetap berpegang pada regresi logistik dan hasil keluaran biner (menang, kalah) berdasarkan biaya tetap dan kenaikan harga satuan (saya mendapatkan atau kehilangan jumlah yang sama pada setiap transaksi). Positif palsu menyakiti saya karena itu berarti saya membeli sesuatu dan tidak dapat menjualnya dengan harga lebih tinggi. Namun, negatif palsu tidak menyakiti saya (hanya dalam hal biaya peluang) karena itu hanya berarti jika saya tidak membeli, tetapi jika saya membelinya, saya akan menghasilkan uang. Demikian pula,

Saya setuju bahwa cut-off 0,5 sepenuhnya arbitrer, dan ketika saya mengoptimalkan model dari langkah 1 pada ambang prediksi yang menghasilkan perbedaan tertinggi antara positif benar / salah, ternyata mendekati 0,4. Saya pikir ini karena sifat data saya yang miring - rasio antara negatif dan positif adalah sekitar 1: 3.

Saat ini, saya mengikuti langkah-langkah berikut:

  1. Membagi data menjadi pelatihan / tes
  2. Model yang sesuai pada pelatihan, membuat prediksi dalam set tes dan menghitung perbedaan antara positif benar / salah
  3. Fit model on full, buat prediksi dalam set uji dan hitung selisih antara true / false positif

Perbedaan antara benar / salah positif lebih kecil pada langkah # 3 daripada di langkah # 2, meskipun set pelatihan menjadi bagian dari set lengkap. Karena saya tidak peduli apakah model di # 3 memiliki lebih banyak negatif yang benar dan negatif yang lebih sedikit, apakah ada yang bisa saya lakukan tanpa mengubah fungsi kemungkinan itu sendiri?

tmakino
sumber
Sebelum bertanya apa yang menjadi kekurangan dengan pendekatan ini, mungkin Anda harus menulis mengapa pendekatan ini harus bekerja, menurut pendapat Anda. Menurut Anda mengapa langkah 2-4 meningkatkan hasil?
user31264
Juga, apakah saya benar bahwa pada akhirnya Anda menjatuhkan model dari langkah 1 dan hanya menggunakan model dari langkah 4?
user31264
Ya, saya berencana menggunakan model yang dilengkapi dengan seluruh kumpulan data, tetapi tidak masuk akal untuk melakukannya karena kinerjanya kurang baik dengan model yang dilengkapi dengan set pelatihan.
tmakino
2
Saya tidak memiliki sumber tentang ini sekarang ... tetapi apakah Anda sadar Anda dapat mengoptimalkan model regresi logistik untuk memaksimalkan Area Di Bawah Kurva (Karakteristik Pengoperasian Penerima) (atau AUC)? Tidak perlu menemukan kembali roda.
AdamO
2
Apa yang saya tidak mengerti di sini adalah mengapa Anda belum memasukkan apa pun tentang harga yang diperkirakan di masa depan dalam model Anda, Anda juga belum memasukkan besarnya laba / rugi ke dalam optimasi. Tentunya keputusan untuk "membeli" yang menyebabkan kerugian 99% jauh lebih buruk daripada keputusan untuk "membeli" yang mengarah pada kerugian 1%, meskipun keduanya positif palsu.
probabilityislogic

Jawaban:

24

Anda sepertinya tidak menginginkan regresi logistik sama sekali. Apa yang Anda katakan adalah "Saya ingin memaksimalkan perbedaan antara positif sejati dan positif palsu." Itu adalah fungsi objektif yang baik, tetapi ini bukan regresi logistik. Mari kita lihat apa itu.

Pertama, beberapa notasi. Variabel dependen adalah :Y iYi

Yi={1Purchase i was profitable0Purchase i was un-profitable

Variabel independen (barang yang Anda gunakan untuk mencoba memprediksi apakah Anda harus membeli) akan menjadi (vektor). Parameter yang Anda coba perkirakan akan menjadi (vektor). Anda akan memprediksi pembelian ketika . Untuk pengamatan , Anda memperkirakan membeli ketika atau ketika fungsi indikator . β X i β > 0 i X i β > 0 1 X i β > 0 = 1XiβXiβ>0iXiβ>01Xiβ>0=1

Benar-benar positif terjadi pada pengamatan ketika dan . Sebuah false positive pada pengamatan terjadi ketika dan . Anda ingin menemukan yang memaksimalkan positif benar dikurangi positif palsu, atau: Y i = 1 1 X i β > 0 = 1 i Y i = 0 1 X i β > 0 = 1 β m a x βiYi=11Xiβ>0=1iYi=01Xiβ>0=1β

maxβi=1NYi1Xiβ>0i=1N(1Yi)1Xiβ>0

Ini bukan fungsi objektif yang sangat lazim untuk memperkirakan model respons diskrit, tetapi tetap bersamaku sementara saya melakukan sedikit aljabar pada fungsi objektif:

i=1NYi1Xiβ>0i=1N(1Yi)1Xiβ>0=i=1NYi1Xiβ>0i=1N1Xiβ>0+i=1NYi1Xiβ>0=i=1NYi1Xiβ>0i=1N1Xiβ>0+i=1NYi1Xiβ>0+i=1N1i=1N1+i=1NYii=1NYi=i=1NYi1Xiβ>0+i=1N(1Yi)(11Xiβ>0)i=1N1+i=1NYi

OK, sekarang perhatikan bahwa dua istilah terakhir dalam jumlah itu bukan fungsi , jadi kita bisa mengabaikannya dalam maksimalisasi. Akhirnya, kami baru saja menunjukkan bahwa masalah yang ingin Anda selesaikan, "maksimalkan perbedaan antara true positive dan false positive" sama dengan masalah ini: β

maxβi=1NYi1Xiβ>0+i=1N(1Yi)(11Xiβ>0)

Sekarang, estimator itu punya nama! Ini bernama penaksir skor maksimum. Ini adalah cara yang sangat intuitif untuk memperkirakan parameter model respons diskrit. Parameter dipilih untuk memaksimalkan jumlah prediksi yang benar. Istilah pertama adalah jumlah positif sejati, dan istilah kedua adalah jumlah negatif sejati.

Ini adalah cara yang cukup baik untuk memperkirakan model respon diskrit (biner). Estimator konsisten, misalnya. (Manski, 1985, J dari Econometrics) Ada beberapa keanehan pada estimator ini. Pertama, tidak unik dalam sampel kecil. Setelah Anda menemukan satu yang memecahkan maksimisasi, maka yang lain yang membuat prediksi yang sama persis di dataset Anda akan menyelesaikan maksimalisasi --- jadi, banyak yang dekat dengan yang Anda temukan. Selain itu, penaksir tidak asimtotik normal, dan konvergen lebih lambat dari biasanya penduga kemungkinan maksimum --- cube root bukannya rootβββNNkonvergensi. (Kim dan Pollard, 1990, Ann of Stat) Akhirnya, Anda tidak dapat menggunakan bootstrap untuk melakukan inferensi padanya. (Abrevaya & Huang, 2005, Econometrica) Meskipun demikian, ada beberapa makalah yang menggunakan penduga ini --- ada yang menyenangkan tentang memprediksi hasil dalam turnamen bola basket NCAA oleh Caudill, International Journal of Forecasting, April 2003, v. 19 iss. 2, hlm. 313-17.

Penduga yang mengatasi sebagian besar masalah ini adalah penduga skor maksimum smoothed Horowitz (Horowitz, 1992, Econometrica dan Horowitz, 2002, J of Econometrics). Ini memberikan estimator unik root- konsisten, normal asimptotik, dan dapat di-bootstrap. Horowitz memberikan contoh kode untuk mengimplementasikan estimatornya di halaman webnya.N

Tagihan
sumber
Terima kasih telah menyertakan aljabar untuk menyamakan fungsi biaya saya dengan penduga skor maksimum. Dengan fungsi indikator yang diberikan untuk , apakah ini berarti bahwa saya akan selalu mengklasifikasikan sebagai positif dan sebagai negatif? Juga, apakah p (keluaran model) dihitung menggunakan fungsi logistik dengan input ? Pendekatan saat ini yang saya gunakan adalah fungsi biaya AUC, kemudian mengoptimalkan pada ambang prediksi untuk menemukan nilai dengan selisih tertinggi antara true positive dan false positive. Saya mengerti bahwa jawaban Anda secara eksplisit menemukan perbedaan maksimumβTx>0p>0.5p<=0.5βTx
tmakino
(lanjutan) dengan mendefinisikannya dalam fungsi biaya (dan menetapkan ambang prediksi pada 0,5), sehingga melewatkan langkah menengah yang telah saya ambil. Namun, AUC sudah ada dalam paket regresi yang saya gunakan (glmnet) sedangkan esimator skor maksimum tidak. Apakah Anda pikir pendekatan saya masuk akal mengingat tujuan saya?
tmakino
1
Sayangnya, saya tidak terlalu terbiasa dengan metode AUC, jadi saya tidak bisa mengatakan seberapa tepat metode ini di sini. Dalam penduga skor maksimum, sebenarnya tidak ada , karena Anda tidak mengasumsikan model logistik. Anda hanya memutuskan untuk memprediksi 1 saat dan kemudian menemukan yang terbaik . X i β > 0 βpXiβ>0β
Bill
15

Ada beberapa hal yang salah dengan pendekatan itu, termasuk:

  • Mencari cutoff untuk probabilitas berkelanjutan
  • Menggunakan cutoff sewenang-wenang 0,5
  • Dengan asumsi bahwa biaya "false positive" dan "false negative" adalah sama untuk semua subjek
  • Menggunakan bobot yang tidak fraksional
  • Menggunakan bobot yang diperkirakan
  • Mengesampingkan estimasi kemungkinan maksimum
  • Tidak menggunakan teori keputusan Bayes optimal, yang menentukan bahwa keputusan optimal didasarkan pada informasi lengkap (bukan pada apakah sesuatu melebihi sesuatu yang lain) dan fungsi utilitas / kerugian / biaya
Frank Harrell
sumber
1
Terima kasih, adakah cara untuk mencapai ini sambil tetap berpegang pada regresi logistik (yaitu tanpa menyentuh fungsi kemungkinan)?
tmakino
Itu tergantung pada apa "ini". Apa tujuan akhir dan bagaimana model akan digunakan?
Frank Harrell
Saya mengedit pertanyaan saya untuk memberikan perincian tentang apa yang ingin saya capai.
tmakino
1
Kecuali saya melewatkan sesuatu, tidak ada yang Anda tambahkan akan menyiratkan penggunaan cutpoint. Perhatikan bahwa probabilitas yang diprediksi memberikan tingkat kesalahan sendiri.
Frank Harrell
8

Pendekatan terbaik untuk mencapai apa yang Anda coba gambarkan mungkin adalah secara langsung mengoptimalkan parameter regresi logistik dengan fungsi kerugian AUC. Buku teks "Metode Statistik dalam Kedokteran Diagnostik" oleh Zhou menjelaskan metode ini.

AUC (area di bawah kurva karakteristik operasi penerima - atau ROC) secara kasar ditafsirkan sebagai probabilitas bahwa "case" yang disampel secara acak memiliki nilai marker yang lebih tinggi daripada "control". Ini adalah ukuran diskriminasi model, atau kemampuannya untuk mengklasifikasikan hasil dengan benar. ROC adalah kurva dalam bidang satuan yang menunjukkan sensitivitas versus spesifisitas 1 untuk semua nilai marker yang mungkin (hasil yang sesuai) dalam model regresi.

Dengan menggunakan formulasi tradisional dari model regresi logistik,

logit Pr(Y=1|X)=α+βX

dengan rasio odds log untuk parameter model, Anda dapat secara kasar menentukan fungsi kerugian berbasis AUC untuk mendapatkan parameter optimal. Tidak seperti regresi logistik berbasis kemungkinan, regresi AUC tidak teratur dan dapat konvergen ke maxima lokal di ruang parameter.

AdamO
sumber
1
Saya akan berpikir AUC tidak terbaik di sini karena ada kerugian kecil untuk negatif palsu, tetapi kerugian besar untuk positif palsu.
probabilityislogic
Nah, masalah sebenarnya adalah bahwa OP memiliki hasil yang berkelanjutan (ROI) dan dikotomisasi sebagai kerugian / keuntungan. Tapi mengesampingkan rambut, dengan regresi ROC secara umum "cut-off marker area" memang diperhitungkan untuk AUC. Anda dapat menggunakan AUC parsial jika Anda menentukan apa yang dianggap sebagai nilai marker yang bermakna versus bodoh, dan regresi AUC parsial memiliki semua kemampuan kinerja yang sama (dan masalah).
AdamO