Rilevamento di predittori significativi tra molte variabili indipendenti


31

In un set di dati di due popolazioni non sovrapposte (pazienti e sani, totale ), vorrei trovare (su variabili indipendenti) predittori significativi per una variabile dipendente continua. La correlazione tra predittori è presente. Sono interessato a scoprire se qualcuno dei predittori è correlato alla variabile dipendente "in realtà" (piuttosto che prevedere la variabile dipendente il più esattamente possibile). Dato che sono stato sopraffatto dai numerosi possibili approcci, vorrei chiedere quale approccio sia maggiormente raccomandato.300n=60300

  • Dalla mia comprensione l'inclusione graduale o l'esclusione dei predittori non è raccomandata

  • Ad esempio eseguire una regressione lineare separatamente per ogni predittore e correggere i valori p per il confronto multiplo utilizzando FDR (probabilmente molto conservativo?)

  • Regressione dei componenti principali: difficile da interpretare in quanto non sarò in grado di parlare del potere predittivo dei singoli predittori, ma solo dei componenti.

  • altri suggerimenti?


Ho sentito di persone che usano la regressione regolarizzata L1 per fare questo tipo di cose. Ma non ne so abbastanza per scrivere una risposta adeguata ...
Re

2
Al fine di fornire i migliori consigli, ci aiuterebbe a sapere come procedere dopo aver identificato "predittori significativi". Stai cercando di prevedere il risultato nel modo più preciso possibile; trovare un modo parsimonioso per prevederlo (ad esempio, utilizzando un set di fino a k predittori che lo faranno in modo efficiente; spiegare cosa provoca il risultato "in realtà"; o qualcos'altro? Inoltre, quanto è grande il set di dati?
rolando2

@rolando: grazie per il commento! Ho aggiornato la domanda: il mio numero totale di osservazioni è n = 60 soggetti. Il mio obiettivo non è quello di prevedere la variabile dipendente nel modo più preciso possibile, ma piuttosto di spiegare cosa provoca l'esito "nella realtà" (= spero di trovare una relazione tra variabili che potrebbe essere confermata in studi / set di dati successivi)
jokel

Ho anche pubblicato una domanda di follow-up che include alcuni dati fittizi. Sarei molto grato per tutti i suggerimenti. stats.stackexchange.com/questions/34859/…
jokel

Risposte:


30

Consiglierei di provare un glm con la regolarizzazione del lazo . Ciò aggiunge una penalità al modello per il numero di variabili e quando si aumenta la penalità, il numero di variabili nel modello diminuirà.

È necessario utilizzare la convalida incrociata per selezionare il valore del parametro di penalità. Se hai R, ti suggerisco di usare il pacchetto glmnet . Utilizzare alpha=1per la regressione del lazo e alpha=0per la regressione della cresta. L'impostazione di un valore compreso tra 0 e 1 utilizzerà una combinazione di penalità del lazo e della cresta, nota anche come rete elastica.


4
Sono d'accordo con Zach. David Cassell e io abbiamo scritto un articolo su questo, concentrandoci su SAS ma non del tutto. Si sta arrestando gradualmente .
Peter Flom - Ripristina Monica

1
Penso che sia 0 per la cresta e 1 per il lazo
Re

1
@Zach: grazie per i suggerimenti. C'è un modo per ottenere alcune statistiche test che mi permettano di giudicare il significato dei singoli predittori. Alla fine vorrei poter dire "il predittore X è significativamente correlato alla variabile dipendente Y".
scherzo il

2
Per quanto riguarda gli EC, dal manuale di un altro pacchetto R che implementa il LASSO ( cran.r-project.org/web/packages/penalized/vignettes/… , pagina 18): "È una domanda molto naturale chiedere errori standard di regressione coefficienti o altre quantità stimate. In linea di principio tali errori standard possono essere facilmente calcolati, ad esempio utilizzando il bootstrap. Tuttavia, questo pacchetto deliberatamente non li fornisce. La ragione di ciò è che gli errori standard non sono molto significativi per stime fortemente distorte come sorgono da metodi di stima penalizzati ".
miura,

2
@miura Di recente è stata introdotta una statistica di prova proprio per questo, anche dagli autori originali di Lasso: carta e diapositive (più facili da leggere)
Cam.Davidson.Pilon

23

Per espandere la risposta di Zach (+1), se si utilizza il metodo LASSO in regressione lineare, si sta tentando di ridurre al minimo la somma di una funzione quadratica e una funzione di valore assoluto, ovvero:

minβ(YXβ)T(YXβ)+i|βi|

La prima parte è quadratica in (oro sotto) e la seconda è una curva quadrata (verde sotto). La linea nera è la linea di intersezione. βLa funzione obiettivo LASSO

Il minimo si trova sulla curva di intersezione, qui tracciata con le curve di contorno della curva quadratica e quadrata:

Curve di contorno di LASSO

Puoi vedere che il minimo è su uno degli assi, quindi ha eliminato quella variabile dalla regressione.

Puoi controllare il mio post sul blog sull'utilizzo delle penalità per la regressione e la selezione delle variabili (altrimenti noto come regolarizzazione del lazo). L1


8
(+1) ma per il post sul blog, il che è davvero buono. Sarebbe bello se qui espandessi in qualche modo la tua risposta, poiché ciò aumenterà la probabilità che le informazioni rimangano disponibili.
richiemorrisroe,

2

Qual è la tua precedente convinzione su quanti predittori saranno probabilmente importanti? È probabile che la maggior parte di essi abbia un effetto esattamente zero o che tutto influisca sul risultato, alcune variabili solo meno di altre?

E in che modo lo stato di salute è correlato all'attività predittiva?

Se ritieni che siano importanti solo poche variabili, puoi provare lo spike e il slab precedenti (nel pacchetto spikeSlabGAM di R, per esempio), o L1. Se pensi che tutti i predittori influenzino il risultato, potresti essere sfortunato.

E in generale, si applicano tutte le avvertenze relative all'inferenza causale dai dati osservativi.


2

Qualunque cosa tu faccia, vale la pena ottenere intervalli di confidenza bootstrap sui gradi di importanza dei predittori per dimostrare che puoi davvero farlo con il tuo set di dati. Sono dubbioso che uno qualsiasi dei metodi possa trovare in modo affidabile i "veri" predittori.


1

Ricordo che la regressione di Lasso non funziona molto bene quando , ma non ne sono sicuro. Penso che in questo caso Elastic Net sia più appropriato per la selezione delle variabili.np


Questo è vero, più precisamente quando n << p, vedi questa originale carta a rete elastica: stanford.edu/~hastie/Papers/…
Cam.Davidson.Pilon

1
Quando n <p, LASSO seleziona al massimo n variabili.
miura,
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.