La stabilità del modello quando si tratta di grandi


22

Intro:

Ho un set di dati con un classico "grande problema p, piccolo problema". Il numero di campioni disponibili n = 150 mentre il numero di possibili predittori p = 400. Il risultato è una variabile continua.

Voglio trovare i descrittori più "importanti", cioè quelli che sono i migliori candidati per spiegare il risultato e aiutare a costruire una teoria.

Dopo una ricerca su questo argomento ho scoperto che LASSO e Elastic Net sono comunemente usati per il caso di p grande, n piccolo. Alcuni dei miei predittori sono altamente correlati e voglio preservare i loro raggruppamenti nella valutazione dell'importanza, quindi ho optato per Elastic Net . Suppongo di poter utilizzare i valori assoluti dei coefficienti di regressione come misura di importanza (correggimi se sbaglio; il mio set di dati è standardizzato).

Problema:

Dato che il mio numero di campioni è piccolo, come posso ottenere un modello stabile?

Il mio approccio attuale è quello di trovare i migliori parametri di ottimizzazione (lambda e alfa) in una ricerca della griglia sul 90% del set di dati con punteggio MSE medio di validazione incrociata di 10 volte. Quindi alleno il modello con i migliori parametri di ottimizzazione sull'intero 90% del set di dati. Sono in grado di valutare il mio modello usando R al quadrato sul 10% del set di dati (che rappresentano solo 15 campioni).

Eseguendo ripetutamente questa procedura, ho riscontrato una grande varianza nelle valutazioni R al quadrato. Inoltre, il numero di predittori diversi da zero varia e i loro coefficienti.

Come posso ottenere una valutazione più stabile dell'importanza dei predittori e una valutazione più stabile delle prestazioni del modello finale?

Posso eseguire ripetutamente la mia procedura per creare un numero di modelli e quindi coefficienti di regressione medi? O dovrei usare il numero di occorrenze di un predittore nei modelli come punteggio di importanza?

Attualmente, ottengo circa 40-50 predittori non azzerati. Devo penalizzare maggiormente il numero di predittori per una migliore stabilità?


1
Forse la regressione regolarizzata non è abbastanza? Hai provato un approccio di apprendimento automatico?

quali approcci ML sono adatti alla variabile dipendente ordinaria o continua suggeriresti?
dimi

2
Foresta casuale, SVR ... Per la selezione delle caratteristiche puoi provare alcuni metodi rilevanti (dovrebbe essere più stabile) come ACE o Boruta.

Risposte:


11

" Gli algoritmi sparsi non sono stabili: un teorema senza pranzo libero "

Immagino che il titolo dice molto, come hai sottolineato.

[...] un algoritmo sparse può avere soluzioni ottimali non univoche ed è quindi mal posizionato

Dai un'occhiata al lazo randomizzato e al discorso di Peter Buhlmann .

Aggiornare:

Ho trovato questo documento più facile da seguire rispetto a quello di Meinshausen e Buhlmann chiamato "Stability Selection".

pn

  1. Nel caso in cui esistano diverse variabili correlate, il lazo ne sceglie solo una o alcune, portando così all'instabilità di cui parli
  2. n

L'idea principale per il lazo casuale, che è in grado di affrontare entrambi gli svantaggi del lazo, è la seguente

n

Vengono disegnati esempi Bootstrap per simulare più set di dati. I coefficienti finali sono ottenuti facendo una media sui risultati di ciascun campione bootstrap.

Sarebbe bello se qualcuno potesse approfondire e spiegare ulteriormente questo algoritmo nelle risposte.


1
Bei collegamenti (+1).
jbowman,

Grazie per le osservazioni Ho anche considerato il lazo randomizzato, ma sarebbe adatto in caso di collinearità ?
dimi

2
Cosa succede sotto collinearità approssimativa tra le variabili esplicative? Nell'algoritmo di ricerca diretta convenzionale nell'analisi di regressione, ci troviamo spesso di fronte alla situazione in cui due variabili x1 e x2 hanno un potere esplicativo simile. Se x1 è presente nel modello, non è necessario includere x2; viceversa, se x2 è presente nel modello, non è necessario includere x1. Se capisco correttamente la tua procedura, tenderai a includere x1 metà del tempo e x2 metà del tempo, portando a probabilità di stabilità di circa il 50% ciascuno. In tal caso, si potrebbe erroneamente concludere che nessuna variabile è necessaria.
dimi

Immagino di poter usare allo stesso modo una rete elastica randomizzata in questo caso.
dimi

Ho aggiunto un altro link che penso risponda meglio alla tua domanda.
Pardis,

6

Il mio approccio attuale è quello di trovare i migliori parametri di ottimizzazione (lambda e alfa) in una ricerca della griglia sul 90% del set di dati con punteggio MSE medio di validazione incrociata di 10 volte. Quindi alleno il modello con i migliori parametri di ottimizzazione sull'intero 90% del set di dati. Sono in grado di valutare il mio modello usando R al quadrato sul 10% del set di dati (che rappresentano solo 15 campioni).

Quanto sono stabili i parametri di ottimizzazione?

Vedete grandi differenze tra bontà di adattamento (ad esempio MSE della validazione incrociata del parametro ottimale) e prestazioni di test indipendenti del 10%?

Sarebbe un sintomo di overfitting:

MSE=f(griodpun'run'meterS)MSE=f(griodpun'run'meterS)

Posso eseguire ripetutamente la mia procedura per creare un numero di modelli e quindi coefficienti di regressione medi? O dovrei usare il numero di occorrenze di un predittore nei modelli come punteggio di importanza?

Esistono diverse possibilità per costruire tali modelli aggregati:

  • i modelli lineari possono essere mediati mediando i coefficienti
  • mm

I termini di ricerca sarebbero "modelli aggregati", "aggregazione bootstrap", "insaccamento".

Pensiero laterale: alcuni tipi di dati hanno previsto e interpretabile la collinearità che può far sì che la selezione variabile "salti" tra soluzioni più o meno uguali.


3

Non c'è via d'uscita. Come alcuni hanno detto, i modelli sono instabili per natura (altrimenti non sarebbero necessarie statistiche).

Ma l'instabilità stessa porta informazioni. Quindi, invece di provare a liberarmene, ho provato ad analizzarlo.

Eseguo più volte simulazioni incrociate, quindi ottengo i coefficienti per i migliori parametri selezionati in ciascuna corsa e li metto insieme.

Nel caso della rete elastica, eseguo un test di convalida incrociata per ogni alfa (0..1 per 0,1) con gli stessi k dati piegati (è necessario confrontare gli alfa sullo stesso set di dati) e selezionare il λ/α coppia associata a un errore di test inferiore ... Di quanto lo ripeto per n volte con diversi k dati casuali selezionati casualmente e scelgo la coppia migliore per ogni iterazione.

Quindi estraggo i coefficienti di regressione per ciascuna coppia di parametri e questo mi dà una distribuzione di valori per ciascun parametro. In questo modo posso usare il valore medio / mediano per descrivere la forza del predittore e la sua deviazione standard / IQR per descrivere la sua variabilità, ovvero la sua stabilità.

Un predittore molto stabile significa che puoi aspettarti che il suo effetto sia simile anche con i nuovi dati; un predittore che è instabile anche nei tuoi dati, probabilmente sarebbe molto instabile anche con nuovi dati.

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.