Come stimare il parametro di contrazione in Lazo o regressione della cresta con variabili> 50K?


36

Voglio usare la regressione Lasso o ridge per un modello con oltre 50.000 variabili. Voglio farlo utilizzando il pacchetto software in R. Come posso stimare il parametro di restringimento ( )?λ

modifiche:

Ecco il punto in cui mi sono alzato:

set.seed (123)
Y <- runif (1000)
Xv <- sample(c(1,0), size= 1000*1000,  replace = T)
X <- matrix(Xv, nrow = 1000, ncol = 1000)

mydf <- data.frame(Y, X)

require(MASS)
lm.ridge(Y ~ ., mydf)

plot(lm.ridge(Y ~ ., mydf,
              lambda = seq(0,0.1,0.001)))

inserisci qui la descrizione dell'immagine

La mia domanda è: come faccio a sapere quale è la migliore per il mio modello?λ


3
Il parametro smoothing non è statisticamente stimabile, ma viene utilizzato per massimizzare l'adattamento fuori campione utilizzando, ad esempio, la convalida incrociata. Penso che i pacchetti standard per LASSO e Ridge Regression in R abbiano funzionalità integrate per fare questo per te - ci hai pensato?
Macro,

4
Non sono d'accordo: puoi stimare il parametro smoothing, usando un approccio modello misto. Esistono metodi reml come i metodi bayesiririci. Non hai bisogno di costose validazioni incrociate.
probabilityislogic

1
@probabilityislogic grazie per le informazioni. Sarebbe bello se ci fossero pochi dettagli sulla sceneggiatura come possiamo farlo usando reml
John

2
Per la regressione della cresta, la convalida incrociata one-out è essenzialmente gratuita (statistica PRESS di Allen) e ho trovato che è un metodo ragionevolmente buono. Tuttavia, con tali caratteristiche, praticamente qualsiasi metodo che usi sarà instabile e un approccio completamente bayesiano che emargina su entrambi i parametri e i parametri di regolarizzazione sarà probabilmente una soluzione più affidabile (come penso che la probabilitlogica suggeriva). Se non ti piacciono i metodi bayesiani, usa ogni volta il bagging e rivaluta la lambda.
Dikran Marsupial,

2
@Macro - (niente come una risposta 18 mesi dopo). Nell'approccio del modello misto ci sono due termini aggiuntivi che dipendono solo da ma non da . Questi sono edove è il numero di beta e X la matrice predittore. Il primo termine deriva da dove è la varianza degli errori. Il secondo termine è una correzione REML per tenere conto dell'incertezza nel collegare . λβklog(λ)log|XTX+λI|kβN(0,σ2λ1)σ2β=β^
Probislogic

Risposte:


25

cv.glmnetλ112α

λλcv.glmnetλlambda.minlambda.1seλtype.measure

In alternativa, il pacchetto R mgcv contiene ampie possibilità di stima con penalizzazione quadratica inclusa la selezione automatica dei parametri di penalità. I metodi implementati includono la validazione incrociata generalizzata e REML, come menzionato in un commento. Maggiori dettagli sono disponibili nel libro degli autori del pacchetto: Wood, SN (2006) Modelli di additivi generalizzati: un'introduzione con R, CRC.


1
cv.glmnetλlambda.minlambda.1se

@chl, grazie per il suggerimento. Avrei dovuto aggiungerlo.
NRH,

15

Questa risposta è specifica MATLAB, tuttavia, i concetti di base dovrebbero essere abbastanza simili a quelli a cui sei abituato con R ...

Nel caso di MATLAB, hai la possibilità di eseguire il lazo con la convalida incrociata abilitata.

In tal caso, la funzione Lazo riporterà due valori di parametri critici

  1. Il valore lambda che riduce al minimo l'errore al quadrato medio convalidato incrociato
  2. Il valore lambda con la maggiore quantità di restringimento il cui CVMSE è compreso in un errore standard del minimo.

Hai anche una piccola tabella che puoi usare per ispezionare la relazione tra lambda e CVMSE

inserisci qui la descrizione dell'immagine

In generale, sceglierai un valore di lambda che cade tra la linea blu e la linea verde.

Il seguente post sul blog include alcuni codici demo basati su alcuni esempi in

Tibshirani, R. (1996). restringimento di regressione e la selezione tramite il lazo. J. Royal. Statist. Soc B., Vol. 58, n. 1, pagine 267-288).

http://blogs.mathworks.com/loren/2011/11/29/subset-selection-and-regularization-part-2/


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.