28 votos

Importancia del predictor categórico en la regresión logística

Tengo problemas para interpretar los valores z de las variables categóricas en la regresión logística. En el ejemplo siguiente tengo una variable categórica con 3 clases y según el valor z, la CLASE2 podría ser relevante mientras que las otras no lo son.

Pero ahora, ¿qué significa esto?

¿Que podría fusionar las otras clases en una sola?
¿Que toda la variable podría no ser un buen predictor?

Esto es sólo un ejemplo y los valores reales de z aquí no son de un problema real, sólo tengo dificultades sobre su interpretación.

           Estimate    Std. Error  z value Pr(>|z|)    
CLASS0     6.069e-02  1.564e-01   0.388   0.6979    
CLASS1     1.734e-01  2.630e-01   0.659   0.5098    
CLASS2     1.597e+00  6.354e-01   2.514   0.0119 *

64voto

mehturt Puntos 13

La siguiente explicación es no se limita a la regresión logística pero se aplica igualmente en la regresión lineal normal y en otros MLG. Por lo general, R excluye un nivel del categórico y los coeficientes denotan la diferencia de cada clase con esta clase de referencia (o a veces llamada clase de referencia) (esto se llama codificación ficticia o contrastes de tratamiento en R , ver aquí para un excelente resumen de las diferentes opciones de contraste). Para ver los contrastes actuales en R , tipo options("contrasts") . Normalmente, R ordena los niveles de la variable categórica alfabéticamente y toma el primero como clase de referencia. Esto no siempre es óptimo y puede cambiarse escribiendo (aquí, estableceríamos la clase de referencia como "c" en la nueva variable) new.variable <- relevel(old.variable, ref="c") . Para cada coeficiente de cada nivel de la variable categórica, un Prueba de Wald se realiza para probar si la diferencia por pares entre el coeficiente de la clase de referencia y la otra clase es diferente de cero o no. Esto es lo que el $z$ y $p$ -valores en la tabla de regresión son. Si sólo una clase categórica es significativa, esto hace no implican que toda la variable carece de sentido y debe eliminarse del modelo. Puede comprobar el efecto global de la variable realizando un prueba de razón de verosimilitud : ajustan dos modelos, uno con y otro sin la variable y el tipo anova(model1, model2, test="LRT") en R (véase el ejemplo siguiente). He aquí un ejemplo:

mydata <- read.csv("https://stats.idre.ucla.edu/stat/data/binary.csv")

mydata$rank <- factor(mydata$rank)

my.mod <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")

summary(my.mod)

Coefficients:
             Estimate Std. Error z value Pr(>|z|)    
(Intercept) -3.989979   1.139951  -3.500 0.000465 ***
gre          0.002264   0.001094   2.070 0.038465 *  
gpa          0.804038   0.331819   2.423 0.015388 *  
rank2       -0.675443   0.316490  -2.134 0.032829 *  
rank3       -1.340204   0.345306  -3.881 0.000104 ***
rank4       -1.551464   0.417832  -3.713 0.000205 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

El nivel rank1 se ha omitido y cada coeficiente de rank denota la diferencia entre el coeficiente de rank1 y el correspondiente rank nivel. Así, la diferencia entre el coeficiente de rank1 y rank2 sería $-0.675$ . El coeficiente de rank1 es simplemente la intercepción. Así que el verdadero coeficiente de rank2 sería $-3.99 - 0.675 = -4.67$ . Las pruebas de Wald prueban aquí si la diferencia entre el coeficiente de la clase de referencia (aquí rank1 ) y los niveles correspondientes difieren de cero. En este caso, tenemos pruebas de que los coeficientes de todas las clases difieren del coeficiente de rank1 . También se puede ajustar el modelo sin un intercepto añadiendo - 1 a la fórmula del modelo para ver directamente todos los coeficientes:

my.mod2 <- glm(admit ~ gre + gpa + rank - 1, data = mydata, family = "binomial")

