Regresi Logistik: Cara mendapatkan model jenuh

17

Saya baru saja membaca tentang ukuran penyimpangan untuk regresi logistik. Namun, bagian yang disebut model jenuh tidak jelas bagi saya.

Saya melakukan pencarian Google yang ekstensif tetapi tidak ada hasil yang menjawab pertanyaan saya. Sejauh ini saya menemukan bahwa model jenuh memiliki parameter untuk setiap pengamatan yang akibatnya menghasilkan kesesuaian yang sempurna. Ini jelas bagi saya. Tetapi: lebih jauh nilai yang dipasang (dari model jenuh) sama dengan nilai yang diamati.

Karena dari pengetahuan saya, regresi logistik digunakan untuk klasifikasi, data yang diamati adalah kovariat dengan label tambahan . Namun, ukuran penyimpangan menggunakan probabilitas tetapi bukan label yang sebenarnya. Satu menerapkan probabilitas prediksi yang diprediksi dari regresi logistik versus probabilitas yang diamati. Namun, karena seseorang hanya memberikan label dan bukan probabilitas, saya bingung bagaimana membuat model jenuh dari label ini?y{0,1}

toom
sumber

Jawaban:

17

ysayaysaya1-2catatan(1/1)=00

y = c(1,1,1,0,0,0)
a <- factor(1:length(y)) 
fit <- glm(y~a,family=binomial) 
summary(fit)

Deviance Residuals: 
 0  0  0  0  0  0

Null deviance: 8.3178e+00  on 5  degrees of freedom

Residual deviance: 2.5720e-10  on 0  degrees of freedom

nn(n-1)

> k2
 [1] 1 2 3 4 5 6 1 2 3 4 5 6
Levels: 1 2 3 4 5 6
> y2
 [1] 1 1 1 0 0 0 1 1 1 0 0 0
> fit3 = glm(y2 ~ k2, family = binomial)
> summary(fit3)    

    Null deviance: 1.6636e+01  on 11  degrees of freedom
    Residual deviance: 5.1440e-10  on  6  degrees of freedom

Sebenarnya, ternyata dalam R apa model jenuh tergantung pada bentuk input bahkan jika data persis sama, yang tidak terlalu bagus. Secara khusus, dalam contoh di atas ada 12 pengamatan dan 6 tingkat faktor, sehingga model jenuh seharusnya memiliki 6 parameter, bukan 12. Secara umum, model jenuh didefinisikan sebagai satu di mana jumlah parameter sama dengan jumlah pola kovariat yang berbeda. Saya tidak tahu mengapa kode R "mengakui" bahwa faktor k2 memiliki 6 level yang berbeda, namun model jenuh dilengkapi dengan 12 parameter.

Sekarang, jika kita menggunakan data yang persis sama dalam bentuk "binomial", kita akan mendapatkan jawaban yang benar:

y_yes = 2 * c(1,1,1,0,0,0)
y_no = 2 * c(0,0,0,1,1,1)
x = factor(c(1:6))

> x
[1] 1 2 3 4 5 6
Levels: 1 2 3 4 5 6
> y_yes
[1] 2 2 2 0 0 0
> y_no
[1] 0 0 0 2 2 2

modelBinomialForm = glm(cbind(y_yes, y_no) ~ x, family=binomial)

Deviance Residuals: 
[1]  0  0  0  0  0  0

Coefficients:
              Estimate Std. Error z value Pr(>|z|)
(Intercept)  2.490e+01  1.096e+05       0        1
x2           1.375e-08  1.550e+05       0        1
x3           1.355e-08  1.550e+05       0        1
x4          -4.980e+01  1.550e+05       0        1
x5          -4.980e+01  1.550e+05       0        1
x6          -4.980e+01  1.550e+05       0        1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 1.6636e+01  on 5  degrees of freedom
Residual deviance: 3.6749e-10  on 0  degrees of freedom

Sekarang kita melihat bahwa model jenuh memiliki 6 parameter dan bertepatan dengan model pas. Oleh karena itu, penyimpangan nol pada (6 - 1) = 5 df, dan penyimpangan sisa pada (6-6) = 0 df.

James
sumber
ysaya00