Detectando predictores significativos de muchas variables independientes

31

En un conjunto de datos de dos poblaciones no superpuestas (pacientes y sanos, total n=60 ), me gustaría encontrar (de 300 variables independientes) predictores significativos para una variable dependiente continua. La correlación entre predictores está presente. Estoy interesado en averiguar si alguno de los predictores está relacionado con la variable dependiente "en realidad" (en lugar de predecir la variable dependiente lo más exactamente posible). Como me sentí abrumado con los numerosos enfoques posibles, me gustaría preguntar cuál es el enfoque más recomendado.

  • Según tengo entendido, no se recomienda la inclusión o exclusión gradual de predictores

  • Por ejemplo, ejecute una regresión lineal por separado para cada predictor y corrija los valores p para comparación múltiple usando FDR (¿probablemente muy conservador?

  • Regresión del componente principal: difícil de interpretar ya que no podré contar sobre el poder predictivo de los predictores individuales, sino solo sobre los componentes.

  • ¿cualquier otra sugerencia?

jokel
fuente
He oído hablar de personas que usan la regresión regularizada L1 para hacer este tipo de cosas. Pero no sé lo suficiente como para escribir una respuesta adecuada ...
Rey
2
Para dar las mejores recomendaciones, nos ayudaría saber cómo procederás después de identificar "predictores significativos". ¿Estás tratando de predecir el resultado lo más exactamente posible? encontrar una manera parsimoniosa de predecirlo (p. ej., usando un conjunto de hasta k predictores que lo harán de manera eficiente; explicar qué causa el resultado "en realidad"; o algo más? Además, ¿qué tan grande es su conjunto de datos?
rolando2
@rolando: gracias por el comentario! Actualicé la pregunta: mi número total de observaciones es n = 60 sujetos. Mi objetivo no es predecir la variable dependiente de la manera más exacta posible, sino más bien explicar qué causa el resultado "en realidad" (= esperar encontrar una relación entre variables que podrían confirmarse en estudios / conjuntos de datos posteriores)
jokel
También publiqué una pregunta de seguimiento que incluye algunos datos ficticios. Estaría muy agradecido por todas las pistas. stats.stackexchange.com/questions/34859/…
jokel

Respuestas:

30

Recomendaría probar un glm con regularización de lazo . Esto agrega una penalización al modelo por la cantidad de variables, y a medida que aumenta la penalización, la cantidad de variables en el modelo disminuirá.

Debe usar la validación cruzada para seleccionar el valor del parámetro de penalización. Si tiene R, sugiero usar el paquete glmnet . Úselo alpha=1para la regresión de lazo y alpha=0para la regresión de cresta. Establecer un valor entre 0 y 1 utilizará una combinación de penalizaciones de lazo y cresta, también conocida como la red elástica.

Zach
fuente
44
Estoy de acuerdo con Zach. David Cassell y yo escribimos un artículo sobre esto, concentrándonos en SAS pero no del todo. Se está deteniendo paso a paso .
Peter Flom - Restablece a Monica
1
Creo que es 0 para cresta y 1 para lazo
Rey
1
@Zach: Gracias por las sugerencias. ¿Hay alguna manera de obtener alguna estadística de prueba que me permita juzgar la importancia de los predictores individuales? Al final me gustaría poder decir "el predictor X está significativamente relacionado con la variable dependiente Y".
jokel
2
Con respecto a los CI, del manual de otro paquete R que implementa LASSO ( cran.r-project.org/web/packages/penalized/vignettes/… , página 18): "Es una pregunta muy natural preguntar por errores estándar de regresión coeficientes u otras cantidades estimadas. En principio, tales errores estándar pueden calcularse fácilmente, por ejemplo, utilizando el bootstrap. Sin embargo, este paquete deliberadamente no los proporciona. La razón de esto es que los errores estándar no son muy significativos para estimaciones muy sesgadas como las que surgen de métodos de estimación penalizados ".
miura
2
@miura Recientemente se presentó una estadística de prueba para eso, también por los autores originales de Lasso: papel y diapositivas (más fácil de leer)
Cam.Davidson.Pilon
23

Para ampliar la respuesta de Zach (+1), si usa el método LASSO en regresión lineal, está tratando de minimizar la suma de una función cuadrática y una función de valor absoluto, es decir:

minβ(YXβ)T(YXβ)+i|βi|

La primera parte es cuadrática en (oro abajo), y la segunda es una curva cuadrada (verde abajo). La línea negra es la línea de intersección. βLa función objetivo de LASSO

El mínimo se encuentra en la curva de intersección, trazada aquí con las curvas de contorno de la curva cuadrática y cuadrada:

Curvas de contorno de LASSO

Puede ver que el mínimo está en uno de los ejes, por lo tanto, ha eliminado esa variable de la regresión.

Puede consultar mi publicación de blog sobre el uso de penalizaciones para la regresión y la selección de variables (también conocida como regularización de Lasso). L1

Cam.Davidson.Pilon
fuente
8
(+1) pero para la publicación del blog, que es realmente bueno. Sin embargo, sería bueno ampliar su respuesta aquí, ya que esto aumentará la probabilidad de que la información permanezca disponible.
richiemorrisroe
2

¿Cuál es su creencia previa sobre cuántos predictores pueden ser importantes? ¿Es probable que la mayoría de ellos tengan un efecto exactamente cero, o que todo afecte el resultado, algunas variables solo menos que otras?

¿Y cómo se relaciona el estado de salud con la tarea predictiva?

Si cree que solo unas pocas variables son importantes, puede probar el spike and slab antes (en el paquete spikeSlabGAM de R, por ejemplo) o L1. Si cree que todos los predictores afectan el resultado, es posible que no tenga suerte.

Y, en general, se aplican todas las advertencias relacionadas con la inferencia causal de los datos de observación.

scellus
fuente
2

Hagas lo que hagas, vale la pena obtener intervalos de confianza de arranque en los rangos de importancia de los predictores para demostrar que realmente puedes hacer esto con tu conjunto de datos. Dudo que alguno de los métodos pueda encontrar de manera confiable los predictores "verdaderos".

Frank Harrell
fuente
1

Recuerdo que la regresión de Lasso no funciona muy bien cuando , pero no estoy seguro. Creo que en este caso Elastic Net es más apropiado para la selección de variables.np

Andy Lu
fuente
Esto es cierto, más específicamente cuando n << p, vea este documento original de red elástica: stanford.edu/~hastie/Papers/…
Cam.Davidson.Pilon
1
Cuando n <p, LASSO selecciona como máximo n variables.
miura