Last chance! 50% off DataCamp Premium
Sale ends in
Dopasowałeś model regresji, R² wygląda przyzwoicie, a współczynniki mają sens. Ale ładna tabela podsumowująca potrafi ukryć źle wyspecyfikowany model. Jeden wykres rozrzutu często wyłapuje to, co umyka liczbom: wykres reszt.
W tym artykule znajdziesz wyjaśnienie, czym są wykresy reszt, jak je czytać, jakie wzorce warto znać oraz jak utworzyć taki wykres zarówno w Pythonie, jak i w R. Większość początkujących całkiem pomija krok diagnostyczny. Po lekturze ty już nie.
Reszta to różnica między tym, co twój model przewidział, a tym, co faktycznie się wydarzyło: reszta = zaobserwowane − przewidywane. Wykres reszt pokazuje te różnice. Oś x przedstawia wartości przewidywane (dopasowane) lub zmienną objaśniającą; oś y przedstawia reszty. Na wysokości zera znajduje się pozioma linia odniesienia, oznaczająca idealne przewidywanie.

Losowy rozrzut wokół zera: zdrowy wykres reszt. Obraz autora.
Kluczowa idea: jeśli model dobrze uchwycił zależność, reszty powinny wyglądać jak szum. Losowo rozproszone wokół zera, bez wyraźnego wzorca. Gdy tylko pojawia się kształt, model mówi ci coś, czego nie mógł wyrazić samymi współczynnikami.
Szukaj wzorców. Idealnie nie powinno być żadnego oczywistego. To cała zasada. To, co ujawniają położenie, rozrzut i kształt reszt, jest najciekawsze.
Reszty, które w niektórych zakresach wartości dopasowanych leżą powyżej zera, a w innych poniżej, oznaczają, że model jest obciążony. Systematycznie przeszacowuje lub niedoszacowuje w pewnych obszarach. Często wskazuje to na brakującą zmienną lub nieliniową zależność, której model liniowy nie jest w stanie uchwycić.
Przeskanuj wykres od lewej do prawej. Jeśli rozpiętość reszt jest mniej więcej taka sama dla wszystkich wartości dopasowanych, to dobry znak. Jeśli punkty „wachlują” na zewnątrz wraz ze wzrostem wartości dopasowanych, wariancja się zmienia. To tzw. heteroscedastyczność. Nie psuje to estymacji współczynników, ale czyni błędy standardowe niewiarygodnymi, co ma znaczenie, jeśli wykonujesz testy hipotez.
Płasko i bez wzorca — tego chcesz. Kształt litery U lub łuk wskazuje, że w modelu brakuje składnika nieliniowego. Klastry lub pasma sugerują podgrupy traktowane przez model jako jedna. Pojedynczy punkt daleko od reszty warto zbadać.

