Ermittlung signifikanter Prädiktoren aus vielen unabhängigen Variablen

31

In einem Datensatz von zwei nicht überlappenden Populationen (Patienten & Gesunde, insgesamt ) möchte ich (aus unabhängigen Variablen) signifikante Prädiktoren für eine kontinuierliche abhängige Variable finden. Korrelation zwischen Prädiktoren ist vorhanden. Ich bin daran interessiert herauszufinden, ob einer der Prädiktoren "in der Realität" mit der abhängigen Variablen zusammenhängt (anstatt die abhängige Variable so genau wie möglich vorherzusagen). Da ich mit den zahlreichen möglichen Ansätzen überfordert war, möchte ich fragen, welcher Ansatz am besten zu empfehlen ist.300n=60300

  • Nach meinem Verständnis wird das schrittweise Einschließen oder Ausschließen von Prädiktoren nicht empfohlen

  • Führen Sie z. B. eine lineare Regression für jeden Prädiktor separat durch und korrigieren Sie die p-Werte für den Mehrfachvergleich mit FDR (wahrscheinlich sehr konservativ?)

  • Prinzipal-Komponenten-Regression: Schwierig zu interpretieren, da ich nicht über die Vorhersagekraft einzelner Prädiktoren, sondern nur über die Komponenten berichten kann.

  • Irgendwelche anderen Vorschläge?

Witz
quelle
Ich habe von Leuten gehört, die L1-regulierte Regression verwenden, um solche Dinge zu tun. Aber ich weiß nicht genug, um eine richtige Antwort zu schreiben ...
König
2
Um die besten Empfehlungen zu geben, sollten wir wissen, wie Sie vorgehen, nachdem Sie "signifikante Prädiktoren" identifiziert haben. Versuchen Sie , das Ergebnis so genau wie möglich vorherzusagen ? Finden Sie einen sparsamen Weg, um dies vorherzusagen (z. B. mithilfe eines Satzes von bis zu k Prädiktoren, die dies effizient tun; erklären Sie, was das Ergebnis "in der Realität" verursacht; oder etwas anderes? Wie groß ist Ihr Datensatz?
rolando2
@rolando: danke für den Kommentar! Ich habe die Frage aktualisiert: Meine Gesamtzahl der Beobachtungen beträgt n = 60 Probanden. Mein Ziel ist es nicht, die abhängige Variable so genau wie möglich vorherzusagen, sondern zu erklären, was das Ergebnis "in der Realität" verursacht (= ich hoffe, einen Zusammenhang zwischen Variablen zu finden, der in späteren Studien / Datensätzen bestätigt werden könnte)
jokel
Ich habe auch eine Folgefrage gepostet, die einige Dummy-Daten enthält. Für alle Hinweise wäre ich sehr dankbar. stats.stackexchange.com/questions/34859/…
jokel

Antworten:

30

Ich würde empfehlen, ein Glm mit Lasso-Regularisierung zu versuchen . Dies fügt dem Modell eine Strafe für die Anzahl der Variablen hinzu. Wenn Sie die Strafe erhöhen, verringert sich die Anzahl der Variablen im Modell.

Sie sollten Kreuzvalidierung verwenden, um den Wert des Strafparameters auszuwählen. Wenn Sie R haben, empfehle ich die Verwendung des glmnet-Pakets . Verwendung alpha=1für Lasso-Regression und alpha=0für Ridge-Regression. Wenn Sie einen Wert zwischen 0 und 1 einstellen, wird eine Kombination aus Lasso und Kammstrafen verwendet, die auch als elastisches Netz bezeichnet werden.

Zach
quelle
4
Ich stimme Zach zu. David Cassell und ich haben einen Artikel darüber geschrieben, der sich auf SAS konzentriert, aber nicht ganz. Es stoppt schrittweise .
Peter Flom - Wiedereinsetzung von Monica
1
Ich denke, es ist 0 für Grat und 1 für Lasso
König
1
@Zach: Danke für die Hinweise. Gibt es eine Möglichkeit, eine Teststatistik zu erhalten, mit der ich die Bedeutung einzelner Prädiktoren beurteilen kann? Am Ende möchte ich sagen können, dass "Prädiktor X signifikant mit der abhängigen Variablen Y zusammenhängt".
Jokel
2
In Bezug auf CIs aus dem Handbuch eines anderen R-Pakets, das das LASSO implementiert ( cran.r-project.org/web/packages/penalized/vignettes/… , Seite 18): "Es ist eine sehr natürliche Frage, nach Standard-Regressionsfehlern zu fragen Koeffizienten oder andere geschätzte Größen Grundsätzlich können solche Standardfehler leicht berechnet werden, zB mit dem Bootstrap. Dennoch stellt dieses Paket sie absichtlich nicht zur Verfügung. Der Grund dafür ist, dass Standardfehler für stark voreingenommene Schätzungen, wie sie auftreten, nicht sehr aussagekräftig sind von bestraften Schätzmethoden. "
Miura
2
@miura Kürzlich wurde eine Teststatistik für genau das eingeführt, auch von den ursprünglichen Lasso-Autoren: Papier und Dias (leichter zu lesen)
Cam.Davidson.Pilon
23

Um die Antwort von Zach (+1) zu erweitern, versuchen Sie, wenn Sie die LASSO-Methode in der linearen Regression verwenden, die Summe aus einer quadratischen Funktion und einer Absolutwertfunktion zu minimieren, dh:

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

βDie LASSO-Zielfunktion

Das Minimum liegt auf der Schnittkurve, hier aufgetragen mit den Konturkurven der quadratischen und quadratischen Kurve:

Konturlinien von LASSO

Sie können sehen, dass sich das Minimum auf einer der Achsen befindet, daher wurde diese Variable aus der Regression entfernt.

L1

Cam.Davidson.Pilon
quelle
8
(+1) aber für den Blog-Post, der wirklich gut ist. Es wäre schön, wenn Sie Ihre Antwort hier etwas erweitern würden, da dies die Wahrscheinlichkeit erhöht, dass die Informationen verfügbar bleiben.
Richiemorrisroe
2

Was war Ihre vorherige Meinung dazu, wie viele Prädiktoren wahrscheinlich wichtig sind? Ist es wahrscheinlich, dass die meisten von ihnen einen Effekt von genau Null haben oder dass alles das Ergebnis beeinflusst, einige Variablen nur weniger als andere?

Und wie hängt der Gesundheitszustand mit der vorausschauenden Aufgabe zusammen?

Wenn Sie der Meinung sind, dass nur wenige Variablen wichtig sind, können Sie vorab (z. B. im spikeSlabGAM-Paket des R) oder mit L1 versuchen, Spike und Slab zu testen. Wenn Sie glauben, dass alle Prädiktoren das Ergebnis beeinflussen, haben Sie möglicherweise Pech.

Im Allgemeinen gelten alle Vorbehalte, die sich auf kausale Schlussfolgerungen aus Beobachtungsdaten beziehen.

Scellus
quelle
2

Was auch immer Sie tun, es lohnt sich, Bootstrap-Konfidenzintervalle in die Rangliste der Prädiktoren aufzunehmen, um zu zeigen, dass Sie dies wirklich mit Ihrem Datensatz tun können. Ich bezweifle, dass eine der Methoden zuverlässig die "wahren" Prädiktoren finden kann.

Frank Harrell
quelle
1

np

Andy Lu
quelle
Dies ist wahr, genauer gesagt, wenn n << p, siehe dieses ursprüngliche elastische
Netzpapier
1
Wenn n <p, wählt LASSO höchstens n Variablen aus.
Miura