Który jest bardziej dokładny glm lub glmnet?

10

R glm i glmnet używają różnych algorytmów.

Kiedy używam obu, zauważam nietrywialne różnice między oszacowanymi współczynnikami.

Interesuje mnie, kiedy jedna jest bardziej dokładna od drugiej, i czas na rozwiązanie / kompromis.

W szczególności mam na myśli przypadek, w którym ustawia się lambda = 0 w glmnet st, szacuje się to samo, co glm.

Will Beauchamp
źródło
1
Pytasz o różnice w wydajności i dokładności, gdy lambda = 0, gdzie te dwa teoretycznie powinny być identyczne. Myślę, że powinieneś dodać to do swojego pytania.
smci

Odpowiedzi:

14

Glmnet służy do regresji elastycznej siatki. Powoduje to karanie wielkości szacowanych współczynników (poprzez połączenie kar L1 i L2). Próbuje wyjaśnić jak najwięcej wariancji danych w modelu, przy zachowaniu niewielkich współczynników modelu. Znalazłem te slajdy pomocne w ich zrozumieniu.

Glm nie używa kary.

Efekt, jak rozumiem, że przy elastycznej siatce możesz zaakceptować pewne odchylenie w zamian za zmniejszenie wariancji estymatora. To, co jest najlepsze, musi zależeć od tego, jak zdefiniujesz „najlepsze” pod względem stronniczości i wariancji. (Np. Wiem, że glmnet ma zalety, gdy masz wiele funkcji w porównaniu do obserwacji)

przypuszczenia
źródło
link wydaje się być zepsuty
ndoogan
link działa teraz
smci
Cóż, po prostu wyjaśniasz, co robi glmnet - ale OP odnosiło się do sytuacji, gdy ustawiłeś lambda = 0 w glmnet, w którym to przypadku wynik powinien w zasadzie zwracać to samo, co (niezapenalizowane) glm (z wyjątkiem niektórych małych liczb różnice związane z metodą cyklicznego dopasowania zejścia współrzędnych stosowaną w glmnet).
Tom Wenseleers,