Interpretazione dei grafici a traccia delle variabili LASSO


15

Sono nuovo nel glmnetpacchetto e non sono ancora sicuro di come interpretare i risultati. Qualcuno potrebbe aiutarmi a leggere il seguente diagramma di traccia?

Il grafico è stato ottenuto eseguendo quanto segue:

library(glmnet)
return <- matrix(ret.ff.zoo[which(index(ret.ff.zoo)==beta.df$date[2]), ])
data   <- matrix(unlist(beta.df[which(beta.df$date==beta.df$date[2]), ][ ,-1]), 
                 ncol=num.factors)
model  <- cv.glmnet(data, return, standardize=TRUE)

op <- par(mfrow=c(1, 2))
plot(model$glmnet.fit, "norm",   label=TRUE)
plot(model$glmnet.fit, "lambda", label=TRUE)
par(op)

inserisci qui la descrizione dell'immagine

Risposte:


20

In entrambi i grafici, ogni linea colorata rappresenta il valore assunto da un coefficiente diverso nel modello. Lambda è il peso dato al termine di regolarizzazione (la norma L1), quindi quando lambda si avvicina a zero, la funzione di perdita del modello si avvicina alla funzione di perdita OLS. Ecco un modo in cui potresti specificare la funzione di perdita LASSO per rendere concreto questo:

βlun'SSo=argmin [RSS(β)+λ*L1-Norm(β)]

Pertanto, quando lambda è molto piccola, la soluzione LASSO dovrebbe essere molto vicina alla soluzione OLS e tutti i coefficienti sono nel modello. Man mano che lambda cresce, il termine di regolarizzazione ha un effetto maggiore e vedrai meno variabili nel tuo modello (perché sempre più coefficienti saranno valutati zero).

Come ho detto sopra, la norma L1 è il termine di regolarizzazione per LASSO. Forse un modo migliore per osservarlo è che l'asse x è il valore massimo consentito dalla norma L1 . Quindi quando hai una piccola norma L1, hai molta regolarizzazione. Pertanto, una norma L1 pari a zero fornisce un modello vuoto e quando si aumenta la norma L1, le variabili "inseriranno" il modello poiché i loro coefficienti assumono valori diversi da zero.

La trama a sinistra e la trama a destra mostrano sostanzialmente la stessa cosa, solo su scale diverse.


2
Risposta molto accurata, grazie! È possibile dedurre i "migliori predittori" dai grafici sopra, ovvero un modello finale?
Mayou,

4
No, dovrai eseguire la convalida incrociata o qualche altra procedura di convalida; ti dirà quale valore della norma L1 (o equivalentemente, quale log (lambda)) fornisce il modello con la migliore capacità predittiva.
JAW,

11
Se stai cercando di determinare i tuoi predittori più forti, potresti interpretare la trama come prova che le variabili che entrano presto nel modello sono le più predittive e le variabili che entrano nel modello in seguito sono meno importanti. Se si desidera il "miglior modello", generalmente questo si trova attraverso la convalida incrociata. Un metodo comune per ottenere ciò utilizzando il pacchetto glmnet è stato suggerito qui: stats.stackexchange.com/a/68350/8451 . Consiglio vivamente di leggere il breve capitolo di Lazo in ESLII (3.4.2 e 3.4.3), che è scaricabile gratuitamente: www-stat.stanford.edu/~tibs/ElemStatLearn
David Marx,

@ David Marx, a cosa si riferiscono i numeri in cima alla trama? come scegliere il modello migliore tramite validazione incrociata.
Jeza

@DavidMarx è stato un po 'di tempo, ma per chiunque si chiedesse questo, questo è il numero di coefficienti a quel peso che non sono valutati zero.
Ian Belcher,
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.