Współczynnik determinacji R² — od intuicji do dowodów

Streszczenie

R² wyłożony porządnie: tożsamość rozkładu wariancji TSS = ESS + RSS z dowodem, R² jako kwadrat korelacji, geometria rzutu (R² = cos²θ), dlaczego R² zawsze rośnie, skorygowane R² — z wykresami 2D i 3D

Co mierzy R²

Po dopasowaniu modelu pojawia się pierwsze pytanie: jak dobrze tłumaczy on dane? Zmienna $y$ waha się wokół swojej średniej — jaką część tego wahania model wychwytuje, a jaka pozostaje jako „niewyjaśniona reszta"?

Współczynnik determinacji $R^2$ daje na to jedną liczbę z przedziału $[0,1]$:

  • $R^2 = 1$ — model wyjaśnia całą zmienność (punkty leżą idealnie na linii dopasowania),
  • $R^2 = 0$ — model nie wyjaśnia niczego (równie dobrze zgadywać samą średnią $\bar y$),
  • $R^2 = 0{,}7$ — model tłumaczy 70% zmienności $y$, a 30% zostaje w resztach.

Za tą liczbą stoi tożsamość algebraiczna oraz interpretacja geometryczna, które wyłożymy poniżej wraz z dowodami.

Rozkład wariancji: TSS = ESS + RSS

Punkt wyjścia: każdą obserwację $y_i$ porównujemy z bazową prognozą bez modelu, czyli ze średnią $\bar y$. Całkowite odchylenie $y_i - \bar y$ rozbija się dokładnie na dwie cegiełki:

$$ y_i - \bar y = \underbrace{(\hat y_i - \bar y)}_{\text{co tłumaczy model}} + \underbrace{(y_i - \hat y_i)}_{\text{reszta } \hat\varepsilon_i} $$
Rozkład odchylenia pojedynczego punktu na część wyjaśnioną i resztę
Dla pojedynczej obserwacji całe odchylenie od średniej $y_i-\bar y$ (TSS) dzieli się na część wyjaśnioną przez model $\hat y_i-\bar y$ (ESS) i resztę $y_i-\hat y_i$ (RSS). Dokładnie tak samo — po podniesieniu do kwadratu i zsumowaniu — rozkłada się cała wariancja.

Podnosząc do kwadratu i sumując po wszystkich obserwacjach, dostajemy tożsamość rozkładu sumy kwadratów:

$$ \underbrace{\sum_{i}(y_i-\bar y)^2}_{\text{TSS}} \;=\; \underbrace{\sum_{i}(\hat y_i-\bar y)^2}_{\text{ESS}} \;+\; \underbrace{\sum_{i}(y_i-\hat y_i)^2}_{\text{RSS}} $$

Obecność lub brak składnika mieszanego nie jest kwestią oczywistą — wynika z własności estymatora MNK. Wyprowadzenie przedstawiono poniżej.

Dowód
Tożsamość TSS = ESS + RSS
  1. Rozbicie i kwadrat. Zapiszmy $y_i-\bar y = (\hat y_i-\bar y) + \hat\varepsilon_i$, gdzie $\hat\varepsilon_i = y_i-\hat y_i$. Podnosząc do kwadratu i sumując: $$ \sum_i (y_i-\bar y)^2 = \sum_i (\hat y_i-\bar y)^2 + \sum_i \hat\varepsilon_i^2 + 2\sum_i (\hat y_i-\bar y)\,\hat\varepsilon_i $$ Wystarczy pokazać, że składnik mieszany $\sum_i (\hat y_i-\bar y)\hat\varepsilon_i$ znika.
  2. Warunki pierwszego rzędu MNK. Model z wyrazem wolnym, $\hat y_i = \hat\beta_0 + \sum_{j} \hat\beta_j x_{ij}$, spełnia równania normalne. Dają one dwie kluczowe własności reszt: $$ \sum_i \hat\varepsilon_i = 0 \qquad\text{oraz}\qquad \sum_i x_{ij}\,\hat\varepsilon_i = 0 \;\;\text{dla każdej zmiennej } j $$ Pierwsza bierze się z pochodnej po $\hat\beta_0$, druga z pochodnej po $\hat\beta_j$.
  3. Składnik mieszany znika. Rozbijamy go i korzystamy z obu własności: $$ \sum_i (\hat y_i-\bar y)\hat\varepsilon_i = \sum_i \hat y_i\hat\varepsilon_i - \bar y\sum_i \hat\varepsilon_i $$ Drugi wyraz to $\bar y\cdot 0 = 0$. Pierwszy: $$ \sum_i \hat y_i\hat\varepsilon_i = \sum_i\Big(\hat\beta_0 + \sum_j \hat\beta_j x_{ij}\Big)\hat\varepsilon_i = \hat\beta_0\underbrace{\sum_i\hat\varepsilon_i}_{0} + \sum_j \hat\beta_j\underbrace{\sum_i x_{ij}\hat\varepsilon_i}_{0} = 0 $$
  4. Wniosek. Składnik mieszany jest zerem, więc $\;\sum_i (y_i-\bar y)^2 = \sum_i (\hat y_i-\bar y)^2 + \sum_i \hat\varepsilon_i^2$, czyli TSS = ESS + RSS.

