Saya tahu saya kehilangan sesuatu dalam pemahaman saya tentang regresi logistik, dan akan sangat menghargai bantuan apa pun.
Sejauh yang saya mengerti, regresi logistik mengasumsikan bahwa probabilitas hasil '1' diberikan input, adalah kombinasi linear dari input, melewati fungsi invers-logistik. Ini dicontohkan dalam kode R berikut:
#create data:
x1 = rnorm(1000) # some continuous variables
x2 = rnorm(1000)
z = 1 + 2*x1 + 3*x2 # linear combination with a bias
pr = 1/(1+exp(-z)) # pass through an inv-logit function
y = pr > 0.5 # take as '1' if probability > 0.5
#now feed it to glm:
df = data.frame(y=y,x1=x1,x2=x2)
glm =glm( y~x1+x2,data=df,family="binomial")
dan saya mendapatkan pesan kesalahan berikut:
Pesan peringatan: 1: glm.fit: algoritma tidak konvergen 2: glm.fit: probabilitas dipasang secara numerik 0 atau 1 terjadi
Saya telah bekerja dengan R untuk beberapa waktu sekarang; cukup untuk mengetahui bahwa mungkin saya yang harus disalahkan .. apa yang terjadi di sini?
Jawaban:
Tidak. Variabel respons adalah variabel acak Bernoulli yang mengambil nilai dengan probabilitas . 1 p r ( i )ysaya 1 p r ( i )
sumber
LogisticRegression cocok untuk penyesuaian jika probabilitas atau proporsi disediakan sebagai target, bukan hanya hasil 0/1.
Di sini kita memiliki tiga target potensial untuk regresi logistik.
p
yang merupakan proporsi sebenarnya / target / probabilitas,pnoisy
yang p dengan noise normal ditambahkan dalam skala log odds, dandichot
, yang pnoisy diperlakukan sebagai parameter ke file binomial PDF, dan disampel dari situ. Anda harus menguji semua 3 - Saya menemukan beberapa implementasi LR open source tidak cocokp
.Bergantung pada aplikasi Anda, Anda dapat memilih pnoisy.
Dalam praktiknya, Anda juga harus mempertimbangkan bagaimana suara itu kemungkinan akan dibentuk dalam aplikasi target Anda dan mencoba untuk menirunya.
sumber