Wie gehe ich mit fehlenden Werten um, um Daten für die Merkmalsauswahl mit LASSO vorzubereiten?


10

Meine Situation:

  • kleine Stichprobengröße: 116
  • binäre Ergebnisvariable
  • lange Liste erklärender Variablen: 44
  • erklärende Variablen kamen nicht von oben; Ihre Wahl basierte auf der Literatur.
  • Die meisten Fälle in der Stichprobe und die meisten Variablen haben fehlende Werte.

Ansatz für die ausgewählte Funktionsauswahl: LASSO

Mit dem glmnet-Paket von R kann ich die glmnet-Routine anscheinend nicht ausführen, da in meinem Datensatz fehlende Werte vorhanden sind. Es scheint verschiedene Methoden zum Umgang mit fehlenden Daten zu geben, daher würde ich gerne wissen:

  • Zwingt LASSO eine Einschränkung hinsichtlich der Imputationsmethode, die ich verwenden kann?
  • Was wäre die beste Wahl für die Imputationsmethode? Idealerweise benötige ich eine Methode, die ich auf SPSS (vorzugsweise) oder R ausführen kann.

UPDATE1: Aus einigen der folgenden Antworten wurde deutlich, dass ich mich mit grundlegenderen Fragen befasst habe, bevor ich über Imputationsmethoden nachgedacht habe. Ich möchte hier neue Fragen dazu hinzufügen. Zu der Antwort, die die Codierung als konstanten Wert und die Erstellung einer neuen Variablen vorschlägt, um mit "nicht zutreffenden" Werten und der Verwendung von Gruppen-Lasso umzugehen:

  • Würden Sie sagen, dass ich bei Verwendung der Gruppe LASSO den vorgeschlagenen Ansatz für kontinuierliche Prädiktoren auch für kategoriale Prädiktoren verwenden kann? Wenn ja, gehe ich davon aus, dass dies der Erstellung einer neuen Kategorie gleichkommt - ich bin besorgt, dass dies zu Verzerrungen führen kann.
  • Weiß jemand, ob das glmnet-Paket von R die Gruppe LASSO unterstützt? Wenn nicht, würde jemand einen anderen vorschlagen, der dies in Kombination mit logistischer Regression tut? Im CRAN-Repository finden Sie mehrere Optionen, in denen die Gruppe LASSO erwähnt wird. Gibt es Vorschläge, die für meinen Fall am besten geeignet sind? Vielleicht SGL?

Dies ist eine Fortsetzung einer früheren Frage von mir ( Wie wähle ich eine Teilmenge von Variablen aus meiner ursprünglichen langen Liste aus, um eine logistische Regressionsanalyse durchzuführen? ).

OBS: Ich bin kein Statistiker.


(1) Der beste Ansatz zur Imputation hängt vom Anteil und Muster fehlender Werte, den Beziehungen zwischen den Variablen und den Annahmen ab, die Sie über die Gründe für fehlende Werte treffen möchten. (2) Jede einzelne Imputationsmethode kann verwendet werden, um eine Eingabe für LASSO bereitzustellen; Die Schwierigkeit besteht darin, zu beurteilen, wie sich die Imputation auf die Ergebnisse auswirkt. Ich weiß nicht, wie man multiple Imputation mit LASSO kombiniert (zweifellos jemand), aber ein informeller Vergleich der Ergebnisse aus verschiedenen Imputationsläufen (werden normalerweise dieselben Prädiktoren ausgewählt?) Könnte immer noch informativ sein.
Scortchi - Monica wieder einsetzen

@ Scortchi: Die meisten meiner fehlenden Werte fallen in die Kategorie 'nicht zutreffend'. ZB: In der Variablen "Alter der erwachsenen Frau im Haushalt" Fälle, in denen der erwachsene Mann eine Witwe ist. Eigentlich muss ich hier einen Schritt zurück machen: Soll ich Werte von 0 in stetigen Variablen als fehlende Werte behandeln? ZB: 0 Jahre Ausbildung, 0 Haushaltsmitglieder zwischen 14 und 60 Jahren.
Verwirrt

Es ist schwer vorstellbar, dass Sie dies als unbekannte Tatsache über eine abwesende Frau und nicht als bekannte Tatsache über den Haushalt behandeln möchten. Die Frage nach Nullen ist schwer zu verstehen: Fragen Sie sich, ob z. B. keine Schuljahre ein unplausibler Wert sind oder ob 0 verwendet werden könnte, um einen fehlenden Wert zu codieren? (Und woher soll ich das wissen?) Es gibt sicherlich keinen allgemeinen Grund, 0 als Hinweis auf Fehlbarkeit zu behandeln.
Scortchi - Monica wieder einsetzen

@ Scortchi: Über die weibliche Altersvariable verstehe ich, was du meinst. Aber das Problem wird dann: Wie würde ich den abwesenden weiblichen Fall codieren, wenn nicht als NA? Über Nullen: Ja, das war genau meine Frage, sorry, wenn es nicht klar war. Ich dachte, dass das Programm Probleme beim Umgang mit Nullwerten haben könnte und dass es möglicherweise nicht "versteht", was ich damit meinte.
Verwirrt