Uwaga: tożsamość wymaga wyrazu wolnego.

Cały rozkład TSS = ESS + RSS opiera się na $\sum_i \hat\varepsilon_i = 0$, co gwarantuje wyraz wolny w modelu. W regresji bez stałej tożsamość się psuje, a „$R^2$" potrafi wyjść ujemne lub większe od jedności. Dlatego programy raportują wtedy inną, niestandardową definicję — i nie należy jej porównywać z $R^2$ modelu ze stałą.

Definicja R²

Skoro TSS rozkłada się na część wyjaśnioną i resztę, $R^2$ jest udziałem części wyjaśnionej:

$$ R^2 = \frac{\text{ESS}}{\text{TSS}} = 1 - \frac{\text{RSS}}{\text{TSS}} $$

Z tożsamości natychmiast wynika, że jest to dobrze zachowujący się ułamek.

Dowód
0 ≤ R² ≤ 1 (w modelu z wyrazem wolnym)
  1. Składniki nieujemne. ESS $=\sum(\hat y_i-\bar y)^2 \ge 0$ oraz RSS $=\sum\hat\varepsilon_i^2 \ge 0$ jako sumy kwadratów.
  2. Ograniczenie z góry i z dołu. Z TSS = ESS + RSS i RSS $\ge 0$ mamy ESS $\le$ TSS, więc $R^2 = \text{ESS}/\text{TSS} \le 1$. Z ESS $\ge 0$ mamy $R^2 \ge 0$. Zatem $R^2\in[0,1]$.
  3. Skrajne przypadki. $R^2=1 \iff \text{RSS}=0$ (wszystkie reszty zerowe, idealne dopasowanie); $R^2=0 \iff \text{ESS}=0$ (wszystkie $\hat y_i=\bar y$, model to płaska średnia).
wyjaśnione: 70%reszta: 30%R² = 0R² = 1
$R^2$ jako proporcja paska: ciemna część to udział wariancji wyjaśnionej. Tu $R^2=0{,}7$ — model tłumaczy 70% zmienności, a 30% zostaje w resztach.

R² to kwadrat korelacji

Istnieje druga, równoważna postać $R^2$: jest to kwadrat współczynnika korelacji między obserwowanymi $y_i$ a dopasowanymi $\hat y_i$. Stąd bierze się symbol „$R$ do kwadratu".

Dowód
R² = corr(y, ŷ)²
  1. Kluczowa równość. Ponieważ $\bar{\hat y} = \bar y$ (średnia dopasowań równa się średniej $y$, bo $\sum\hat\varepsilon_i=0$), liczymy kowariancję licznikową: $$ \sum_i (y_i-\bar y)(\hat y_i-\bar y) = \sum_i\big[(\hat y_i-\bar y)+\hat\varepsilon_i\big](\hat y_i-\bar y) = \sum_i(\hat y_i-\bar y)^2 + \underbrace{\sum_i\hat\varepsilon_i(\hat y_i-\bar y)}_{=\,0} $$ Składnik mieszany znika jak w pierwszym dowodzie, więc suma ta równa się ESS.
  2. Podstawienie do wzoru na korelację. $$ \mathrm{corr}(y,\hat y)^2 = \frac{\big[\sum_i (y_i-\bar y)(\hat y_i-\bar y)\big]^2}{\sum_i (y_i-\bar y)^2\,\sum_i (\hat y_i-\bar y)^2} = \frac{\text{ESS}^2}{\text{TSS}\cdot\text{ESS}} = \frac{\text{ESS}}{\text{TSS}} = R^2 $$

W regresji prostej (jedna zmienna) upraszcza się to jeszcze bardziej: $R^2 = r_{xy}^2$, kwadrat zwykłej korelacji $x$ z $y$.

