Myślę, że próbując zinterpretować te wykresy współczynników przez , lub, bardzo pomaga wiedzieć, jak wyglądają w niektórych prostych przypadkach. W szczególności, jak wyglądają, gdy macierz projektu modelu jest nieskorelowana, w porównaniu z korelacją w projekcie.λlog( λ )∑ja| βja|
W tym celu stworzyłem niektóre skorelowane i nieskorelowane dane, aby wykazać:
x_uncorr <- matrix(runif(30000), nrow=10000)
y_uncorr <- 1 + 2*x_uncorr[,1] - x_uncorr[,2] + .5*x_uncorr[,3]
sigma <- matrix(c( 1, -.5, 0,
-.5, 1, -.5,
0, -.5, 1), nrow=3, byrow=TRUE
)
x_corr <- x_uncorr %*% sqrtm(sigma)
y_corr <- y_uncorr <- 1 + 2*x_corr[,1] - x_corr[,2] + .5*x_corr[,3]
Dane x_uncorr
mają nieskorelowane kolumny
> round(cor(x_uncorr), 2)
[,1] [,2] [,3]
[1,] 1.00 0.01 0.00
[2,] 0.01 1.00 -0.01
[3,] 0.00 -0.01 1.00
podczas gdy x_corr
ma wstępnie ustaloną korelację między kolumnami
> round(cor(x_corr), 2)
[,1] [,2] [,3]
[1,] 1.00 -0.49 0.00
[2,] -0.49 1.00 -0.51
[3,] 0.00 -0.51 1.00
Teraz spójrzmy na wykresy lasso dla obu tych przypadków. Najpierw niepowiązane dane
gnet_uncorr <- glmnet(x_uncorr, y_uncorr)
plot(gnet_uncorr)
Wyróżnia się kilka funkcji
- Predyktory wchodzą do modelu w kolejności ich wielkości rzeczywistego współczynnika regresji liniowej.
- ∑ja| βja|∑ja| βja|
- Gdy nowy predyktor wchodzi do modelu, wpływa on na nachylenie ścieżki współczynnika wszystkich predyktorów znajdujących się już w modelu w sposób deterministyczny. Na przykład, gdy drugi predyktor wchodzi do modelu, nachylenie pierwszej ścieżki współczynnika jest przecinane na pół. Gdy trzeci predyktor wchodzi do modelu, nachylenie ścieżki współczynnika wynosi jedną trzecią jego pierwotnej wartości.
Są to wszystkie ogólne fakty, które dotyczą regresji Lasso z nieskorelowanymi danymi, i wszystkie mogą być udowodnione ręcznie (dobre ćwiczenia!) Lub znalezione w literaturze.
Teraz zróbmy skorelowane dane
gnet_corr <- glmnet(x_corr, y_corr)
plot(gnet_corr)
Możesz przeczytać niektóre rzeczy z tego wątku, porównując go do nieskorelowanego przypadku
- Ścieżki pierwszego i drugiego predyktora mają taką samą strukturę jak przypadek nieskorelowany, dopóki trzeci predyktor nie wejdzie do modelu, nawet jeśli są skorelowane. Jest to szczególna cecha przypadku dwóch predyktorów, który mogę wyjaśnić w innej odpowiedzi, jeśli jest zainteresowanie, zajęłoby mi to trochę daleko od obecnej dyskusji.
- ∑ | βja|
Spójrzmy teraz na twoją fabułę z zestawu danych samochodów i przeczytaj kilka interesujących rzeczy (odtworzyłem tutaj twoją fabułę, aby łatwiej było przeczytać tę dyskusję):
Słowo ostrzeżenia : Napisałem następującą analizę opartą na założeniu, że krzywe pokazują znormalizowane współczynniki, w tym przykładzie nie. Niestandaryzowane współczynniki nie są bezwymiarowe i nieporównywalne, dlatego nie można wyciągać z nich wniosków w zakresie znaczenia predykcyjnego. Aby następująca analiza była prawidłowa, udawaj, że wykres ma znormalizowane współczynniki i wykonaj własną analizę na znormalizowanych ścieżkach współczynników.
- Jak mówisz,
wt
predyktor wydaje się bardzo ważny. Najpierw wchodzi do modelu i powoli i równomiernie schodzi do swojej ostatecznej wartości. Ma kilka korelacji, które sprawiają, że jazda jest nieco wyboista, am
w szczególności wydaje się mieć drastyczny efekt, gdy wjeżdża.
am
jest również ważne. Przychodzi później i jest z nim skorelowany wt
, ponieważ wpływa wt
gwałtownie na zbocze . Jest to również skorelowane z carb
i qsec
, ponieważ nie widzimy przewidywalnego złagodzenia nachylenia, gdy te wchodzą. Po tych czterech zmiennych weszły jednak, że nie zobaczyć piękny skorelowane wzór, więc wydaje się być skorelowane ze wszystkimi czynnikami prognostycznymi na końcu.
- Coś wchodzi około 2.25 na osi X, ale sama ścieżka jest niezauważalna, można to wykryć tylko poprzez wpływ na parametry
cyl
i wt
.
cyl
jest dość fascynujące. Zajmuje drugie miejsce, więc jest ważne w przypadku małych modeli. Po wprowadzeniu innych zmiennych, a zwłaszcza ich am
wprowadzeniu, nie jest już tak ważny, a jego trend się odwraca, a ostatecznie jest prawie całkowicie usunięty. Wygląda na cyl
to, że zmienne wprowadzane na końcu procesu mogą całkowicie uchwycić efekt . To, czy bardziej odpowiednie jest zastosowanie cyl
, czy uzupełniająca grupa zmiennych, naprawdę zależy od kompromisu wariancji odchylenia. Posiadanie grupy w ostatecznym modelu znacznie zwiększy jej wariancję, ale może się zdarzyć, że zrekompensuje to niższe odchylenie!
To małe wprowadzenie do tego, jak nauczyłem się czytać informacje z tych fabuł. Myślę, że to mnóstwo zabawy!
Dzięki za świetną analizę. Mówiąc prosto, powiedzmy, że wt, am i cyl są 3 najważniejszymi predyktorami mpg. Ponadto, jeśli chcesz utworzyć model predykcji, które z nich uwzględnisz na podstawie tej liczby: wt, am i cyl? Lub inna kombinacja. Ponadto wydaje się, że nie potrzebujesz najlepszej lambda do analizy. Czy to nie jest ważne, jak w regresji grzbietu?
Powiedziałbym, że argumenty za wt
i am
są jednoznaczne, są ważne. cyl
jest znacznie bardziej subtelny, jest ważny w małym modelu, ale w ogóle nie jest istotny w dużym.
Nie byłbym w stanie ustalić, co należy uwzględnić na podstawie samej liczby, na co naprawdę należy odpowiedzieć w kontekście tego, co robisz. Można powiedzieć, że jeśli chcesz model trzy przewidywań, a następnie wt
, am
i cyl
są dobrym wyborem, ponieważ są one istotne w wielkim schemacie rzeczy i powinien skończyć się o rozsądne rozmiary efekt w małym modelu. Jest to oparte na założeniu, że masz jakiś zewnętrzny powód, dla którego pragniesz małego trójprzewidywanego modelu.
To prawda, że ten typ analizy obejmuje całe spektrum lambd i pozwala wyeliminować relacje w zakresie złożoności modelu. To powiedziawszy, dla ostatecznego modelu, myślę, że strojenie optymalnej lambda jest bardzo ważne. Wobec braku innych ograniczeń zdecydowanie użyłbym weryfikacji krzyżowej, aby znaleźć, gdzie wzdłuż tego spektrum jest najbardziej przewidywalna lambda, a następnie użyć tej lambda do ostatecznego modelu i ostatecznej analizy.
λ
Z drugiej strony, czasami istnieją zewnętrzne ograniczenia dotyczące złożoności modelu (koszty wdrożenia, starsze systemy, minimalizm wyjaśniający, interpretacja biznesowa, dziedzictwo estetyczne), a tego rodzaju kontrola może naprawdę pomóc w zrozumieniu kształtu twoich danych oraz kompromisy, które robisz, wybierając mniejszy niż optymalny model.
-1
wglmnet(as.matrix(mtcars[-1]), mtcars[,1])
.