Regressione logistica: come ottenere un modello saturo


17

Ho appena letto della misura della devianza per la regressione logistica. Tuttavia, la parte che si chiama modello saturo non mi è chiara.

Ho fatto una ricerca approfondita su Google ma nessuno dei risultati ha risposto alla mia domanda. Finora ho scoperto che un modello saturo ha un parametro per ogni osservazione che di conseguenza si traduce in un adattamento perfetto. Questo è chiaro per me. Ma: inoltre i valori adattati (di un modello saturo) sono uguali ai valori osservati.

Poiché per quanto ne so, la regressione logistica viene utilizzata per classificare i dati osservati dati sono covariate con etichette aggiuntive . Tuttavia, la misura di devianza utilizza probabilità ma non le etichette effettive. Uno applica la probabilità prevista calcolata della regressione logistica rispetto alle probabilità osservate. Tuttavia, dal momento che uno ha dato solo etichette invece di probabilità sono confuso su come costruire un modello saturo da queste etichette?y{0,1}

Risposte:


17

yioyio1-2log(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

In realtà, si scopre che in R ciò che è il modello saturo dipende dalla forma di input anche se i dati sono esattamente gli stessi, il che non è molto bello. In particolare, nell'esempio sopra ci sono 12 osservazioni e 6 livelli di fattore, quindi il modello saturo dovrebbe avere 6 parametri, non 12. In generale, un modello saturo è definito come uno in cui il numero di parametri è uguale al numero di distinti modelli di covariata. Non ho idea del perché il codice R abbia "ammesso" che il fattore k2 ha 6 livelli distinti, eppure il modello saturo era dotato di 12 parametri.

Ora, se usiamo esattamente gli stessi dati in forma "binomiale", avremo una risposta corretta:

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

Ora vediamo che il modello saturo ha 6 parametri e coincide con il modello montato. Quindi, la deviazione nulla è su (6 - 1) = 5 df e la deviazione residua è su (6-6) = 0 df.


yio00
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.