Convalida incrociata dopo LASSO in dati di sondaggi complessi


11

Sto cercando di fare la selezione del modello su alcuni predittori candidati usando LASSO con un risultato continuo. L'obiettivo è selezionare il modello ottimale con le migliori prestazioni di predizione, che di solito può essere eseguito mediante convalida incrociata K-fold dopo aver ottenuto un percorso di soluzione dei parametri di ottimizzazione da LASSO. Il problema qui è che i dati provengono da un complesso progetto di indagine a più stadi (NHANES), con campionamento e stratificazione dei cluster. La parte di stima non è difficile poiché glmnetin R può prendere pesi di campionamento. Ma la parte di convalida incrociata mi è meno chiara poiché le osservazioni ora non sono più evitate, e come può la procedura spiegare i pesi di campionamento che rappresentano una popolazione finita?

Quindi le mie domande sono:

1) Come eseguire la convalida incrociata K-fold con dati di rilevamento complessi per selezionare il parametro di ottimizzazione ottimale? Più specificamente, come suddividere in modo appropriato i dati di esempio in set di training e validazione? E come definire la stima dell'errore di previsione?

2) Esiste un modo alternativo per selezionare il parametro di ottimizzazione ottimale?


Forse il ricampionamento (ad esempio bootstrap) sarebbe una procedura più appropriata invece di k fold cv?
g3o2,

Lumley avverte che "La teoria del bootstrap è stata sviluppata solo per la situazione del campionamento delle pari probabilità all'interno di ogni strato, non è chiaro quanto funzionerebbe con probabilità arbitrarie". (28) I dati NHANES non sembrano avere campionamenti di pari probabilità all'interno degli strati.
Dan Hicks,

sarebbe interessante conoscere questo piccolo dettaglio dall'OP. Non vedo cosa sarebbe così complesso nel cluster multistadio e nel campionamento stratificato ...
g3o2,

@Dan Hicks: non penso che importi davvero, durante il ricampionamento, si replicano più istanze esattamente dello stesso piano di esempio.
g3o2,

Usi qualcosa come i metodi descritti qui? amstat.tandfonline.com/doi/pdf/10.1080/01621459.1988.10478591 (O qualcosa di più recente?) Se vuoi scrivere quell'idea con un po 'più di dettaglio come risposta, ti darò la generosità.
Dan Hicks,

Risposte:


2

Non ho una risposta dettagliata, solo alcuni suggerimenti sul funzionamento che intendevo leggere:

Puoi dare un'occhiata a McConville (2011) sul sondaggio complesso LASSO, per essere sicuro che l'uso di LASSO sia appropriato per i tuoi dati. Ma forse non è un grosso problema se stai facendo LASSO solo per la selezione delle variabili, adattando qualcos'altro alle restanti variabili.

Per la convalida incrociata con dati di sondaggi complessi (sebbene non LASSO), McConville cita anche Opsomer & Miller (2005) e You (2009). Ma i loro metodi sembrano usare un CV unico, non K-fold.

Il congedo dovrebbe essere più semplice da implementare con sondaggi complessi --- c'è meno preoccupazione su come partizionare i dati in modo appropriato. (D'altra parte, può richiedere più tempo rispetto alla piega a K. E se il tuo obiettivo è la selezione del modello, è noto che lasciare una traccia può essere peggio della piega a K per campioni di grandi dimensioni.)


0

EDIT tramite OP: non applicabile a dati di sondaggi complessi.

La funzione cv.glmet potrebbe aiutarti a eseguire la convalida incrociata richiesta. Il valore lambda.min è il valore di λ dove l'errore CV è minimo. Lambda.1se rappresenta il valore di λ nella ricerca che era più semplice del modello migliore (lambda.min), ma che presenta un errore entro 1 errore standard del modello migliore.

  1. Scegli una griglia di valori tra cui scegliere sia per alpha che lambda

grid <- expand.grid (.alpha = (1:10) * 0.1, .lambda = (1:10) * 0.1)

  1. Imposta i parametri di controllo del tuo modello. Il controllo del treno di seguito viene ripetuto per 10 iterazioni. Esamina i metodi disponibili e scegli quello che si adatta al tuo scenario attuale.

.un'lphun',> =T,lun'mBdun'=griod

È possibile accedere al valore lambda.min dal modello stesso come mostrato di seguito.

cv.glmmod $ lambda.min


1
So come eseguire la convalida incrociata per i dati iid utilizzando glmnet. Stavo chiedendo dati di sondaggi complessi correlati.
aenima,
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.