summary(my.mod2) # no intercept model

Coefficients:
       Estimate Std. Error z value Pr(>|z|)    
gre    0.002264   0.001094   2.070 0.038465 *  
gpa    0.804038   0.331819   2.423 0.015388 *  
rank1 -3.989979   1.139951  -3.500 0.000465 ***
rank2 -4.665422   1.109370  -4.205 2.61e-05 ***
rank3 -5.330183   1.149538  -4.637 3.54e-06 ***
rank4 -5.541443   1.138072  -4.869 1.12e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Obsérvese que el intercepto ha desaparecido y que el coeficiente de rank1 es exactamente el intercepto del primer modelo. En este caso, la prueba de Wald no comprueba la diferencia entre pares de coeficientes, sino la hipótesis de que cada coeficiente individual es cero. De nuevo, tenemos pruebas de que cada coeficiente de rank difiere de cero. Por último, para comprobar si toda la variable rank mejora el ajuste del modelo, ajustamos un modelo con ( my.mod1 ) y una sin la variable rank ( my.mod2 ) y realizar una prueba de razón de verosimilitud. Esto prueba la hipótesis de que todos los coeficientes de rank son cero:

my.mod1 <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial") # with rank
my.mod2 <- glm(admit ~ gre + gpa, data = mydata, family = "binomial") # without rank

anova(my.mod1, my.mod2, test="LRT")

Analysis of Deviance Table

Model 1: admit ~ gre + gpa + rank
Model 2: admit ~ gre + gpa
  Resid. Df Resid. Dev Df Deviance  Pr(>Chi)    
1       394     458.52                          
2       397     480.34 -3  -21.826 7.088e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

La prueba de la razón de verosimilitud es altamente significativa y concluiríamos que la variable rank debe permanecer en el modelo.

Este puesto también es muy interesante.

0 votos

Respuesta muy informativa. Una pregunta rápida: ¿qué pasa si sólo tenemos el rango como predictor? Para realizar la prueba LRT, la nula sería admit ~ 1 vs admit ~ rank - 1 ?

1 votos

@NULL Sí, ya sea el nulo contra el admit~rank o admit~rank - 1 son equivalentes en cuanto al ajuste.

0 votos

Genial, ¡gracias! Otra pregunta rápida: cuando estoy interesado en realizar una prueba de Wald de una cola de los coeficientes de la variable categórica (sin comparar con la línea de base, es decir, sin intercepción), ¿el efecto de otros predictores como gre y gpa ¿se ven afectados por esta falta de inclusión de la interceptación?

10voto

RGA Puntos 113

El $z$ -El valor es simplemente el estadístico de una prueba estadística, así que si tiene problemas para interpretarlo, el primer paso es averiguar cuál es la hipótesis nula. La hipótesis nula para la prueba de la CLASE0 es que su coeficiente es 0. El coeficiente de la CLASE0 es que la diferencia en el log(probabilidades) entre la CLASE0 y la clase de referencia (¿CLASE3?) es cero, o lo que es lo mismo, que el ratio de las probabilidades para la CLASE0 y la clase de referencia es 1. En otras palabras, que no hay diferencia en las probabilidades de éxito entre la CLASE0 y la clase de referencia.

Entonces, ¿un coeficiente no significativo significa que se pueden fusionar las categorías? No. En primer lugar, no significativo significa que no podemos rechazar la hipótesis de que no hay diferencias, pero eso no significa que no existan tales diferencias. Una ausencia de pruebas no es lo mismo que una prueba de ausencia. En segundo lugar, la fusión de categorías, especialmente la de referencia, cambia la interpretación de todos los demás coeficientes. Que eso tenga o no sentido depende de lo que representen esas diferentes clases.

¿Significa eso que toda la variable categórica es un "mal" predictor (no significativo)? No, para eso habría que realizar una prueba simultánea para todos los términos de la clase.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X