Come gestire i valori mancanti per preparare i dati per la selezione delle funzionalità con LASSO?


11

La mia situazione:

  • campione di piccole dimensioni: 116
  • variabile di risultato binario
  • lungo elenco di variabili esplicative: 44
  • le variabili esplicative non venivano dalla cima della mia testa; la loro scelta era basata sulla letteratura.
  • la maggior parte dei casi nel campione e la maggior parte delle variabili hanno valori mancanti.

Approccio alla selezione della funzione scelta: LASSO

Il pacchetto glmnet di R non mi permette di eseguire la routine glmnet, apparentemente a causa dell'esistenza di valori mancanti nel mio set di dati. Sembra che ci siano vari metodi per gestire i dati mancanti, quindi vorrei sapere:

  • LASSO impone delle restrizioni in termini di metodo di imputazione che posso usare?
  • Quale sarebbe la scommessa migliore per il metodo di imputazione? Idealmente, ho bisogno di un metodo che potrei eseguire su SPSS (preferibilmente) o R.

AGGIORNAMENTO1: Da alcune delle risposte sottostanti è emerso che ho affrontato questioni di base prima di considerare i metodi di imputazione. Vorrei aggiungere qui nuove domande a riguardo. Sulla risposta che suggerisce la codifica come valore costante e la creazione di una nuova variabile per gestire i valori "non applicabili" e l'uso del lazo di gruppo:

  • Diresti che se uso il gruppo LASSO, sarei in grado di utilizzare l'approccio suggerito ai predittori continui anche ai predittori categorici? In tal caso, suppongo che sarebbe equivalente alla creazione di una nuova categoria - sono diffidente sul fatto che ciò possa introdurre distorsioni.
  • Qualcuno sa se il pacchetto glmnet di R supporta il gruppo LASSO? In caso contrario, qualcuno ne suggerirebbe un altro che lo fa in combinazione con la regressione logistica? Diverse opzioni che menzionano il gruppo LASSO possono essere trovate nel repository CRAN, qualche suggerimento del più appropriato per il mio caso? Forse SGL?

Questo è il seguito di una mia precedente domanda ( Come selezionare un sottoinsieme di variabili dalla mia lunga lista originale per eseguire analisi di regressione logistica? ).

OBS: Non sono uno statistico.


(1) Il miglior approccio all'imputazione dipende dalla proporzione e dal modello dei valori mancanti, dalle relazioni tra le variabili e dalle ipotesi che si è pronti a formulare riguardo ai motivi dei valori mancanti. (2) È possibile utilizzare qualsiasi metodo di imputazione singolo per fornire input a LASSO; la difficoltà sta nel valutare in che modo l'imputazione influisce sui risultati. Non so come combinare l'imputazione multipla con LASSO (senza dubbio qualcuno lo fa), ma un confronto informale dei risultati di diverse esecuzioni di imputazione (sono gli stessi predittori solitamente selezionati?) Potrebbe essere comunque informativo.
Scortchi - Ripristina Monica

@Scortchi: la maggior parte dei miei valori mancanti rientra nella categoria "non applicabile". Ad esempio: nella variabile "età della femmina adulta in famiglia", casi in cui il maschio adulto è vedova. In realtà, suppongo di dover fare un passo indietro qui: dovrei considerare i valori di 0 in variabili continue come valori mancanti? Ad esempio: 0 anni di istruzione, 0 membri della famiglia tra 14 e 60 anni.
Perplesso il

È difficile immaginare una situazione in cui vorresti trattarlo come un fatto sconosciuto di una femmina assente piuttosto che un fatto noto sulla famiglia. La domanda sugli zeri è difficile da capire: ti stai chiedendo se, ad esempio, nessun anno di istruzione è un valore non plausibile o 0 potrebbe essere usato per codificare un valore mancante? (E poi come faccio a saperlo?) Non c'è certamente alcun motivo generale per trattare 0 come indice di mancanza.
Scortchi - Ripristina Monica

@Scortchi: A proposito della variabile dell'età femminile, capisco cosa intendi. Ma il problema diventa: come potrei codificare il caso femminile assente se non come NA? A proposito di zero: sì, questa era esattamente la mia domanda, scusate se non era chiaro. Pensavo che il programma potesse avere qualche problema nella gestione di valori zero e che non potesse "capire" cosa intendevo con esso.
Perplesso il

