Przepraszam, jeśli to pytanie jest trochę podstawowe.
Chciałbym użyć selekcji zmiennych LASSO dla modelu wielokrotnej regresji liniowej w R. Mam 15 predyktorów, z których jeden jest kategoryczny (czy to spowoduje problem?). Po ustawieniu mojego i Y używam następujące polecenia:
model = lars(x, y)
coef(model)
Mój problem polega na tym, kiedy używam coef(model)
. Zwraca macierz z 15 wierszami, z każdym dodatkowym predyktorem dodawanym za każdym razem. Jednak nie ma sugestii, który model wybrać. Czy coś przeoczyłem? Czy istnieje sposób, aby uzyskać pakiet Larsa, aby zwrócił tylko jeden „ najlepszy ” model?
Istnieją inne posty sugerujące użycie glmnet
zamiast tego, ale wydaje się to bardziej skomplikowane. Próba jest następujący, przy użyciu tego samego i y . Czy coś tu przegapiłem ?:
cv = cv.glmnet(x, y)
model = glmnet(x, y, type.gaussian="covariance", lambda=cv$lambda.min)
predict(model, type="coefficients")
Ostatnie polecenie zwraca listę moich zmiennych, większość ze współczynnikiem, chociaż niektóre mają wartość = 0. Czy to właściwy wybór „ najlepszego ” modelu wybranego przez LASSO? Jeśli następnie dopasuję model liniowy ze wszystkimi moimi zmiennymi, które miały współczynniki not=0
, otrzymam bardzo podobne, ale nieco inne, oszacowania współczynników. Czy jest powód tej różnicy? Czy akceptowalny byłby remont modelu liniowego z tymi zmiennymi wybranymi przez LASSO i uznanie go za mój ostateczny model? W przeciwnym razie nie widzę żadnych wartości p dla istotności. Czy coś przeoczyłem?
Robi
type.gaussian="covariance"
upewnić się, że glmnet
używa wielu regresji liniowej?
Czy automatyczna normalizacja zmiennych wpływa w ogóle na współczynniki? Czy jest jakiś sposób na uwzględnienie warunków interakcji w procedurze LASSO?
Chciałbym użyć tej procedury bardziej jako demonstracji tego, jak można użyć LASSO, niż w jakimkolwiek modelu, który faktycznie zostanie użyty do każdego ważnego wnioskowania / prognozy, jeśli to cokolwiek zmieni.
Dziękujemy za poświęcenie czasu na przeczytanie tego. Wszelkie ogólne uwagi na temat LASSO / lars / glmnet będą również mile widziane.