Estoy ejecutando un LASSO que tiene algunos predictores de variables categóricas y otras continuas. Tengo una pregunta sobre las variables categóricas. El primer paso que entiendo es dividir cada una de ellas en variables ficticias, estandarizarlas para una penalización justa y luego realizar la regresión. Se plantean varias opciones para tratar las variables ficticias:
-
Incluya todas menos una de las variables ficticias para cada factor, dejando esa como nivel de referencia. La interpretación de un coeficiente ficticio es relativa a la categoría "de referencia" excluida. El intercepto es ahora la respuesta media para la categoría de referencia.
-
Agrupe las variables de cada factor de modo que estén todas excluidas o todas incluidas menos una. Creo que eso es lo que sugiere @Glen_b. aquí :
Normalmente, sí, mantienes tus factores todos juntos. Hay varios paquetes de R que pueden hacer esto, incluyendo glmnet
-
Incluir todos los niveles, como sugiere @Andrew M aquí :
También es posible que desee cambiar la función de contraste por defecto, que por por defecto deja fuera un nivel de cada factor (codificación del tratamiento). Pero debido a la penalización del lazo, esto ya no es necesario para la identificabilidad y, de hecho, hace que la interpretación de las seleccionadas. Para ello, establezca
contr.Dummy <- function(contrasts, ...){ conT <- contr.treatment(contrasts=FALSE, ...) conT } options(contrasts=c(ordered='contr.Dummy', unordered='contr.Dummy'))
Ahora, cualesquiera que sean los niveles de un factor seleccionados, se puede pensar en él como sugiriendo que estos niveles específicos importan omitidos. En el aprendizaje automático, he visto esta codificación referida como codificación one-hot.
Preguntas:
- ¿Cuál es la interpretación del interceptar y coeficientes en cada uno de estos enfoques?
- ¿Qué consideraciones hay que tener en cuenta para elegir uno de ellos?
- ¿Desesescalamos los coeficientes ficticios y los interpretamos como un cambio de apagado a encendido?