Cztery wzorce na wykresie reszt sygnalizujące problemy z modelem. Obraz autora.
Dobry wynik. Punkty rozłożone mniej więcej równomiernie powyżej i poniżej linii zera, bez dostrzegalnego trendu, zwykle wskazują, że model dość dobrze uchwycił zależność. Pewna losowość jest oczekiwana.
Zakrzewiony lub łukowaty wzorzec zwykle oznacza nieuwzględnioną nieliniową zależność. Model dopasowuje prostą przez dane, które się wyginają. Naprawa to zazwyczaj dodanie składnika wielomianowego (np. x²) lub transformacja predyktora. To jeden z częstszych wzorców w praktyce, zwłaszcza przy modelowaniu cen nieruchomości czy wzrostu biologicznego.
Reszty, które rozszerzają się wraz ze wzrostem wartości dopasowanych: to heteroscedastyczność, wariancja nie jest stała. Częste w danych finansowych, gdzie błędy predykcji naturalnie skaluje się z wielkością wyniku. Często rozsądnym pierwszym krokiem jest logarytmiczna transformacja zmiennej objaśnianej; inną opcją są ważone najmniejsze kwadraty.
Wyraźne grupy na wykresie reszt zwykle oznaczają, że w danych są subpopulacje, których model nie uwzględnia. Prawdopodobnie istnieje kategoryczna zmienna (region, grupa leczenia, typ produktu), która powinna znaleźć się w modelu. Jeśli widzisz dwa lub trzy zwarte pasma punktów, zacznij od tego.
Pojedynczy punkt daleko od reszty zasługuje na analizę. Może to być prawdziwy outsider, błąd wprowadzania danych lub obserwacja o nietypowych cechach. Nie usuwaj go automatycznie. Najpierw zrozum. Decyzja o pozostawieniu lub usunięciu zależy od kontekstu, nie od wygody.
Dla każdego z tych wzorców wykres reszt wskazuje objaw, a nie diagnozę. Mówi, że coś jest nie tak; nadal musisz ustalić dlaczego.
Mając na uwadze wzorce, warto jasno określić, które założenia regresji wykres reszt może, a których nie może ocenić.
Jednej rzeczy wykresy reszt nie potrafią wiarygodnie ocenić: normalności. Płaski wykres reszt względem dopasowanych nie potwierdza, że błędy mają rozkład normalny. Do tego potrzebny jest wykres Q-Q. To częste źródło nieporozumień i warto je rozróżniać.
Standardowy przebieg pracy wykorzystuje scikit-learn do dopasowania modelu i obliczenia reszt, a następnie matplotlib do ich wizualizacji. Oto kompletny przykład z prostą regresją liniową na danych o nieruchomościach:
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
# Sample data: square footage predicting home price
sqft = np.array([800, 1000, 1200, 1500, 1800, 2000, 2200, 2500, 3000, 3500])
price = np.array([150, 180, 210, 260, 300, 330, 370, 420, 500, 560])
# Reshape for sklearn and fit the model
X = sqft.reshape(-1, 1)
model = LinearRegression()
model.fit(X, price)
# Generate predictions and calculate residuals
predicted = model.predict(X)
residuals = price - predicted
# Plot residuals against fitted values
plt.figure(figsize=(8, 5))
plt.scatter(predicted, residuals, color='steelblue', edgecolors='white', s=80)
plt.axhline(y=0, color='red', linestyle='--', linewidth=1.2)
plt.xlabel('Fitted Values')
plt.ylabel('Residuals')
plt.title('Residual Plot')
plt.tight_layout()
plt.show()

Kluczowa linia to residuals = price - predicted. Wywołanie axhline() dodaje linię odniesienia na poziomie zera; bez niej wykres jest znacznie trudniejszy do odczytania. Jeśli wynik wygląda mniej więcej bezwzorcowo, jesteś w rozsądnej sytuacji. Zauważ, że reszty rosną przy wyższych wartościach dopasowanych. Przy zaledwie 10 punktach trudno mieć pewność, ale to wskazówka w stronę omawianego wcześniej kształtu wachlarza.
Aby głębiej poznać regresję w Pythonie, nasz kurs Introduction to Regression with statsmodels in Python szczegółowo omawia dopasowanie modelu, weryfikację założeń i interpretację.
R robi to nieco łatwiej „z pudełka”. Gdy dopasujesz model za pomocą lm(), wbudowana funkcja plot() automatycznie generuje pełny panel diagnostyczny, w tym wykres reszt względem dopasowanych.
# Same housing data in R
sqft <- c(800, 1000, 1200, 1500, 1800, 2000, 2200, 2500, 3000, 3500)
price <- c(150, 180, 210, 260, 300, 330, 370, 420, 500, 560)
# Fit the model and view diagnostics
housing_model <- lm(price ~ sqft)
plot(housing_model, which = 1) # which = 1 gives residuals vs. fitted
Argument which = 1 wyciąga tylko wykres reszt względem dopasowanych. Jeśli go pominiesz, otrzymasz cztery standardowe wykresy diagnostyczne: reszty vs. dopasowane, Q-Q, skala–lokacja oraz reszty vs. dźwignia. Przydatne, gdy chcesz szybko pełnego obrazu. R również oznacza trzy najbardziej ekstremalne punkty indeksem, co oszczędza ręcznego szukania wartości odstających.
Pełne wprowadzenie do regresji w R znajdziesz w naszym kursie Introduction to Regression in R, który od podstaw omawia budowę modeli i diagnostykę.
Wykres reszt względem dopasowanych to punkt wyjścia, nie pełny obraz. Kilka powiązanych wykresów odpowiada na różne pytania.
Wykres reszt względem dopasowanych sprawdza liniowość i stałą wariancję. Wykres Q-Q sprawdza normalność, czyli czy reszty podążają za rozkładem normalnym. To oddzielne kwestie. Czysty wykres reszt nie gwarantuje normalności, a wykres Q-Q nie powie nic o wariancji. Zwykle potrzebujesz obu.