Wykres rozrzutu obserwowanych względem dopasowanych — R kwadrat jako kwadrat korelacji
$R^2$ to kwadrat korelacji obserwowanych $y_i$ z dopasowanymi $\hat y_i$. Im ciaśniej punkty układają się wzdłuż przekątnej $y=\hat y$, tym wyższa korelacja i tym wyższe $R^2$. Doskonałe dopasowanie to wszystkie punkty na przekątnej.

Geometria: R² = cos²θ

Szczególnie pouczająca jest interpretacja geometryczna. Potraktujmy kolumny danych jako wektory w przestrzeni $n$ obserwacji. MNK rzutuje wektor obserwacji $\mathbf y$ prostopadle na przestrzeń rozpiętą przez zmienne objaśniające, dając dopasowanie $\hat{\mathbf y}$. Po wyśrodkowaniu (odjęciu średniej) tożsamość TSS = ESS + RSS staje się twierdzeniem Pitagorasa:

$$ \underbrace{\lVert \mathbf y-\bar y\mathbf 1\rVert^2}_{\text{TSS}} = \underbrace{\lVert \hat{\mathbf y}-\bar y\mathbf 1\rVert^2}_{\text{ESS}} + \underbrace{\lVert \hat{\boldsymbol\varepsilon}\rVert^2}_{\text{RSS}} $$

bo wektor reszt $\hat{\boldsymbol\varepsilon}$ jest prostopadły do przestrzeni modelu. A skoro to trójkąt prostokątny, $R^2 = \text{ESS}/\text{TSS}$ jest dokładnie kwadratem cosinusa kąta $\theta$ między wektorem całkowitym a jego rzutem:

$$ R^2 = \cos^2\theta, \qquad \theta = \angle\big(\mathbf y-\bar y\mathbf 1,\; \hat{\mathbf y}-\bar y\mathbf 1\big) $$
Geometryczny rozkład wektora obserwacji — R kwadrat jako kwadrat cosinusa kąta
Geometria $R^2$ w przestrzeni obserwacji: wyśrodkowany wektor $\mathbf y-\bar y\mathbf 1$ (przeciwprostokątna, TSS) rzutuje się prostopadle na przestrzeń modelu, dając $\hat{\mathbf y}-\bar y\mathbf 1$ (przyprostokątna, ESS); reszty $\hat{\boldsymbol\varepsilon}$ (RSS) domykają trójkąt prostokątny. Wtedy $R^2=\cos^2\theta$ — im mniejszy kąt $\theta$, tym lepsze dopasowanie.

Ta sama geometria działa dla wielu zmiennych: przestrzeń modelu staje się płaszczyzną (a potem hiperpłaszczyzną), na którą rzutujemy $\mathbf y$. Dopasowanie $\hat y = \hat\beta_0+\hat\beta_1 x_1+\hat\beta_2 x_2$ to wtedy płaszczyzna w chmurze punktów, a $R^2$ mierzy, jak ciasno punkty wokół niej leżą:

Płaszczyzna regresji wielorakiej a R kwadrat
Regresja z dwiema zmiennymi: $R^2$ mówi, jak ciasno chmura obserwacji przylega do płaszczyzny dopasowania $\hat y=\hat\beta_0+\hat\beta_1 x_1+\hat\beta_2 x_2$. Mały rozrzut wokół płaszczyzny → wysokie $R^2$; duży rozrzut → niskie.

Wysokie a niskie R² — porównanie

Porównanie wysokiego i niskiego R kwadrat przy tym samym nachyleniu
Te same proste dopasowania, inny rozrzut. Po lewej punkty trzymają się prostej (małe reszty, wysokie $R^2$). Po prawej rozrzut wokół tej samej prostej jest duży — model łapie tylko ogólny trend, $R^2$ niskie. Nachylenie może być identyczne.

Warto podkreślić, że nachylenie prostej jest takie samo w obu panelach. $R^2$ nie informuje o tym, jak silny jest efekt $x$ na $y$ — mówi jedynie, jak przewidywalne jest $y$ przy danych zmiennych. Są to dwie różne wielkości, które łatwo pomylić.

Dlaczego R² zawsze rośnie po dodaniu zmiennej

Zasadnicze ograniczenie $R^2$ jako miary jakości polega na tym, że nigdy nie maleje, gdy do modelu dołącza się kolejną zmienną — nawet pozbawioną jakiegokolwiek związku z wyjaśnianym zjawiskiem. Własność ta nie jest dziełem przypadku, lecz konsekwencją geometrii rzutu ortogonalnego.

