Słownik metodologiczny · Modele regresji

Regresja grzbietowa i LASSO – regresja z karą za duże współczynniki

Ridge i LASSO ściągają współczynniki regresji w stronę zera, żeby model lepiej przewidywał w nowej próbie. Pokazujemy, czym różnią się kary, jak dobrać λ i jak opisać wynik.

Strona główna / Słownik / Ridge i LASSO
W skrócie: Regresja grzbietowa i LASSO dodają do regresji karę za duże współczynniki. Ridge zmniejsza wszystkie, LASSO część z nich zeruje i w ten sposób wybiera predyktory. Siłę kary λ dobierz walidacją krzyżową, a wynik oceniaj w nowej próbie.

Co to jest regresja grzbietowa i LASSO?

Regresja grzbietowa (ang. ridge regression) i LASSO (ang. least absolute shrinkage and selection operator) to odmiany regresji wielorakiej z karą za duże współczynniki. Kara celowo ściąga oszacowania w stronę zera. Daje to niewielkie obciążenie, ale mniejszą wariancję i zwykle lepsze przewidywania w nowej próbie. Przydają się, gdy predyktorów jest dużo w stosunku do liczby osób albo są silnie skorelowane.

Czym się różnią

ridge: min [ Σ(y − ŷ)² + λ Σ βj² ]   |   LASSO: min [ Σ(y − ŷ)² + λ Σ |βj| ]

λ to siła kary: przy λ = 0 dostajesz zwykłą metodę najmniejszych kwadratów. Hoerl i Kennard (1970) zaproponowali regresję grzbietową jako odpowiedź na współliniowość. Zmniejsza ona wszystkie współczynniki, ale żadnego nie zeruje. Tibshirani (1996) pokazał, że kara w LASSO część współczynników ustawia dokładnie na zero, więc metoda jednocześnie ściąga i wybiera predyktory. Wartość λ dobiera się zwykle przez walidację krzyżową. Połączenie obu kar to elastic net.

Przykład

Dobrostan 120 osób przewidywano z 20 skorelowanych skal, z których tylko trzy miały realny związek z wynikiem (dane symulowane). Zwykła regresja dała w próbie uczącej R² = .539, ale w nowej próbie 120 osób tylko .415. Regresja grzbietowa podniosła R² w nowej próbie do .430, a LASSO do .480. LASSO zostawiło 5 z 20 predyktorów: trzy prawdziwe i dwa z małymi współczynnikami (−0.139 i −0.029). Regresja grzbietowa zachowała wszystkie, ale np. współczynnik pierwszej skali spadł z 0.633 do 0.475.

Jak opisać w pracy

Do przewidywania dobrostanu użyto regresji LASSO (pakiet glmnet) z 20 predyktorami standaryzowanymi przed estymacją. Parametr λ = 0.103 wybrano 10-krotną walidacją krzyżową (minimalny błąd średniokwadratowy). Model zachował 5 predyktorów, a w niezależnej próbie testowej (n = 120) wyjaśniał 48.0% wariancji wyniku, wobec 41.5% w zwykłej regresji.

Na co uważać

  • Predyktory muszą mieć wspólną skalę. Kara zależy od jednostek, dlatego zmienne się standaryzuje (glmnet robi to domyślnie).
  • To narzędzie do przewidywania, nie do testowania hipotez. Zwykłe wartości p i przedziały ufności nie pasują do ściągniętych współczynników.
  • Wybór LASSO bywa niestabilny przy silnie skorelowanych zmiennych: inna próba może zostawić inny predyktor z pary. Nie traktuj go jak dowodu, że pozostałe zmienne nie mają znaczenia.

Kara chroni przed przeuczeniem lepiej niż metoda krokowa. Cały proces budowy modelu opisujemy we wpisie modele predykcyjne.

Przykład reprodukowalny

Ridge i LASSO w R

Kod porównuje zwykłą regresję, regresję grzbietową i LASSO w nowej próbie testowej.

Regresja z karą w pakiecie glmnet

