Regresión logística: cómo obtener un modelo saturado

17

Acabo de leer sobre la medida de desviación para la regresión logística. Sin embargo, la parte que se llama modelo saturado no me resulta clara.

Hice una búsqueda exhaustiva en Google, pero ninguno de los resultados respondió mi pregunta. Hasta ahora descubrí que un modelo saturado tiene un parámetro para cada observación que como consecuencia resulta en un ajuste perfecto. Esto está claro para mí. Pero: además, los valores ajustados (de un modelo saturado) son iguales a los valores observados.

Desde mi conocimiento, la regresión logística se usa para la clasificación, los datos observados dados son covariables con etiquetas adicionales . Sin embargo, la medida de desviación emplea probabilidades pero no las etiquetas reales. Uno aplica la probabilidad predicha calculada de la regresión logística versus las probabilidades observadas. Sin embargo, dado que uno solo ha dado etiquetas en lugar de probabilidades, ¿estoy confundido sobre cómo construir un modelo saturado a partir de estas etiquetas?y{0 0,1}

Toom
fuente

Respuestas:

17

yiyi12log(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(n1)

> 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 realidad, resulta que en R cuál es el modelo saturado depende de la forma de entrada, incluso si los datos son exactamente los mismos, lo que no es muy bueno. En particular, en el ejemplo anterior hay 12 observaciones y 6 niveles de factores, por lo que el modelo saturado debería haber tenido 6 parámetros, no 12. En general, un modelo saturado se define como uno donde el número de parámetros es igual al número de Distintos patrones covariables. No tengo idea de por qué el código R "admitió" que el factor k2 tiene 6 niveles distintos, y sin embargo, el modelo saturado estaba equipado con 12 parámetros.

Ahora, si usamos exactamente los mismos datos en forma "binomial", obtendremos una respuesta correcta:

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

Ahora vemos que el modelo saturado tiene 6 parámetros y coincide con el modelo ajustado. Por lo tanto, la desviación nula está activada (6 - 1) = 5 df, y la desviación residual está activada (6-6) = 0 df.

James
fuente
yi00 0