Dowód
RSS nie rośnie po dodaniu regresora (więc R² nie maleje)
  1. Zagnieżdżone przestrzenie. Niech $V_k$ to przestrzeń rozpięta przez $k$ dotychczasowych zmiennych (z kolumną jedynek), a $V_{k+1}$ — przestrzeń po dołożeniu nowej zmiennej. Każda kombinacja starych zmiennych jest też kombinacją nowych (z zerowym współczynnikiem przy dodanej), więc $V_k \subseteq V_{k+1}$.
  2. MNK to minimalizacja po przestrzeni. RSS to kwadrat odległości $\mathbf y$ od przestrzeni modelu: $\text{RSS}_k = \min_{\mathbf v\in V_k}\lVert \mathbf y-\mathbf v\rVert^2$. Minimalizacja po **większym** zbiorze nie może dać gorszego wyniku: $$ \text{RSS}_{k+1} = \min_{\mathbf v\in V_{k+1}}\lVert \mathbf y-\mathbf v\rVert^2 \;\le\; \min_{\mathbf v\in V_k}\lVert \mathbf y-\mathbf v\rVert^2 = \text{RSS}_k $$
  3. Wniosek. TSS zależy tylko od $\mathbf y$, więc jest stałe. Skoro $\text{RSS}_{k+1}\le\text{RSS}_k$, to $R^2 = 1-\text{RSS}/\text{TSS}$ nie maleje. Równość zachodzi tylko wtedy, gdy nowa zmienna jest prostopadła do reszt — w praktyce z powodu szumu $R^2$ rośnie zawsze, choćby odrobinę.

Konsekwencja praktyczna jest jednoznaczna: wybór modelu wyłącznie na podstawie $R^2$ faworyzuje zawsze model z największą liczbą zmiennych. Właściwą miarą do porównań modeli powinna być taka, która uwzględnia liczbę oszacowanych parametrów.

Skorygowane R²

Skorygowane $\bar R^2$ zastępuje surowe sumy kwadratów ich nieobciążonymi wariancjami — dzieli przez liczbę stopni swobody zamiast przez liczbę obserwacji:

$$ \bar R^2 = 1 - \frac{\text{RSS}/(n-k-1)}{\text{TSS}/(n-1)} $$

gdzie $n$ to liczba obserwacji, a $k$ — liczba zmiennych objaśniających. Dodanie zmiennej zbija RSS (plus), ale zmniejsza dzielnik $n-k-1$ (minus). $\bar R^2$ rośnie tylko wtedy, gdy spadek RSS przeważa nad karą za utratę stopnia swobody.

Kiedy ̄R² rośnie, a kiedy spada.

Wygodna postać równoważna: $\;\bar R^2 = 1-(1-R^2)\dfrac{n-1}{n-k-1}$.

Można pokazać, że dodanie zmiennej podnosi $\bar R^2$ wtedy i tylko wtedy, gdy jej statystyka $t$ jest co do wartości bezwzględnej większa od 1 (równoważnie: $F>1$ dla grupy zmiennych). Zmienna „słabsza niż szum" obniża $\bar R^2$ — i o to chodzi. W przeciwieństwie do $R^2$, skorygowane $\bar R^2$ może być ujemne.

Trzy pułapki interpretacyjne

Czego R² nie mówi.

  1. Wysokie $R^2$ ≠ poprawny model. Źle dobrana forma funkcyjna albo regresja pozorna na niestacjonarnych szeregach potrafią dać $R^2=0{,}99$ przy modelu bez sensu. Wysokie $R^2$ między dwoma rosnącymi w czasie szeregami (np. PKB i liczba filmów) nie oznacza żadnego związku.
  2. Niskie $R^2$ ≠ bezużyteczny model. W danych przekrojowych o ludziach $R^2=0{,}2$ bywa normą — zachowania są z natury „szumne". Model i tak może poprawnie mierzyć efekt przyczynowy (istotne, dobrze oszacowane $\hat\beta$), a o to często chodzi bardziej niż o prognozę.
  3. $R^2$ nie ocenia założeń. Nie wykryje heteroskedastyczności, autokorelacji ani obciążenia z pominiętej zmiennej. To miara dopasowania, nie diagnostyka poprawności.

Przykłady liczbowe

Przykład
R² z rozkładu wariancji

Dla regresji MNK $n=5$ ($x=(1,2,3,4,5)$, $y=(2,4,5,4,5)$, $\hat y=2{,}2+0{,}6x$): całkowita suma kwadratów $\text{TSS}=\sum(y_i-\bar y)^2=6$, wyjaśniona $\text{ESS}=\sum(\hat y_i-\bar y)^2=3{,}6$, resztowa $\text{RSS}=2{,}4$. Tożsamość $\text{ESS}+\text{RSS}=6=\text{TSS}$ się zgadza, więc