Dane wejściowe: macierz 20 predyktorów X i wynik y; indeksy próby uczącej ucz i testowej test (dane symulowane, pełny skrypt w pliku kodu).

Co odczytać: R² w próbie testowej dla trzech modeli i predyktory zostawione przez LASSO.

R
library(glmnet)
set.seed(1)
cv_l <- cv.glmnet(X[ucz, ], y[ucz], alpha = 1)    # LASSO, lambda z 10-krotnej walidacji krzyżowej
cv_r <- cv.glmnet(X[ucz, ], y[ucz], alpha = 0)    # regresja grzbietowa
ols  <- lm(y[ucz] ~ X[ucz, ])
r2 <- function(pred) 1 - sum((y[test] - pred)^2) / sum((y[test] - mean(y[test]))^2)
round(c(OLS   = r2(cbind(1, X[test, ]) %*% coef(ols)),
        ridge = r2(predict(cv_r, X[test, ], s = "lambda.min")),
        LASSO = r2(predict(cv_l, X[test, ], s = "lambda.min"))), 3)
b_l <- coef(cv_l, s = "lambda.min")[-1, 1]
round(b_l[b_l != 0], 3)
Wynik w R
  OLS ridge LASSO
0.415 0.430 0.480
    x1     x2     x3     x5    x10
 0.550  0.370  0.233 -0.139 -0.029 

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 z pakietem glmnet.

  1. R: R Core Team. (2026). R: A language and environment for statistical computing (Version 4.5.3) [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/
  2. glmnet (wersja 5.0): Friedman, J., Hastie, T., & Tibshirani, R. (2010). Regularization paths for generalized linear models via coordinate descent. Journal of Statistical Software, 33(1), 1–22. https://doi.org/10.18637/jss.v033.i01

Najczęstsze pytania

Kiedy wybrać LASSO, a kiedy regresję grzbietową?

LASSO, gdy spodziewasz się, że tylko część predyktorów ma znaczenie, i chcesz prostszego modelu. Ridge, gdy wiele skorelowanych predyktorów wnosi po trochę. Elastic net łączy obie kary.

Czy współczynniki z LASSO mają wartości p?

Nie w zwykłym sensie. Kara obciąża oszacowania, więc klasyczne p i CI z regresji nie mają zastosowania. Oceniaj model błędem przewidywania w nowej próbie.

Co oznacza lambda.min i lambda.1se w glmnet?

lambda.min daje najmniejszy błąd w walidacji krzyżowej. lambda.1se to najsilniejsza kara, przy której błąd mieści się w jednym błędzie standardowym od minimum, więc model jest prostszy.

Powiązane hasła

Poradniki, w których użyjesz tego pojęcia

Potrzebujesz wsparcia w analizie danych?

Wybierz ofertę dopasowaną do pracy dyplomowej albo profesjonalnego projektu naukowego.

Wyceń analizęOferta dla studentów

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Hoerl, A. E., & Kennard, R. W. (1970). Ridge regression: Biased estimation for nonorthogonal problems. Technometrics, 12(1), 55–67. https://doi.org/10.1080/00401706.1970.10488634
  2. Tibshirani, R. (1996). Regression shrinkage and selection via the lasso. Journal of the Royal Statistical Society: Series B (Methodological), 58(1), 267–288. https://doi.org/10.1111/j.2517-6161.1996.tb02080.x

Cytowania BibTeX

@article{hoerl1970ridge, author={Hoerl, Arthur E. and Kennard, Robert W.}, title={{Ridge regression: Biased estimation for nonorthogonal problems}}, journal={Technometrics}, year={1970}, volume={12}, number={1}, pages={55--67}, doi={10.1080/00401706.1970.10488634}}
@article{tibshirani1996regression, author={Tibshirani, Robert}, title={{Regression shrinkage and selection via the lasso}}, journal={Journal of the Royal Statistical Society: Series B (Methodological)}, year={1996}, volume={58}, number={1}, pages={267--288}, doi={10.1111/j.2517-6161.1996.tb02080.x}}
R