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:
- Sesuai dengan model regresi logistik standar
- Dengan menggunakan ambang prediksi 0,5, identifikasi semua prediksi positif
- Tetapkan bobot 1 untuk pengamatan yang diprediksi secara positif, 0 untuk semua lainnya
- 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:
- Membagi data menjadi pelatihan / tes
- Model yang sesuai pada pelatihan, membuat prediksi dalam set tes dan menghitung perbedaan antara positif benar / salah
- 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?
sumber
Jawaban:
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 iYsaya
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 = 1Xsaya β Xsayaβ> 0 saya Xsayaβ> 0 1Xsayaβ> 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 βsaya Ysaya= 1 1Xsayaβ> 0= 1 saya Ysaya= 0 1Xsayaβ> 0= 1 β
Ini bukan fungsi objektif yang sangat lazim untuk memperkirakan model respons diskrit, tetapi tetap bersamaku sementara saya melakukan sedikit aljabar pada fungsi objektif:
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:β
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β β β N N konvergensi. (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
sumber
Ada beberapa hal yang salah dengan pendekatan itu, termasuk:
sumber
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,
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.
sumber