Percorsi dei coefficienti: confronto tra cresta, lazo e regressione della rete elastica


13

Vorrei confrontare i modelli selezionati con la cresta, il lazo e la rete elastica. La Fig. Sotto mostra i percorsi dei coefficienti usando tutti e 3 i metodi: cresta (Fig A, alfa = 0), lazo (Fig B; alfa = 1) e rete elastica (Fig C; alfa = 0,5). La soluzione ottimale dipende dal valore selezionato di lambda, che viene scelto in base alla convalida incrociata.

Profili dei coefficienti per la regressione della cresta (A, alfa = 0), lazo (B, alfa = 1) e della rete elastica (C, alfa = 0,5).  I numeri nella parte superiore della trama rappresentano le dimensioni dei modelli. La soluzione ottimale dipende dal valore selezionato di lambda.  La selezione di lambda si basa sulla validazione incrociata.

Osservando questi grafici, mi aspetto che la rete elastica (Fig. C) presenti un effetto di raggruppamento. Tuttavia, non è chiaro nel caso presentato. I percorsi dei coefficienti per il lazo e la rete elastica sono molto simili. Quale potrebbe essere la ragione di ciò? È solo un errore di codifica? Ho usato il seguente codice in 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)

Il codice utilizzato per tracciare percorsi di coefficienti di rete elastica è esattamente lo stesso di cresta e lazo. L'unica differenza è nel valore di alfa. Il parametro alfa per la regressione della rete elastica è stato selezionato in base all'MSE più basso (errore quadratico medio) per i corrispondenti valori lambda.

Grazie per l'aiuto !

Risposte:


5

Nel caso ( numero di coefficienti, numero di campioni, che per il numero di coefficienti che mostri nei grafici immagino che sia il caso qui), l'unico vero "problema" con il modello Lazo è che quando più funzioni sono correlate e tende a selezionarne una in modo casuale.p<npn

Se le caratteristiche originali non sono molto correlate, direi che è ragionevole che Lasso funzioni in modo simile alla rete elastica in termini di percorso dei coefficienti. Guardando la documentazione per il pacchetto glmnet , anche io non vedo alcun errore nel tuo codice.


Grazie mille per il tuo commento Ho iniziato a pensare all'approccio della regolarizzazione per selezionare il modello migliore, perché ho osservato una multicollinearità grave tra le mie variabili (VIF >> 10). Molti di essi erano correlati a livello> 0,8, quindi mi aspettavo che la rete elastica si comportasse diversamente dal lazo e mostrasse un effetto di raggruppamento (nel caso di variabili correlate).
principiante

Potresti dover usare solo una penalità di cresta più forte?
dcl,

hai controllato la multicollinearità adattata df? le variabili fattore hanno normalmente multicollinearità perché si escludono a vicenda. Non so se questo tipo di multicollinearità dia problemi con il lazo.
Bakaburg,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.