31 votos

Detección de predictores significativos a partir de muchas variables independientes

En un conjunto de datos de dos poblaciones no superpuestas (pacientes y sanos, total $n=60$ ) Me gustaría encontrar (fuera de $300$ variables independientes) predictores significativos para una variable dependiente continua. La correlación entre los predictores está presente. Me interesa averiguar si alguno de los predictores está relacionado con la variable dependiente "en realidad" (en lugar de predecir la variable dependiente con la mayor exactitud posible). Como me he visto abrumado por los numerosos enfoques posibles, me gustaría preguntar qué enfoque es el más recomendable.

  • A mi entender, la inclusión o exclusión por pasos de los predictores es no se recomienda

  • Por ejemplo, realizar una regresión lineal por separado para cada predictor y corregir los valores p de las comparaciones múltiples mediante FDR (probablemente muy conservador).

  • Regresión de componentes principales: difícil de interpretar, ya que no podré hablar del poder predictivo de los predictores individuales, sino sólo de los componentes.

  • ¿alguna otra sugerencia?

30voto

Boris Tsirelson Puntos 191

Yo recomendaría probar un glm con regularización del lazo . Esto añade una penalización al modelo por el número de variables, y a medida que aumenta la penalización, el número de variables en el modelo disminuirá.

Debe utilizar la validación cruzada para seleccionar el valor del parámetro de penalización. Si tienes R, te sugiero que utilices el paquete glmnet . Utilice alpha=1 para la regresión del lazo, y alpha=0 para la regresión de cresta. Si se establece un valor entre 0 y 1, se utilizará una combinación de penalizaciones de lazo y cresta, también conocida como red elástica.

24voto

user11867 Puntos 21

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

$$\min_{\beta} \; \; (Y-X\beta)^{T}(Y-X\beta) + \sum_i |\beta_i| $$

La primera parte es cuadrática en $\beta$ (oro abajo), y el segundo es un curva cuadrada (verde abajo). La línea negra es la línea de intersección. The LASSO objective function

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:

Contour curves of LASSO

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

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

2voto

Jonathan Arkell Puntos 4265

¿Cuál es su opinión previa sobre el número de predictores que pueden ser importantes? ¿Es probable que la mayoría de ellos tengan un efecto exactamente nulo, o que todo afecte al resultado, algunas variables sólo en menor medida que otras?

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

Si cree que sólo unas pocas variables son importantes, puede probar la prioridad de pico y losa (en el paquete spikeSlabGAM de R, por ejemplo), o L1. Si cree que todos los predictores afectan al resultado, puede que no tenga suerte.

Y en general, se aplican todas las advertencias relacionadas con la inferencia causal a partir de datos observacionales.

2voto

dan90266 Puntos 609

Haga lo que haga, merece la pena obtener intervalos de confianza bootstrap sobre los rangos de importancia de los predictores para demostrar que realmente puede hacer esto con su conjunto de datos. Dudo que ninguno de los métodos pueda encontrar de forma fiable los "verdaderos" predictores.

1voto

Michael Myers Puntos 82361

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

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