Dwa różne wykresy, dwa różne pytania o twój model. Obraz autora.
Wykres skala–lokacja (zwany też rozrzut–lokacja) przedstawia pierwiastek kwadratowy z bezwzględnych standaryzowanych reszt względem wartości dopasowanych. Został zaprojektowany do wykrywania heteroscedastyczności i często ułatwia dostrzeżenie wzorca leja niż surowy wykres reszt, ponieważ usuwa znak reszt i skupia się wyłącznie na rozrzucie.
Dźwignia mierzy, jak nietypowe są wartości predyktorów dla obserwacji, a nie jak źle model ją przewiduje. Wysoka dźwignia połączona z dużą resztą to potencjalnie obserwacja wpływowa. Wykres reszty względem dźwigni identyfikuje te kombinacje i zwykle wyróżnia najbardziej problematyczne punkty z nazwy. Jeśli martwią cię obserwacje wpływowe zniekształcające model, sprawdź ten wykres.
Wykres reszt to diagnoza, a nie wyrok. Zobaczenie wzorca nie znaczy, że model jest bezużyteczny. Oto jak typowe wzorce przekładają się na kolejne kroki:
Wykres reszt pokazuje objawy. Nie podaje dokładnej przyczyny, a jeden wzorzec może mieć czasem wiele wyjaśnień. Traktuj go jako impuls do zadawania lepszych pytań.
Dopasuj model, sprawdź podsumowanie, ciesz się R²: tu większość się zatrzymuje. Wykres reszt to to, na co patrzysz potem — i często opowiada inną historię. Losowy rozrzut wokół zera to to, czego chcesz. Krzywizny, leje, klastry i skrajne, odizolowane punkty sugerują coś, czego model nie uwzględnił.
Żaden pojedynczy wykres nie daje pełnego obrazu. Połącz wykres reszt względem dopasowanych z wykresem Q-Q dla normalności, wykresem skala–lokacja dla wariancji oraz wykresem dźwigni, jeśli obawiasz się obserwacji wpływowych. Każdy odpowiada na inne pytanie.
Jeśli chcesz pójść dalej, nasz kurs Intermediate Regression with statsmodels in Python dogłębnie omawia weryfikację założeń, w tym jak reagować, gdy diagnostyka sygnalizuje problem. Szerzej o założeniach regresji i ocenie modeli przeczytasz w naszym samouczku Assumptions of Linear Regression in Python.
Vinod Chugani rozpoczął karierę w Tokio jako najmłodszy w JPMorgan szef działu sprzedaży funduszy hedgingowych, a następnie ustanowił indywidualny rekord sprzedaży w Lehman Brothers, po czym zbudował działającą w 30 krajach firmę dystrybucji elektroniki z przychodami przekraczającymi 100 mln SGD, zanim przeszedł do pracy z danymi. Absolwent ekonomii na Duke i alumn NYC Data Science Academy, był jednym z trzech stypendystów wybranych spośród ponad 100 kandydatów do kursu Hugo Bowne-Andersona Building AI Applications na platformie Maven. Dziś pisze dla DataCamp, KDnuggets, Machine Learning Mastery i Statology na tematy od statystyki po agentową AI oraz mentoruje specjalistów danych w NYC Data Science Academy, mając na koncie ponad 1000 indywidualnych sesji.
Zakrzywiony lub łukowaty wzorzec zazwyczaj wskazuje na nieliniową zależność między predyktorem a wynikiem, której model nie uchwycił. Ponieważ regresja liniowa dopasowuje prostą, każdy łuk w prawdziwej zależności pojawi się jako systematyczna krzywizna w resztach. Zwykle naprawą jest dodanie składnika wielomianowego (takiego jak x²) lub zastosowanie logarytmicznej albo pierwiastkowej transformacji zmiennej objaśniającej.
W dobrze dopasowanym modelu z normalnymi błędami około 5% standaryzowanych reszt wypadnie poza ±2 i mniej niż 0,3% poza ±3 czysto przypadkowo — więc kilka skrajnych punktów jest oczekiwanych i nie stanowi automatycznie problemu. Szukasz tego, czy te punkty tworzą wzorzec, lub czy pojedynczy punkt ma na tyle nietypową resztę, by sugerować problem z danymi warty zbadania.
Nie — i to częste źródło nieporozumień. Wykres reszt względem dopasowanych pomaga sprawdzić liniowość, stałą wariancję i potencjalnie niezależność, jeśli narysujesz reszty w kolejności obserwacji. Nie oceni wiarygodnie normalności; do tego potrzebny jest wykres Q-Q. Dla obserwacji wpływowych bardziej informacyjny jest wykres reszty względem dźwigni. Traktuj wykres reszt jako pierwszą diagnostykę, nie jedyną.
Oba oceniają wariancję, ale inaczej. Wykres reszt pokazuje surowe reszty (dodatnie i ujemne) względem wartości dopasowanych — przydatny do dostrzegania ogólnych wzorców, w tym krzywizn i klastrów. Wykres skala–lokacja pokazuje pierwiastek z standaryzowanych reszt (wszystkie dodatnie) względem wartości dopasowanych, dzięki czemu lepiej izoluje heteroscedastyczność. Gdy kształt leja jest subtelny, wykres skala–lokacja często ułatwia jego zauważenie.
Nie automatycznie. Duża reszta oznacza, że model słabo przewidział tę obserwację — nie że obserwacja jest nieprawidłowa. Zanim coś usuniesz, sprawdź, czy punkt to błąd danych, nietypowy, ale prawidłowy przypadek, czy coś poza zakresem modelu. Usuwanie prawidłowych danych, by poprawić wykres reszt, to forma manipulacji modelem. Jeśli obserwacja jest uzasadniona, uczciwszym podejściem jest uznanie ograniczeń modelu lub zbadanie innej struktury modelu.
Wzorzec leja lub wachlarza nie obciąża estymatorów współczynników — model nadal daje właściwy efekt przeciętny. Zawodzi wiarygodność błędów standardowych, a więc wartości p i przedziały ufności. Jeśli używasz regresji wyłącznie do predykcji, może to mieć mniejsze znaczenie. Jeśli testujesz hipotezy lub budujesz przedziały ufności, musisz albo przetransformować zmienną objaśnianą, albo zastosować korekty błędów standardowych dla nierównej wariancji.
Tak, i można argumentować, że są nawet ważniejsze w regresji wielorakiej, bo jest więcej sposobów, w jakie model może się mylić. Standardowe podejście to wykreślenie reszt względem wartości dopasowanych dla ogólnego oglądu, a następnie względem każdego predyktora osobno, by sprawdzić nieliniowości, których model może nie uwzględniać. Zasady interpretacji są te same: szukaj wzorców i badaj wszystko, co systematyczne.
W regresji przekrojowej szukasz wzorców przestrzennych — krzywizn, lejów, klastrów — na wykresie reszt względem dopasowanych. W regresji szeregów czasowych musisz też sprawdzić, czy reszty są skorelowane w czasie, bo autokorelacja narusza założenie niezależności i czyni błędy standardowe niewiarygodnymi. Narysuj reszty względem indeksu czasu i szukaj trendów lub oscylujących wzorców; statystyka Durbin–Watsona może też testować autokorelację rzędu pierwszego. Zwykły wykres reszt względem dopasowanych sam tego nie wychwyci.
Ucz się z DataCamp
Kurs
Kurs
Kurs