Usando LASSO para la selección de variables, luego usando Logit

10

Sé que esto enturbiaría la inferencia estadística, pero en realidad solo me preocupa acercarme lo más posible a un modelo preciso.

Tengo una variable de resultado dicotómica, con un gran conjunto de predictores dicotómicos. Estoy pensando que me gustaría intentar usar LASSO para seleccionar qué variables debo incluir en mi modelo, luego ingresar esas variables seleccionadas en una regresión Logit.

¿Hay algo que estoy pasando por alto cuando se trata de la practicidad de este enfoque?

EvKohl
fuente
44
Estás pasando por alto que puedes usar la penalización de la norma L1 de LASSO en la regresión logística al igual que en la regresión lineal.
Scortchi - Restablece a Monica
1
Y ese LASSO se reduce , además de seleccionar, lo que estarías deshaciendo.
Scortchi - Restablece a Monica
Entonces, eso es lo que pensé (en relación con la reducción). Estoy usando el paquete LARS en STATA. El modelo que emite no da una intersección, por lo que no se puede reducir, ¿verdad?
EvKohl
La intersección en un modelo logit está fijada por la relación de positivos a negativos.
Sycorax dice Reinstate Monica
2
Siempre puede incluir una columna de unos en sus datos para estimar el término de intercepción. Pero, de hecho, no hay necesidad de correr para separar los modelos. Simplemente use la regresión logística con penalización L1.
Sven

Respuestas:

9

¡Hay un paquete en R llamado glmnet que puede adaptarse a un modelo logístico de LASSO para usted! Esto será más sencillo que el enfoque que está considerando. Más precisamente, glmnet es un híbrido entre LASSO y la regresión de Ridge, pero puede establecer un parámetroα=1hacer un modelo puro de LASSO. Como está interesado en la regresión logística, establecerá family = "binomial".

Puede leer más aquí: http://web.stanford.edu/~hastie/glmnet/glmnet_alpha.html#intro

TrynnaDoStat
fuente
(+1) Sin duda también hay un paquete Stata para esto: Statalist sería el mejor lugar para preguntar.
Scortchi - Restablece a Monica
Gracias. De hecho, no creo que haya un paquete STATA para ello. Toda la mención que encontré fue para R.
EvKohl
3
Buscar en Google stata lasso logisticme da homepages.ucl.ac.uk/~ucakgam/stata.html como primer resultado.
Scortchi - Restablece a Monica
¿Alguien conoce un paquete en Python que también puede hacer esto?
rbm
@rbm Sin duda llego tarde a la fiesta, pero puedes aplicar la regularización a regresores logísticos en scikit-learn.
Eli Korvigo
2

Primero, no hay garantía de que un modelo de probabilidad lineal se aproxime muy bien a un modelo logit; en consecuencia, el subconjunto de variables seleccionadas para una puede ser menos apropiado para la otra.

En segundo lugar, el reajuste no aplica contracción alguna, a pesar de la selección variable que se realiza en el primer paso; arriesgando graves calibraciones erróneas y quizás una pequeña pérdida de discriminación.

Es posible que pueda validar el procedimiento en un conjunto de datos en particular, pero no parece seguro en general, ni ofrecer ninguna ventaja sobre una regresión logística gradual. Y, por supuesto, es innecesario; LASSOL1-norm pena se puede utilizar para la contracción y selección en regresión logística.

Scortchi - Restablece a Monica
fuente