Caminhos dos coeficientes - comparação da crista, laço e regressão líquida elástica

13

Gostaria de comparar os modelos selecionados com cume, laço e rede elástica. A Fig. Abaixo mostra os caminhos dos coeficientes usando todos os três métodos: crista (Fig A, alfa = 0), laço (Fig B; alfa = 1) e rede elástica (Fig C; alfa = 0,5). A solução ideal depende do valor selecionado de lambda, que é escolhido com base na validação cruzada.

Perfis de coeficientes para regressão de crista (A, alfa = 0), laço (B, alfa = 1) e rede elástica (C, alfa = 0,5).  Os números na parte superior do gráfico representam o tamanho dos modelos. A solução ideal depende do valor selecionado de lambda.  A seleção de lambda é baseada na validação cruzada.

Ao olhar para essas parcelas, eu esperaria que a rede elástica (Fig C) exibisse um efeito de agrupamento. No entanto, não está claro no caso apresentado. O caminho dos coeficientes para laço e rede elástica é muito semelhante. Qual poderia ser a razão disso? É apenas um erro de codificação? Eu usei o seguinte código em R:

library(glmnet)
X<- as.matrix(mydata[,2:22])
Y<- mydata[,23]
par(mfrow=c(1,3))
ans1<-cv.glmnet(X, Y, alpha=0) # ridge
plot(ans1$glmnet.fit, "lambda", label=FALSE)
text (6, 0.4, "A", cex=1.8, font=1)
ans2<-cv.glmnet(X, Y, alpha=1) # lasso
plot(ans2$glmnet.fit, "lambda", label=FALSE)
text (-0.8, 0.48, "B", cex=1.8, font=1)
ans3<-cv.glmnet(X, Y, alpha=0.5) # elastic net 
plot(ans3$glmnet.fit, "lambda", label=FALSE)
text (0, 0.62, "C", cex=1.8, font=1)

O código usado para plotar caminhos de coeficientes líquidos elásticos é exatamente o mesmo que para cume e laço. A única diferença está no valor de alfa. O parâmetro alfa para regressão líquida elástica foi selecionado com base no menor MSE (erro quadrático médio) para os valores lambda correspondentes.

Obrigado pela ajuda !

principiante
fonte

Respostas:

5

p<npn

Se os recursos originais não estiverem muito correlacionados, eu diria que é razoável que Lasso tenha desempenho semelhante ao Elastic Net em termos de caminho dos coeficientes. Examinando a documentação para pacote glmnet , também não vejo nenhum erro no seu código.

skd
fonte
Muito obrigado pelo seu comentário. Comecei a pensar na abordagem da regularização para selecionar o melhor modelo, porque observei uma multicolinearidade severa entre minhas variáveis ​​(VIF >> 10). Muitos deles estavam correlacionados no nível> 0,8. Assim, eu esperava que a rede elástica tivesse um desempenho diferente do laço e mostrasse um efeito de agrupamento (no caso de variáveis ​​correlacionadas).
iniciante
Você pode apenas ter que usar uma penalidade de cume mais forte?
DCL
você verificou a multicolinearidade ajustada df? variáveis ​​de fator normalmente têm multicolinearidade porque são mutuamente exclusivas. Não sei se esse tipo de multicolinearidade causa problemas com o laço.
Bakaburg 15/02