01 · Podstawy · 4 min czytania · Interaktywne · aktualizacja
Czym różni się kowariancja od korelacji i jak interpretować współczynnik r?
W skrócie
Kowariancja mówi, czy dwie zmienne rosną razem, ale zależy od jednostek. Korelacja to kowariancja przeskalowana do zakresu od −1 do 1.
Co to jest
Kowariancja dwóch zmiennych X i Y to średni iloczyn ich odchyleń od średnich: Cov(X, Y) = E[(X − E[X]) · (Y − E[Y])]. Jest dodatnia, gdy ponadprzeciętnym wartościom X towarzyszą zwykle ponadprzeciętne wartości Y, ujemna — gdy towarzyszą im wartości podprzeciętne. Współczynnik korelacji Pearsona to kowariancja podzielona przez iloczyn odchyleń standardowych: r = Cov(X, Y) / (σ_X · σ_Y). Przyjmuje wartości od −1 do 1.
Kowariancja odpowiada na pytanie „czy rosną razem?”, ale jej wartość zależy od jednostek: zmiana gramów na kilogramy zmniejsza ją tysiąc razy. Korelacja usuwa jednostki i mówi, jak blisko prostej układają się punkty. r = 1 oznacza idealną zależność liniową rosnącą, r = −1 malejącą, r = 0 brak związku liniowego.
W uczeniu maszynowym obie miary są podstawą wielu narzędzi. Macierz kowariancji opisuje kształt chmury danych i jest punktem wyjścia PCA. Macierz korelacji pomaga wykrywać cechy nadmiarowe. Współczynnik r² w regresji prostej to dokładnie kwadrat korelacji.
Mechanizm — dlaczego tak działa
Wyobraźmy sobie chmurę punktów podzieloną na cztery ćwiartki krzyżem przechodzącym przez średnie. Punkt w prawej górnej lub lewej dolnej ćwiartce ma odchylenia o tym samym znaku, więc ich iloczyn jest dodatni. Punkt w pozostałych dwóch ćwiartkach daje iloczyn ujemny. Kowariancja to średnia tych iloczynów: jeśli przeważają ćwiartki „zgodne”, wychodzi dodatnia. Dlatego mierzy ona kierunek współzmienności.
Korelacja to kowariancja zmiennych wystandaryzowanych (każda w jednostkach własnego odchylenia standardowego). Geometrycznie to kosinus kąta między wycentrowanymi wektorami danych — stąd zakres od −1 do 1. Wynika z tego też, że r nie zmienia się, gdy dowolną zmienną przesuniemy lub przeskalujemy dodatnią liczbą.
Najważniejsze zastrzeżenie: korelacja Pearsona mierzy tylko związek liniowy. Zmienne mogą być idealnie powiązane — np. Y = X² dla X symetrycznego wokół zera — i mieć r = 0. Odwrotnie, jeden punkt odstający może wytworzyć wysoką korelację tam, gdzie żadnej zależności nie ma. Korelacja rang Spearmana (Pearson policzony na rangach) wychwytuje dowolne zależności monotoniczne i jest odporniejsza na odstające wartości.
Drugie zastrzeżenie: korelacja w całych danych może mieć inny znak niż w każdej podgrupie (paradoks Simpsona), a korelacja nie świadczy o przyczynowości. Wspólna przyczyna, odwrotny kierunek wpływu albo selekcja próby potrafią wytworzyć silne r bez żadnego bezpośredniego związku.
Trzecie: r² mówi, jaką część wariancji Y „wyjaśnia” liniowa funkcja X. Korelacja 0,5 brzmi solidnie, ale to tylko 25% wyjaśnionej wariancji. Wreszcie zero kowariancji nie oznacza niezależności — oznacza tylko brak liniowego związku; niezależność implikuje zerową kowariancję, ale nie odwrotnie.
Na przykładzie
Kwartet Anscombe’a (1973) to cztery zbiory po 11 punktów. W każdym średnia x wynosi 9, średnia y 7,50, kowariancja 5,50, a korelacja Pearsona 0,816 (w czwartym 0,817). Wykresy wyglądają jednak zupełnie inaczej: liniowa chmura, parabola, idealna prosta zepsuta jednym punktem i pionowy słupek z jednym punktem daleko w bok. Korelacja Spearmana zdradza różnice: 0,82, 0,69, 0,99 i 0,50. Jedna liczba nigdy nie zastąpi wykresu.
W zbiorze pingwinów długość płetwy i masa ciała mają kowariancję 9824 mm·g. Po zmianie na kilogramy spada do 9,824, po zmianie płetwy na centymetry — do 0,982, choć dane się nie zmieniły. Korelacja w każdym przypadku wynosi 0,871 (r² = 0,76). Ciekawsza jest para długość i głębokość dzioba: w całym zbiorze r = −0,235, jakby dłuższy dziób był płytszy. Wewnątrz gatunków korelacja jest jednak dodatnia: 0,39 u Adeli, 0,65 u pingwinów maskowych i 0,64 u białobrewych. Ujemny wynik ogólny to efekt mieszania gatunków.
Dane: Palmer Penguins (pingwiny z Antarktydy) Kwartet Anscombe’a
W praktyce
- W pandas:
df.cov(),df.corr()(domyślnie Pearson),df.corr(method='spearman'); w NumPynp.covinp.corrcoef(uwaga: domyślnie wiersze to zmienne). - Mapę korelacji rysuj np.
seaborn.heatmap(df.corr(), annot=True), ale zawsze oglądaj też wykresy rozrzutu (seaborn.pairplot). - Silnie skorelowane cechy (|r| > 0,9) destabilizują współczynniki regresji liniowej; pomaga regularyzacja albo usunięcie jednej z nich.
- Istotność korelacji sprawdzisz
scipy.stats.pearsonrlubspearmanr; przy dużych próbach nawet r = 0,05 bywa „istotne”, choć praktycznie nic nie znaczy. - Typowy błąd: liczenie korelacji na danych zmieszanych z kilku grup bez sprawdzenia, czy zależność ma ten sam znak w każdej z nich.
Najczęstsze pytania
- Jaka korelacja jest „silna”?
- Nie ma uniwersalnego progu. W fizyce r = 0,9 bywa rozczarowujące, w psychologii r = 0,3 bywa ważnym wynikiem. Lepiej patrzeć na r², wykres i to, czy związek ma praktyczne znaczenie.
- Czy zerowa korelacja oznacza brak związku?
- Nie, oznacza brak związku liniowego. Zależność w kształcie litery U, okresowa albo istniejąca tylko w części danych może dać r bliskie zeru. Wykres rozrzutu albo miary nieliniowe, jak informacja wzajemna, pokażą więcej.
- Kiedy używać Spearmana zamiast Pearsona?
- Gdy zależność jest monotoniczna, ale nieliniowa, gdy dane są porządkowe (np. skale ocen) albo gdy są wartości odstające. Spearman liczy korelację na rangach, więc pojedynczy skrajny punkt ma ograniczony wpływ.
Źródła
- Anscombe, 1973, „Graphs in Statistical Analysis”, The American Statistician 27(1), 17–21.
- Pearson, 1895, „Notes on regression and inheritance in the case of two parents”, Proceedings of the Royal Society of London 58, 240–242.
- Blitzstein, Hwang „Introduction to Probability”, 2nd ed., CRC Press, 2019, rozdz. 7.3 (Covariance and correlation).
- James, Witten, Hastie, Tibshirani „An Introduction to Statistical Learning”, 2nd ed., Springer, 2021, rozdz. 3.1.
- Dokumentacja pandas: DataFrame.corr, https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.corr.html