Sie können ihn als beliebigen konstanten Wert codieren und eine Indikatorvariable für Anwesenheit / Abwesenheit einführen (und die Gruppe LASSO verwenden). Kein Grund, warum LASSO oder ein anderes Regressionsprogramm Nullwerte für Prädiktoren falsch behandeln sollte. [Bitte verstehen Sie das nicht falsch, aber dies sind sehr grundlegende Fragen, die darauf hindeuten, dass Sie, wenn dies zum Spaß ist, mit einfacheren Problemen beginnen möchten oder dass Sie, wenn es wirklich so ist, einen Statistiker konsultieren möchten.]
Scortchi - Monica wieder einsetzen

Antworten:


10

Wenn ein kontinuierlicher Prädiktor 'nicht zutreffende' Werte enthält, ist es oft nützlich, ihn mit zwei Variablen zu codieren:x

x1={cwhen x is not applicablexotherwise

wobei eine Konstante ist, &c

x2={1when x is not applicable0otherwise

Angenommen, der lineare Prädiktor für die Antwort ist gegeben durch

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

was sich auflöst

η=β0+β1x1+

wenn gemessen wird oder bisx

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

wenn x 'nicht zutreffend' ist. Die Wahl von ist willkürlich und hat keinen Einfluss auf die Schätzungen des Abschnitts oder der Steigung ; beschreibt den Effekt, dass 'nicht anwendbar' ist, verglichen mit .cβ0β1β2xx=c

Dies ist kein geeigneter Ansatz, wenn die Antwort gemäß einem unbekannten Wert von variiert : Die Variabilität der 'fehlenden' Gruppe wird aufgeblasen, und Schätzungen der Koeffizienten anderer Prädiktoren werden aufgrund von Verwechslungen verzerrt. Fehlende Werte besser unterstellen.x

Die Verwendung von LASSO führt zu zwei Problemen:

  1. Die Wahl von wirkt sich auf die Ergebnisse aus, da das Ausmaß der angewendeten Schrumpfung von den Größen der Koeffizientenschätzungen abhängt.c
  2. Sie müssen sicherstellen, dass und entweder beide innerhalb oder beide außerhalb des ausgewählten Modells liegen.x1x2

Sie können beide Probleme lösen, indem Sie stattdessen die Gruppe LASSO mit einer Gruppe aus und : Die wird auf die der orthonormalisierten Matrix angewendet . (Kategoriale Prädiktoren sind das Aushängeschild für die Gruppe LASSO - Sie würden einfach 'nicht zutreffend' als separate Ebene codieren, wie dies häufig bei unpenalisierter Regression der Fall ist.) Siehe Meier et al. (2008), JRSS B, 70 , 1, "The Gruppen-Lasso für logistische Regression " & grplasso .x1x2L1L2[x1 x2]


Weiß jemand, ob das glmnet-Paket von R die Gruppe LASSO unterstützt? Wenn nicht, würde jemand einen anderen vorschlagen, der dies in Kombination mit logistischer Regression tut? Im CRAN-Repository finden Sie mehrere Optionen, in denen die Gruppe LASSO erwähnt wird. Gibt es Vorschläge, die für meinen Fall am besten geeignet sind? Vielleicht SGL?
Verwirrt

Würden Sie sagen, wenn ich die Gruppe LASSO verwende, könnte ich den von Ihnen vorgeschlagenen Ansatz für kontinuierliche Prädiktoren auch für kategoriale Prädiktoren verwenden?
Verwirrt

5

Multiple Imputation ist niemals ein schlechter Ansatz. Sie können auch Full Information Maximum Likelihood ausführen. Gute Bewertung und Vergleich hier und hier .

Wenn Sie diesen Weg gehen, sollten Sie Stan verwenden , um die ML-Imputation gleichzeitig mit Ihrer Regression als einzelnes Bayes'sches Modell anzupassen , da LASSO ohnehin ein Sonderfall der Bayes'schen Regression ist .


Ich hatte die Methode der multiplen Imputation falsch verstanden, jetzt sehe ich, dass sie für meinen Fall anwendbar sein würde. Ich habe meine Frage bearbeitet, um dies widerzuspiegeln. Wissen Sie, ob entweder SPSS oder R zwei von Ihnen erwähnte Optionen ausführen?
Verwirrt

1
Es gibt ein R-Paket mi, das Ihnen helfen könnte.
Shadowtalker

2
Sie können Stan durch R führen (siehe RStan ).
Scortchi - Monica wieder einsetzen

Zusätzliche Mehrfachimputationspakete für R umfassen Ameliaund mice.
Sycorax sagt Reinstate Monica

0

Der Befehl CATREG in Statistik behandelt fehlende Daten mit LASSO. Sie können Fälle listweise ausschließen oder die Prozedur unterstellen lassen. Obwohl der Name darauf hindeutet, dass es sich um kategoriale Variablen handelt, können Sie die Skalierung auf Numerisch setzen, um den fortlaufenden Fall zu behandeln.


Das ist SAS PROC CATREG, vermute ich?
Ben Bolker

@JKP: Ich war tatsächlich auf diesen Befehl gestoßen. Angesichts der Tatsache, dass meine Outome-Variable binär ist, gehe ich jedoch davon aus, dass eine logische Regression angemessener wäre als eine kategoriale Regression (CATREG) - habe ich Recht? Außerdem scheinen die Optionen in CATREG eher begrenzt zu sein. Sie können nur zwischen dem Ausschließen von Fällen, dem Ersetzen fehlender Werte durch Mittelwerte oder dem Erstellen einer zusätzlichen Kategorie wählen.
Verwirrt

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.