Bagaimana cara saya menangani variabel prediktor dari distribusi yang berbeda dalam regresi logistik?

8

Saya menggunakan regresi logistik untuk memprediksi y yang diberikan x1 dan x2:

z = B0 + B1 * x1 + B2 * x2
y = e^z / (e^z + 1)

Bagaimana seharusnya regresi logistik menangani kasus-kasus di mana variabel saya memiliki skala yang sangat berbeda? Apakah orang pernah membuat model regresi logistik dengan koefisien orde tinggi untuk variabel? Saya membayangkan sesuatu seperti ini (untuk dua variabel):

z = B0 + B1 * x1 + B2 * x1^2 + B3 * x2 + B4 * x2^2

Atau, apakah jawaban yang tepat untuk sekadar menormalkan, menstandarkan, atau mengubah nilai x1 dan x2 sebelum menggunakan regresi logistik?

James Thompson
sumber

Jawaban:

6

Tentu saja Anda dapat menormalkan parameter Anda, ini juga akan meningkatkan kecepatan algoritma pembelajaran.

Untuk memiliki sebanding pada akhir pelaksanaan algoritma, Anda harus, untuk setiap fitur , menghitung rata-rata dan kisarannya . Kemudian Anda mengubah setiap nilai , yaitu nilai fitur untuk catatan , dengan: Sekarang nilai berada pada interval [- 1,1], sehingga Anda dapat membandingkan dengan lebih percaya diri dan dengan demikian rasio odds Anda. Ini juga mempersingkat waktu untuk menemukan setβxiμiri=maximinir[xi]xir

r[xi]μiri
r[xi]ββjika Anda menggunakan gradient descent. Hanya ingat untuk menormalkan fitur Anda jika Anda ingin memprediksi kelas catatan baru .r

Anda juga dapat menambahkan fitur pesanan lebih tinggi tetapi ini menyebabkan overfitting. Biasanya, selama Anda menambahkan lebih banyak parameter lebih baik untuk menambahkan regularisasi, yang mencoba untuk menghindari overfitting dengan mengurangi besarnya . Ini diperoleh dengan menambahkan istilah ini ke fungsi biaya regresi logistik mana menyelaraskan kekuatan regularisasi.β

λi=0nβi2
λ

Saya akan menyarankan untuk melihat ke kelas Stanford tentang pembelajaran mesin di sini: http://www.ml-class.org/course/video/preview_list , Unit 6 dan 7.

Simone
sumber
hanya untuk memperjelas, ketika Anda mengatakan untuk menormalkan rekor r baru', Anda menggunakan tua dan berasal dari data asli, yang benar? Terima kasihmuiri
FMZ
Ya itu. Anda harus menggunakan dan dihitung pada set latihan untuk menormalkan nilai-nilai catatan baru. Anda mungkin juga menggunakan deviasi standar fitur daripada . μirixiri
Simone
6

@Simone membuat beberapa poin bagus, jadi saya hanya akan memberikan beberapa informasi tambahan. Meskipun normalisasi dapat membantu dengan hal-hal seperti kecepatan, regresi logistik tidak membuat asumsi tentang distribusi variabel prediktor Anda. Dengan demikian, Anda tidak perlu menormalisasi. Kedua, sementara menambahkan istilah kuadrat dapat menyebabkan overfitting (dan Anda harus berhati-hati tentang hal itu) itu diizinkan. Maksudnya adalah bahwa probabilitas keberhasilan lebih tinggi di tengah kisaran prediktor daripada di ekstrem (atau sebaliknya).

gung - Pasang kembali Monica
sumber
4

Secara teori, skala input Anda tidak relevan dengan regresi logistik. Anda dapat "secara teoritis" mengalikan dengan dan perkiraan untuk akan menyesuaikan. Itu akan menjadi kali lebih kecil dari yang asli , karena properti invarian dari MLEs.X110101010β110101010β1

Tetapi cobalah membuat R untuk melakukan regresi yang disesuaikan di atas - itu akan membuat takut (bahkan tidak akan dapat membangun matriks X).

Ini sedikit seperti algoritma dekomposisi cholesky untuk menghitung akar kuadrat matriks. Ya, dalam matematika yang tepat , dekomposisi cholesky tidak pernah melibatkan mengambil akar kuadrat dari angka negatif, tetapi melengkapi kesalahan, dan aritmatika floating point dapat menyebabkan kasus-kasus seperti itu.

Anda dapat mengambil setiap kombinasi linear dari variabel X, dan nilai-nilai diprediksi akan sama.

Jika kita menerima saran @ simone, dan menggunakan variabel X yang diskalakan ulang untuk menyesuaikan model . Tetapi kita dapat menggunakan properti invarian dari MLE untuk mendapatkan beta yang kita inginkan, setelah menggunakan variabel input X yang stabil secara numerik. Mungkin saja beta pada skala asli mungkin lebih mudah diinterpretasikan daripada beta pada transformasi @ simone. Jadi, kita memiliki telah ditransformasi ( observasi ke- untuk variabel ), sebut saja , yang didefinisikan oleh:xijijx~ij

x~ij=ajxij+bj

Pilihan @ simone sesuai dengan dan (menggunakan untuk menunjukkan statistik urutan ke- dari variabel , yaitu ). The dan dapat dianggap sebagai parameter algoritma (dipilih untuk membuat algoritma lebih stabil dan / atau berjalan lebih cepat). Kami kemudian memasukkan regresi logistik menggunakan , dan mendapatkan taksiran parameter . Jadi kita menulis prediktor linier:aj=1x[N]jx[1]jbj=x¯jx[N]jx[1]jx[i]jijx[N]jx[N1]jx[1]jajbjx~ijβ~j

zi=β~0+jx~ijβ~j

Sekarang gantikan persamaan untuk dan Anda mendapatkan:x~ij

zi=β~0+j(ajxij+bj)β~j=β0+jxijβj
Di mana
β0=β~0+jbjβ~jβj=ajβ~j

Anda dapat melihat bahwa secara teoritis, parameter tidak membuat perbedaan sama sekali: pilihan apa pun (selain dari ) akan mengarah pada kemungkinan yang sama, karena prediktor linier tidak berubah. Ia bahkan bekerja untuk transformasi linier yang lebih rumit, seperti merepresentasikan matriks X dengan komponen utamanya (yang melibatkan rotasi). Jadi kita dapat mengubah hasil untuk mendapatkan beta yang kita inginkan untuk interpretasi.aj,bjaj=0

probabilityislogic
sumber
Bukti teoretis yang bagus. Tanpa normalisasi, rasio odds memiliki arti yang sangat praktis. Namun, kadang-kadang praktisi menggunakan rasio odds untuk menilai signifikansi fitur itu, dan entah bagaimana menyesatkan karena fitur mungkin signifikan tetapi juga bervariasi pada kisaran besar dan karenanya memiliki rasio odds yang rendah. Dengan normalisasi, mereka langsung dapat dibandingkan bahkan jika kehilangan makna praktisnya. Tentu saja, uji statistik harus dilakukan untuk menilai signifikansi fitur.
Simone