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?