Desculpe se esta pergunta é um pouco básica.
Eu estou procurando usar a seleção de variáveis do LASSO para um modelo de regressão linear múltipla em R. Eu tenho 15 preditores, um dos quais é categórico (isso causará um problema?). Após definir e , utilizo os seguintes comandos:y
model = lars(x, y)
coef(model)
Meu problema é quando eu uso coef(model)
. Isso retorna uma matriz com 15 linhas, com um preditor extra adicionado a cada vez. No entanto, não há sugestão de qual modelo escolher. Perdi alguma coisa? Existe uma maneira de obter o pacote lars para retornar apenas um modelo " melhor "?
Há outras postagens sugerindo o uso, glmnet
mas isso parece mais complicado. Uma tentativa é a seguinte, usando o mesmo e . Perdi alguma coisa aqui ?: y
cv = cv.glmnet(x, y)
model = glmnet(x, y, type.gaussian="covariance", lambda=cv$lambda.min)
predict(model, type="coefficients")
O comando final retorna uma lista de minhas variáveis, a maioria com um coeficiente, embora algumas sejam = 0. Essa é a escolha correta do " melhor " modelo selecionado pelo LASSO? Se eu encaixar um modelo linear com todas as minhas variáveis com coeficientes not=0
, fico com estimativas de coeficientes muito semelhantes, mas um pouco diferentes. Existe uma razão para essa diferença? Seria aceitável refazer o modelo linear com essas variáveis escolhidas pelo LASSO e tomá-lo como meu modelo final? Caso contrário, não vejo valores de p para significância. Perdi alguma coisa?
Faz
type.gaussian="covariance"
garantir que isso glmnet
usa regressão linear múltipla?
A normalização automática das variáveis afeta os coeficientes? Existe alguma maneira de incluir termos de interação em um procedimento LASSO?
Estou procurando usar esse procedimento mais como uma demonstração de como o LASSO pode ser usado do que para qualquer modelo que realmente seja usado para qualquer inferência / previsão importante, se isso mudar alguma coisa.
Obrigado por separar um tempo para ler isso. Quaisquer comentários gerais sobre o LASSO / lars / glmnet também serão muito apreciados.