Wie kann bei Verwendung von glmnet die p-Wert-Signifikanz gemeldet werden, um die Signifikanz von Prädiktoren zu beanspruchen?


9

Ich habe eine große Anzahl von Prädiktoren (mehr als 43.000) zur Vorhersage einer abhängigen Variablen, die 2 Werte annehmen kann (0 oder 1). Die Anzahl der Beobachtungen beträgt mehr als 45.000. Die meisten Prädiktoren sind Unigramme, Bigramme und Trigramme von Wörtern, daher besteht zwischen ihnen ein hohes Maß an Kollinearität. Auch in meinem Datensatz gibt es viel Sparsamkeit. Ich verwende die logistische Regression aus dem glmnet-Paket, die für die Art von Datensatz funktioniert, die ich habe. Mein Problem ist, wie ich die p-Wert-Signifikanz der Prädiktoren angeben kann. Ich erhalte zwar den Beta-Koeffizienten, aber gibt es eine Möglichkeit zu behaupten, dass die Beta-Koeffizienten statistisch signifikant sind?

Hier ist mein Code:

library('glmnet')
data <- read.csv('datafile.csv', header=T)
mat = as.matrix(data)
X = mat[,1:ncol(mat)-1] 
y = mat[,ncol(mat)]
fit <- cv.glmnet(X,y, family="binomial")

Eine andere Frage ist: Ich verwende die Standard-Lasso-Strafe Alpha = 1, was das zusätzliche Problem verursacht, dass das Lasso, wenn zwei Prädiktoren kollinear sind, einen zufällig auswählt und dem anderen ein Beta-Gewicht von Null zuweist. Ich habe es auch mit der Ridge-Strafe (Alpha = 0) versucht, bei der stark korrelierten Variablen ähnliche Koeffizienten zugewiesen werden, anstatt eine davon auszuwählen. Das Modell mit Lasso-Strafe gibt mir jedoch eine viel geringere Abweichung als das mit Ridge-Strafe. Gibt es eine andere Möglichkeit, beide Prädiktoren zu melden, die sehr kollinear sind?


Klingt für mich eher nach einem multivariaten Klassifizierungsproblem als nach einem linearen Modell.
ADP

danke @ADP was wird dein vorgeschlagenes Modell für diese Art von Situation sein?
Tan

Antworten:


8

Es gibt ein neues Papier, A Significance Test for the Lasso , einschließlich des Erfinders von LASSO als Autor, der Ergebnisse zu diesem Problem berichtet. Dies ist ein relativ neues Forschungsgebiet, daher decken die Referenzen in der Arbeit viel von dem ab, was an dieser Stelle bekannt ist.

Haben Sie für Ihre zweite Frage ausprobiert ? Oft gibt es einen Wert in diesem mittleren Bereich, der einen guten Kompromiss erzielt. Dies wird als Elastic Net- Regularisierung bezeichnet. Da Sie cv.glmnet verwenden, möchten Sie wahrscheinlich eine Kreuzvalidierung über ein Raster von -Werten durchführen.( λ , α )α(0,1)(λ,α)


2

Inferenz nach der Auswahl ist ein sehr aktives Thema der statistischen Forschung. Meiner Ansicht nach besteht ein Problem mit der in Ein Signifikanztest für das Lasso beschriebenen Methode darin, dass strenge Annahmen erforderlich sind (von hier wiedergegeben ):

  1. Das lineare Modell ist korrekt.
  2. Die Varianz ist konstant.
  3. Die Fehler haben eine Normalverteilung.
  4. Der Parametervektor ist spärlich.
  5. Die Designmatrix weist eine sehr schwache Kollinearität auf. Dies wird normalerweise in Form von Inkohärenz, Eigenwertbeschränkungen oder Inkompatibilitätsannahmen angegeben.

Der Ansatz, den ich als nützlich erachtet habe - solange genügend Daten verfügbar sind - ist die Datenaufteilung. Die Idee der Datenaufteilung geht mindestens auf Moran (1974) zurück und beinhaltet einfach die zufällige Aufteilung der Daten in zwei Sätze, die Auswahl der Modellierung für den ersten Satz und die Schlussfolgerung für den zweiten Satz.

In diesem Fall würden Sie die Daten in zwei Teile teilen, in der ersten Hälfte eine Variablenauswahl durchführen und dann (vorausgesetzt, Sie haben ) in der zweiten Hälfte Standardregressionstechniken verwenden, um die statistische Signifikanz der Koeffizienten zu bestimmen. Natürlich sind in beiden Phasen noch Annahmen erforderlich, aber sie können für jede Phase einzeln leichter zu erfüllen sein.n>p

Sie erwähnen, dass die Kovariaten Uni-, Bi- und Trigramm sind, also hochkollinear. In diesem Fall würde die Anwendung des Lasso in der ersten Stufe auch gegen Annahmen verstoßen - insbesondere # 5 von oben. Um einen solchen Ansatz wirklich nützlich und theoretisch fundiert zu machen, müssten Sie eine Art Kollinearitäts-Screening vor Lasso durchführen.


0

Vielleicht werfen Sie einen Blick auf das CRAN-Paket hdi , das Rückschlüsse auf hochdimensionale Modelle liefert und den Trick machen sollte ... Die vollständigen Methoden sind hier etwas mühsam zu wiederholen (es gibt mehrere, und es ist immer noch ein ziemlich aktiver Bereich von Forschung), aber sie sind in diesem Artikel gut beschrieben: http://projecteuclid.org/euclid.ss/1449670857 (Wenn Sie einige Testdaten öffentlich veröffentlichen oder einige Daten simulieren, kann ich Ihnen auch ein konkretes Beispiel geben)


Sie können dies nicht tun und erhalten aussagekräftige p-Werte. Sie berücksichtigen nicht die Varianz in Ihrer Variablenauswahl.
Matthew Drury

Bearbeitet meine Antwort - Paket hdi, das ich zitiere, sollte in Ordnung sein, und berücksichtigt die Varianz, die durch Ihre Variablenauswahl verursacht wird ...
Tom Wenseleers
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.