03 · Nadzorowane · 4 min czytania · Interaktywne · aktualizacja
Na czym polega regresja liniowa i jak interpretować jej współczynniki?
W skrócie
Regresja liniowa przewiduje liczbę jako ważoną sumę cech plus stałą. Wagi dobiera metodą najmniejszych kwadratów, a każda mówi o wpływie cechy.
Co to jest
Regresja liniowa to model, który przewiduje wartość liczbową jako ważoną sumę cech plus stałą: ŷ = b₀ + b₁·x₁ + b₂·x₂ + … + bₚ·xₚ. Wagi (współczynniki) dobiera się tak, żeby suma kwadratów różnic między przewidywaniami a prawdziwymi wartościami była jak najmniejsza. To najstarszy i wciąż jeden z najczęściej używanych modeli uczenia nadzorowanego.
Z jedną cechą model to prosta na wykresie punktowym: b₀ to punkt przecięcia z osią, b₁ to nachylenie, czyli o ile średnio rośnie y, gdy x rośnie o jednostkę. Z wieloma cechami prosta staje się płaszczyzną (albo hiperpłaszczyzną), ale interpretacja zostaje podobna: bⱼ mówi, o ile zmienia się przewidywanie, gdy xⱼ rośnie o jeden, przy pozostałych cechach ustalonych.
Ta ostatnia fraza jest kluczowa i często pomijana. Współczynnik w regresji wielorakiej to nie to samo co korelacja cechy z wynikiem — to wkład „netto”, po odjęciu tego, co wyjaśniają inne cechy.
Mechanizm — dlaczego tak działa
Dopasowanie polega na minimalizacji sumy kwadratów reszt (RSS). Dla regresji liniowej ten problem ma rozwiązanie w zamkniętej postaci, tzw. równania normalne: b = (XᵀX)⁻¹Xᵀy. Nie trzeba niczego iterować — wystarczy algebra liniowa. Szczegóły i uzasadnienie kwadratów opisuje hasło o metodzie najmniejszych kwadratów.
Model jest „liniowy w parametrach”, nie koniecznie w cechach. Jeśli dodasz x² albo log(x) jako nowe kolumny, wciąż masz regresję liniową, tylko z przekształconymi cechami. Dzięki temu ten sam mechanizm obsługuje krzywe (regresja wielomianowa) i interakcje.
Klasyczne założenia, przy których współczynniki mają dobre własności statystyczne, to: liniowa zależność, niezależne obserwacje, stała wariancja reszt i — dla przedziałów ufności — reszty o rozkładzie normalnym. Do samego przewidywania normalność nie jest potrzebna; potrzebne jest natomiast to, żeby zależność rzeczywiście była w przybliżeniu liniowa w użytych cechach.
Największa pułapka interpretacyjna to współliniowość. Gdy dwie cechy są silnie skorelowane, model może przypisać jednej dużą dodatnią wagę, a drugiej dużą ujemną — ich efekty niemal się znoszą, a przewidywania są w porządku. Pojedyncze współczynniki stają się wtedy niestabilne i nie wolno ich czytać jako „wpływu”. Pomaga regularyzacja (ridge) albo usunięcie zbędnych cech.
Druga pułapka: współczynnik zależy od jednostki cechy. Waga 68 dla cechy w zakresie 3–6 i waga 0,04 dla wieku w latach nie mówią, która cecha jest ważniejsza. Do porównań standaryzuje się cechy (średnia 0, odchylenie 1).
Na przykładzie
Zbiór Diabetes (Efron i in., 2004): 442 pacjentów z cukrzycą, 10 cech zmierzonych na początku badania (wiek, płeć, BMI, ciśnienie krwi i sześć wskaźników z badań krwi, s1–s6), a celem jest liczbowa miara postępu choroby po roku (od 25 do 346, średnio 152). Sam BMI wyjaśnia sporo: na całym zbiorze nachylenie prostej wynosi 10,2 — każdy punkt BMI więcej to średnio o 10,2 jednostki gorszy wynik — a R² = 0,34.
Regresja na wszystkich 10 cechach, trenowana na 331 pacjentach i testowana na 111 (losowy podział 75/25, random_state=0), osiąga na teście R² = 0,36 (na treningu 0,56), a błąd RMSE spada z 70,5 (przewidywanie średniej) do 56,4. Ten konkretny podział jest dość pechowy: 5-krotna walidacja krzyżowa daje średnie R² = 0,49. Po standaryzacji cech widać pułapkę współliniowości: s1 (cholesterol całkowity) dostaje wagę −37,7, a s2 (frakcja LDL) +22,7, choć obie mierzą prawie to samo (korelacja 0,90). Te dwie wagi razem mają sens, osobno — żadnego.
Dane: Diabetes (progresja cukrzycy)
W praktyce
sklearn.linear_model.LinearRegression().fit(X, y); współczynniki wcoef_, stała wintercept_, R² przezscore(X, y).- Do wnioskowania (błędy standardowe, p-wartości, przedziały ufności) użyj
statsmodels.OLS— scikit-learn ich nie podaje. - Przed porównywaniem wag standaryzuj cechy (
StandardScaler); zmienne kategoryczne zakoduj jako zero-jedynkowe (OneHotEncoder(drop="first")). - Zawsze obejrzyj wykres reszt względem przewidywań: krzywizna oznacza brakującą nieliniowość, „lejek” — niestałą wariancję.
- Wiele skorelowanych cech albo więcej cech niż obserwacji? Sięgnij po
RidgelubLasso.
Najczęstsze pytania
- Co oznacza R² i jaka wartość jest „dobra”?
- R² to odsetek wariancji y wyjaśniony przez model: 0 znaczy „nie lepiej niż średnia”, 1 — dopasowanie idealne. Na danych testowych R² może być nawet ujemne. Dobra wartość zależy od dziedziny: w fizyce oczekuje się 0,99, w medycynie i naukach społecznych 0,3–0,5 bywa wynikiem bardzo przyzwoitym.
- Czy współczynnik regresji oznacza związek przyczynowy?
- Nie. Mówi, jak zmienia się przewidywanie przy zmianie cechy i ustalonych pozostałych cechach w tych danych. Jeśli pominięto ważną zmienną, która wpływa i na cechę, i na wynik, współczynnik będzie obciążony. Wnioski przyczynowe wymagają eksperymentu albo starannego planu badania.
- Czy regresja liniowa nadaje się do przewidywania kategorii?
- Technicznie można zakodować klasy jako 0 i 1, ale przewidywania wyjdą poza przedział [0, 1] i trudno je interpretować jako prawdopodobieństwa. Do klasyfikacji służy regresja logistyczna, która przepuszcza tę samą ważoną sumę przez funkcję sigmoidalną.
Źródła
- James G., Witten D., Hastie T., Tibshirani R. „An Introduction to Statistical Learning”, 2nd ed., 2021, rozdz. 3.
- Hastie T., Tibshirani R., Friedman J. „The Elements of Statistical Learning”, 2nd ed., 2009, rozdz. 3.
- Efron B., Hastie T., Johnstone I., Tibshirani R. „Least Angle Regression”, Annals of Statistics 32(2), 2004 — źródło zbioru Diabetes.
- Dokumentacja scikit-learn, „Linear Models”: https://scikit-learn.org/stable/modules/linear_model.html