$$ R^2=\frac{\text{ESS}}{\text{TSS}}=\frac{3{,}6}{6}=0{,}60,\qquad \bar R^2=1-(1-R^2)\frac{n-1}{n-k-1}=1-0{,}4\cdot\frac{4}{3}=\frac{7}{15}\approx0{,}467. $$

Model wyjaśnia $60\%$ zmienności $y$; po karze za jeden regresor pozostaje $46{,}7\%$.

Przykład
R² jako kwadrat korelacji
Dla tych samych danych współczynnik korelacji obserwowanych $y_i$ z dopasowanymi $\hat y_i$ wynosi $r=\sqrt{R^2}=\sqrt{0{,}60}=0{,}7746$. Istotnie $\mathrm{corr}(y,\hat y)^2=0{,}7746^2=0{,}60=R^2$ — zgodnie z dowodem. W regresji prostej upraszcza się to do kwadratu zwykłej korelacji $x$ z $y$.
Przykład
Dlaczego potrzebne jest skorygowane R²

Dołóżmy do modelu sztuczny regresor $z=(0,0,0,0,1)$ — wskaźnik ostatniej obserwacji, bez znaczenia merytorycznego. Po estymacji $y\sim\{1,x,z\}$:

$$ R^2:\ 0{,}600\to0{,}617\ \ (\text{rośnie}),\qquad \bar R^2:\ 0{,}467\to0{,}233\ \ (\text{spada}). $$

Surowe $R^2$ wzrosło — jak zawsze po dodaniu zmiennej — choć $z$ nic nie wnosi. Skorygowane $\bar R^2$ spadło ponad dwukrotnie, prawidłowo karząc za zbędny parametr. To liczbowa ilustracja, dlaczego do porównań modeli używamy $\bar R^2$, nie $R^2$.

Podsumowanie

Definicja
R² w pigułce
  • Definicja: $R^2 = \dfrac{\text{ESS}}{\text{TSS}} = 1-\dfrac{\text{RSS}}{\text{TSS}}$ — udział wyjaśnionej wariancji, zakres $[0,1]$ (w modelu ze stałą).
  • Trzy ujęcia: udział wariancji = kwadrat korelacji $\mathrm{corr}(y,\hat y)^2$ = $\cos^2\theta$ (geometria rzutu).
  • Zawsze rośnie po dodaniu zmiennej → do porównań modeli służy skorygowane $\bar R^2$ (które może spaść, a nawet być ujemne).
  • Nie jest dowodem poprawności: wysokie nie gwarantuje sensu, niskie nie przekreśla modelu przyczynowego.

Bibliografia

  • Wright, S. (1921). Correlation and Causation. Journal of Agricultural Research, 20, 557–585.
  • Greene, W. H. (2018). Econometric Analysis (8th ed.). Pearson. (rozdz. 3 — geometria MNK i $R^2$)
  • Wooldridge, J. M. (2020). Introductory Econometrics: A Modern Approach (7th ed.). Cengage. (rozdz. 3 i 6)
  • Theil, H. (1971). Principles of Econometrics. Wiley. (skorygowane $R^2$)

Dalej: Regresja liniowa · Testy istotności

Literatura uzupełniająca
  • Podręcznik: Wooldridge, Introductory Econometrics, rozdz. 3 i 6
  • Podręcznik: Greene, Econometric Analysis, rozdz. 3 (geometria MNK)
  • Khan Academy — R-squared
Oprogramowanie

R:

model <- lm(y ~ x1 + x2, data = dane)
summary(model)$r.squared        # R²
summary(model)$adj.r.squared    # skorygowane R²

# R² „ręcznie" z rozkladu wariancji
tss <- sum((dane$y - mean(dane$y))^2)
rss <- sum(residuals(model)^2)
1 - rss / tss                   # = R²

# R² jako kwadrat korelacji y i dopasowan
cor(dane$y, fitted(model))^2    # to samo

Python:

import statsmodels.api as sm
import numpy as np

model = sm.OLS(y, sm.add_constant(X)).fit()
model.rsquared          # R²
model.rsquared_adj      # skorygowane

# z rozkladu wariancji
tss = ((y - y.mean())**2).sum()
rss = (model.resid**2).sum()
1 - rss / tss           # = R²
np.corrcoef(y, model.fittedvalues)[0, 1]**2  # = R²