Régression logistique: comment obtenir un modèle saturé

17

Je viens de lire la mesure de la déviance pour la régression logistique. Cependant, la partie qui est appelée modèle saturé n'est pas claire pour moi.

J'ai fait une recherche approfondie sur Google, mais aucun des résultats n'a répondu à ma question. Jusqu'à présent, j'ai découvert qu'un modèle saturé a un paramètre pour chaque observation, ce qui a pour conséquence un ajustement parfait. C'est clair pour moi. Mais: de plus les valeurs ajustées (d'un modèle saturé) sont égales aux valeurs observées.

Étant donné que d'après mes connaissances, la régression logistique est utilisée pour la classification, les données observées données sont des covariables avec des étiquettes supplémentaires . Cependant, la mesure de la déviance utilise des probabilités mais pas les étiquettes réelles. On applique la probabilité prédite calculée de la régression logistique aux probabilités observées. Cependant, comme on n'a donné que des étiquettes au lieu de probabilités, je ne sais pas comment construire un modèle saturé à partir de ces étiquettes?y{0,1}

toom
la source

Réponses:

17

yjeyje1-2Journal(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

En fait, il s'avère qu'en R ce que le modèle saturé est dépend de la forme d'entrée même si les données sont exactement les mêmes, ce qui n'est pas très agréable. En particulier, dans l'exemple ci-dessus, il y a 12 observations et 6 niveaux de facteur, donc le modèle saturé aurait dû avoir 6 paramètres, pas 12. En général, un modèle saturé est défini comme un modèle où le nombre de paramètres est égal au nombre de modèles de covariables distincts. Je ne sais pas pourquoi le code R "a admis" que le facteur k2 a 6 niveaux distincts, et pourtant le modèle saturé était équipé de 12 paramètres.

Maintenant, si nous utilisons exactement les mêmes données sous forme "binomiale", nous obtiendrons une réponse correcte:

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

Nous voyons maintenant que le modèle saturé a 6 paramètres et qu'il coïncide avec le modèle ajusté. Par conséquent, la déviance nulle est sur (6 - 1) = 5 df, et la déviance résiduelle est sur (6-6) = 0 df.

James
la source
yje00