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?
quelle
Antworten:
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 ) ( λ , α )
quelle
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 ):
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.
quelle
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)
quelle