2 votos

Multicolinealidad y separación perfecta en la regresión logística: ¿qué debo hacer?

Tengo un conjunto de datos compuesto por 61 variables una cualitativa y =(0 o 1) y otras 60 variables cuantitativas y 40000 observaciones. Quiero hacer la regresión logística, Lda, svm, rpart del modelo y~.

Cuando uso el vif función del paquete car muestra la multicolinealidad. Lo siguiente es una parte del resultado:

>  vif(glm(y~., data=mydat,family=binomial))
>>   n1                 direc1            n2        direc2            n3 
>>  2.25               1.87               3.28        2.35           3.27 
>>  direc3           P1                  P2          P3                 P4 
>> 2.49              158.87             190.24        143.28           13.74 
>>    P5            P6                   P7             P8                 P9 
>>  119.93        212.23               616.43          146.59           169.48 

¿Debo mantener sólo n1 ,direc1, n2 ,direc2 , n3 ,direc3 en el modelo? ¿O hay otra solución al problema?


De hecho, he encontrado esto en algunas páginas de Internet: "la separación perfecta está relacionada con la colinealidad".

Quiero abordar ambos problemas. He leído que la colinealidad entre variables da lugar a estimaciones erróneas de los coeficientes en un modelo de regresión logística, por ejemplo.

Y la separación perfecta también da estimaciones erróneas de los coeficientes. Realmente estoy buscando el mejor modelo de predicción durante un mes, pero no he encontrado uno bueno hasta ahora debido a estos problemas.

Para resolver el problema de la multicolinealidad hice un PCA, pero no sabía cómo utilizar los resultados obtenidos en la regresión. De hecho, la imagen de abajo no mostraba una separación entre las dos clases (0 y 1). ¿Cómo puedo interpretarlo? ¿Qué comando en R me permite obtener las nuevas variables para utilizarlas en las regresiones? muchas gracias de antemano por cualquier ayuda enter image description here

3voto

EdM Puntos 5716

Si pretende utilizar su modelo para predecir el estado normal/anormal en un nuevo conjunto de pacientes, es posible que no tenga que hacer nada respecto a la separación perfecta o la multicolinealidad.

Digamos que tienes una variable que predice perfectamente el estado normal/anormal. Un modelo basado en ese predictor mostraría una separación perfecta, pero ¿no querrías seguir utilizándolo?

Sin embargo, su separación perfecta podría provenir del gran número de variables predictoras, lo que podría hacer que la separación perfecta fuera casi inevitable. Entonces, aunque ninguna variable en particular esté perfectamente relacionada con el estado de la enfermedad, tendrá problemas de convergencia numérica de su modelo, y las combinaciones particulares de variables que predicen perfectamente en este conjunto de datos podrían no aplicarse bien a uno nuevo. En ese caso, esta página proporciona una ayuda concisa sobre cómo proceder. Además, este pregunta y respuesta de @hxd1011 muestra que la regresión de cresta (bajo el nombre de "regularización L2" en esa página) puede resolver el problema de la separación perfecta.

Esta página es una buena introducción a la multicolinealidad en el contexto de la regresión logística. La multicolinealidad plantea problemas para obtener estimaciones precisas de los coeficientes correspondientes a determinadas variables. Con un conjunto de variables colineales, todas ellas relacionadas con el estado de la enfermedad, es difícil saber con exactitud el crédito que debe recibir cada una de ellas individualmente. Sin embargo, si no se preocupa por el crédito que hay que dar a cada una, pueden funcionar muy bien juntas para la predicción. En general, se suele perder en las predicciones si se descartan los predictores, incluso los que no cumplen las pruebas individuales de "significación estadística". La regresión Ridge tiende a tratar (y a penalizar) conjuntos de variables correlacionadas juntas, proporcionando un enfoque de principios para la multicolinealidad.

La regresión de cresta (como la proporcionada, por ejemplo, por el glmnet en R) podría resolver tanto el problema de la separación perfecta como el de la multicolinealidad, especialmente si su interés es la predicción. Esta respuesta muestra un ejemplo de uso de glmnet funciones para la regresión logística. Su ejemplo es para LASSO, pero usted simplemente establece el valor del parámetro alpha=0 para la cresta en su lugar. Como otro ejemplo, ISLR que comienza en la página 251 tiene un caso trabajado de regresión de cresta para un modelo lineal estándar; especifique el parámetro family="binomial" en lugar de la regresión logística.

Sin embargo, según mi experiencia, este tipo de modelos en la ciencia clínica a veces no se utilizan para predecir nuevos casos, sino para intentar argumentar que ciertas variables son las que más se relacionan con el estado de la enfermedad en general. Creo que muchos de los comentarios a tu pregunta apuntaban a esa posibilidad. La tentación es que las variables incluidas en el "mejor modelo" para explicar los datos actuales se toman entonces como las más importantes en general. Esa puede ser una interpretación peligrosa. Siga la feature-selection etiqueta en este sitio para un amplio debate.


En una actualización de su pregunta, muestra que los 2 primeros componentes principales de su matriz de predicción no separan los 2 grupos. Eso no es tan sorprendente, ya que se trata sólo de las dos primeras dimensiones de un espacio de 60 dimensiones, y es difícil saber exactamente en qué parte de esas dimensiones surge la separación perfecta. No creo que su PCA ayude aquí en absoluto para la selección de variables. La regresión de cresta es la mejor manera de intentar proceder. Sin embargo, hay que tener en cuenta que si se buscan valores p, no se obtienen directamente de la regresión de cresta. Si los valores p son importantes para usted, repita el proceso en múltiples muestras bootstrap de los datos.

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