È possibile codificarlo come qualsiasi valore costante e introdurre una variabile indicatore per presenza / assenza (e utilizzare il gruppo LASSO). Nessun motivo per cui LASSO o qualsiasi altro programma di regressione dovrebbe gestire erroneamente i valori zero per i predittori. [Per favore, non prenderla nel modo sbagliato, ma queste sono domande molto basilari, suggerendo che se questo è per divertimento potresti voler iniziare con problemi più semplici, o se per davvero potresti voler consultare uno statistico.]
Scortchi - Ripristina Monica

Risposte:


11

Quando un predittore continuo contiene valori 'non applicabili' è spesso utile codificarlo utilizzando due variabili:x

x1={cwhen x is not applicablexotherwise

dove è una costante, ec

x2={1when x is not applicable0otherwise

Supponiamo che il predittore lineare per la risposta sia dato da

η=β0+β1x1+β2x2+

che si risolve in

η=β0+β1x1+

quando viene misurata , oppure ax

η=β0+β1c+β2+

quando x non è "non applicabile". La scelta di è arbitraria e non influenza le stime dell'intercetta o della pendenza ; descrive l'effetto di 's come' non applicabile 'rispetto a quando .cβ0β1β2xx=c

Questo non è un approccio adatto quando la risposta varia in base a un valore sconosciuto di : la variabilità del gruppo "mancante" sarà gonfiata e le stime dei coefficienti di altri predittori distorte a causa del confondimento. Meglio imputare i valori mancanti.x

L'uso di LASSO introduce due problemi:

  1. La scelta di influenza i risultati poiché la quantità di restringimento applicata dipende dall'entità delle stime del coefficiente.c
  2. Devi assicurarti che e siano entrambi dentro o entrambi fuori dal modello selezionato.x1x2

Puoi risolverli entrambi usando piuttosto il gruppo LASSO con un gruppo comprendente & : la penalità -norm viene applicata a -norm della matrice ortonormalizzata . (I predittori categorici sono i figli del poster del gruppo LASSO: il codice "non applicabile" sarebbe semplicemente un livello separato, come spesso fatto nella regressione non aperta.) Vedi Meier et al (2008), JRSS B, 70 , 1, "The lazo di gruppo per la regressione logistica " & grplasso .x1x2L1L2[x1 x2]


Qualcuno sa se il pacchetto glmnet di R supporta il gruppo LASSO? In caso contrario, qualcuno ne suggerirebbe un altro che lo fa in combinazione con la regressione logistica? Diverse opzioni che menzionano il gruppo LASSO possono essere trovate nel repository CRAN, qualche suggerimento del più appropriato per il mio caso? Forse SGL?
Perplesso il

Quindi, diresti che se uso il gruppo LASSO, sarei in grado di usare l'approccio che suggerisci ai predittori continui anche ai predittori categorici?
Perplesso il

5

L'imputazione multipla non è mai un cattivo approccio. Si potrebbe anche fare la massima verosimiglianza con le informazioni complete. Buona recensione e confronto qui e qui .

Ma se stai seguendo quella strada, considera l'utilizzo di Stan per adattare l'imputazione ML contemporaneamente alla tua regressione come singolo modello bayesiano, dal momento che LASSO è comunque un caso speciale di regressione bayesiana .


Avevo frainteso il metodo di imputazione multipla, ora vedo che sarebbe applicabile al mio caso. Ho modificato la mia domanda per riflettere questo. Sai se SPSS o R eseguono due opzioni che hai menzionato?
Perplesso il

1
C'è un pacchetto R miche potrebbe aiutarti.
Shadowtalker,

2
Puoi far passare Stan attraverso R (vedi RStan ).
Scortchi - Ripristina Monica

Ulteriori pacchetti di imputazione multipla per R includono Ameliae mice.
Sycorax dice di reintegrare Monica il

0

Il comando CATREG in Statistiche gestisce i dati mancanti con LASSO. È possibile escludere i casi in modo elenco o imputare la procedura sebbene il nome suggerisca che è per le variabili categoriali, è possibile impostare la scala su Numerico per gestire il caso continuo.


questo è SAS PROC CATREG, immagino?
Ben Bolker,

@JKP: in realtà mi ero imbattuto in questo comando. Tuttavia, considerando che la mia variabile outome è binaria, presumo che la regressione logistica sia più appropriata della regressione categoriale (CATREG) - ho ragione? Inoltre, le opzioni in CATREG sembrano piuttosto limitate: puoi solo scegliere tra escludere casi, sostituire valori mancanti con valori medi o creare una categoria aggiuntiva.
Perplesso il

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.