19 votos

¿Puede la regresión logística glmnet manejar directamente variables factoriales (categóricas) sin necesidad de variables ficticias?

Estoy construyendo una regresión logística en R utilizando el método LASSO con las funciones cv.glmnet para seleccionar el lambda y glmnet para el modelo final.

Ya conozco todos los inconvenientes de la selección automática de modelos, pero necesito hacerlo de todos modos.

Mi problema es que necesito incluir variables factoriales (categóricas) en el modelo, ¿hay alguna forma de hacerlo sin crear un montón de variables ficticias? Estas variables son casi todas cadenas y no números.

34voto

Romain Puntos 76

Glmnet no puede tomar factor directamente, necesitas transformar variables factor a dummies. Es sólo un simple paso usando model.matrix, por ejemplo:

x_train <- model.matrix( ~ .-1, train[,features])
lm = cv.glmnet(x=x_train,y = as.factor(train$y), intercept=FALSE ,family =   "binomial", alpha=1, nfolds=7)
best_lambda <- lm$lambda[which.min(lm$cvm)]

alpha=1 construirá un LASSO.

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