Przejdź do głównej treści

Korelacja Spearmana: jak mierzyć nieliniowe zależności

Dowiedz się, jak korelacja rang Spearmana uchwytuje relacje, które się zakrzywiają, spłaszczają lub zmieniają tempo, zamiast podążać po linii prostej. Naucz się ją obliczać, interpretować i stosować w Pythonie, R i Excelu.
Zaktualizowano 15 wrz 2026  · 10 min Czytać

Eksploruj z AI

ChatGPTClaudePerplexity

Nie wszystkie zależności układają się w linię prostą.

Możesz zauważyć, że wraz ze wzrostem budżetu marketingowego konwersja klientów zwykle się poprawia, ale nie w stałym tempie. Albo że wraz ze wzrostem dochodów poziom szczęścia często rośnie, a potem się wypłaszcza. Wzorzec jest wyraźny, ale nie jest liniowy. Jak to zmierzyć?

Korelacja opisuje, jak dwie zmienne zmieniają się razem. Powszechnie spotykanym współczynnikiem korelacji jest współczynnik korelacji Pearsona, który doskonale sprawdza się dla zależności liniowych. Jednak wiele relacji w rzeczywistości nie jest liniowych. Mogą się zakrzywiać, spłaszczać lub podążać za stałym trendem bez tworzenia prostej. W niektórych przypadkach mniej istotne są dokładne wartości, a bardziej kolejność ich występowania. Tu wkracza współczynnik korelacji rang Spearmana.

Korelacja Spearmana działa na rangach zamiast na wartościach surowych, mierząc, czy dwie zmienne mają tendencję do wspólnego wzrostu lub spadku w spójny sposób. Dzięki temu świetnie nadaje się do relacji monotonicznych. Jest też bardziej odporna na pewne osobliwości danych, jak wartości odstające czy nierówne odstępy.

Czym jest korelacja rang Spearmana?

Współczynnik korelacji rang Spearmana to miara siły i kierunku zależności między dwiema zmiennymi. Opiera się na rangach ich wartości, a nie na samych wartościach.

Aby zobaczyć, jak to działa, wyobraź sobie, że analizujesz piosenki na platformie streamingowej. Możesz porównać liczbę odtworzeń utworu z jego pozycją na liście „Top 100”. Zależność może nie być idealnie liniowa — podwojenie liczby odtworzeń niekoniecznie podwaja pozycję utworu. Ogólnie jednak piosenki z większą liczbą odtworzeń mają wyższe miejsca w rankingu.

Korelacja Spearmana uchwytuje taki wzorzec, skupiając się na kolejności danych zamiast na ich dokładnych wartościach.

Jest to szczególnie przydatne, gdy relacja nie jest liniowa, ale wciąż podąża wyraźnym trendem, dane naturalnie wyrażone są jako rankingi albo zawierają wartości odstające, które mogłyby zniekształcić pomiar liniowy.

W przeciwieństwie do korelacji Pearsona, która pracuje bezpośrednio na wartościach surowych, korelacja Spearmana najpierw przekształca dane w rangi, a następnie mierzy, jak ściśle te rankingi się pokrywają.

Technicznie rzecz biorąc, korelacja Spearmana mierzy zależności monotoniczne. Zależność jest monotoniczna, jeśli jedna zmienna ma tendencję do wzrostu wraz ze wzrostem drugiej lub do spadku wraz z jej spadkiem, bez zmiany kierunku.

Relacje monotoniczne vs. liniowe

Jaka jest więc dokładnie różnica między zależnościami liniowymi a monotonicznymi?

Relacja liniowa to taka, w której dane układają się w wzór prostej. Na wykresie punkty tworzyłyby w przybliżeniu linię.

Relacja monotoniczna jest mniej restrykcyjna. Oznacza po prostu, że związek porusza się w jednym kierunku. Innymi słowy, obie zmienne zmieniają się razem, ale niekoniecznie po linii prostej. Wzorzec może się zakrzywiać, wypłaszczać lub zmieniać tempo, o ile nie odwraca kierunku.

Na wykresach widać cztery różne przykłady relacji monotonicznych. Pierwsza jest liniowa, druga logarytmiczna, trzecia wykładnicza, a czwarta saturująca. Piąty przykład jest niemonotoniczny; kształt łuku.

Na powyższych wykresach widać cztery różne przykłady relacji monotonicznych, z których tylko pierwsza jest liniowa. Ostatni wykres nie jest monotoniczny, ponieważ wzorzec zmienia kierunek — zaczyna się jako dodatnia zależność, a kończy jako ujemna.

Typ relacji

Opis

Jak wygląda

Liniowa

Zmienne rosną lub maleją w stałym tempie

Linia prosta

Monotoniczna 

(ale nieliniowa)

Zmienne poruszają się w jednym kierunku, ale tempo się zmienia

Trend zakrzywiony, wypłaszczający się lub przyspieszający

Niemonotoniczna

Relacja zmienia kierunek (najpierw rośnie, potem maleje, lub odwrotnie)

Kształt U, odwrócone U lub falujący wzór

Jak krok po kroku obliczyć korelację rang Spearmana

W skrócie, współczynnik Spearmana działa tak, że przekształca dane w rangi, a następnie mierzy, jak podobne są rankingi między zmiennymi.

Przejdźmy przez mały przykład. Załóżmy, że analizujemy zależność między liczbą godzin poświęconych na ćwiczenie gry na instrumencie a miejscem w rankingu w konkursie.

Uczeń

Godziny ćwiczeń (X)

Wynik występu (Y)

Aladdin

2

50

Bonnie

4

65

Clyde

6

70

Daniel

8

80

Eloise

10

78

Franny

12

85

Gemma

14

90

Harris

16

88

Najpierw narysujmy wykres danych.

Wykres punktowy godzin ćwiczeń względem wyniku występu pokazuje dodatnią, nieliniową zależność.

Wizualnie wygląda na to, że więcej ćwiczeń przekłada się na wyższe wyniki, ale wzorzec nie jest idealnie liniowy. Wygląda na to, że zbyt intensywne ćwiczenie może przynosić malejące korzyści. Spróbujmy zastosować rangi Spearmana, aby to zquantyfikować.

Krok 1: przekształć dane na rangi

Najpierw przypiszmy każdej wartości rangę. W obrębie każdej zmiennej przypisujemy rangi od najmniejszej do największej. Najmniejsza wartość w zmiennej otrzymuje rangę 1, druga najmniejsza rangę 2 i tak dalej.

Uczeń

Godziny ćwiczeń (X)

Ranga (X)

Wynik występu (Y)

Ranga (Y)

Aladdin

2

1

50

1

Bonnie

4

2

65

2

Clyde

6

3

70

3

Daniel

8

4

80

5

Eloise

10

5

78

4

Franny

12

6

85

6

Gemma

14

7

90

8

Harris

16

8

88

7

Zauważ, że rankingi dla Y są w nieco innej kolejności niż dla X. Właśnie tę zmienność mierzy korelacja Spearmana.

Krok 2: oblicz różnice rang

Następnie obliczamy różnicę między rangami dla każdej obserwacji.

Następnie podnieś każdą różnicę do kwadratu:

Uczeń

Ranga(X)

Ranga(Y)

di

(di)2

A

1

1

0

0

B

2

2

0

0

C

3

3

0

0

D

4

5

-1

1

E

5

4

1

1

F

6

6

0

0

G

7

8

-1

1

H

8

7

1

1

Teraz zsumuj kwadraty różnic w ostatniej kolumnie tabeli.

Krok 3: zastosuj wzór

Na koniec podstawiamy wartości do wzoru na korelację Spearmana.

Wcześniej obliczyliśmy, że (di)2=4. n w mianowniku to liczebność próby, u nas 8. Podstawiając, otrzymujemy:

Interpretacja wyniku

Ostateczny wynik to ρ ~ 0,95. Ponieważ wartość jest bliska +1, wskazuje na silną dodatnią zależność między czasem ćwiczeń a wynikiem. Mimo że relacja nie jest idealnie liniowa, rankingi są bardzo podobne. Oznacza to, że gdy zmienia się wartość x, wartość y ma tendencję do spójnej zmiany wraz z nią.

W praktyce rzadko liczy się to ręcznie. Większość oprogramowania automatycznie obsługuje rangowanie, remisy i obliczenia — i dobrze, bo zwykle mamy znacznie większe próby!

Obliczanie korelacji Spearmana w oprogramowaniu

Większość współczesnych narzędzi statystycznych poradzi sobie z tym obliczeniem w kilka sekund. Krótko omówmy najpopularniejsze.

Python

W Pythonie zwykle użyjesz scipy albo pandas, w zależności od sposobu pracy. Jeśli pracujesz na tablicach lub listach, scipy oferuje bezpośredni sposób obliczenia korelacji Spearmana.

py
corr, p_value = spearmanr(x, y)
print(corr, p_value)

Zwraca to zarówno współczynnik korelacji, jak i p-value, co przydaje się przy testowaniu statystycznym.

Jeśli pracujesz z danymi tabelarycznymi, pandas bywa wygodniejsze.

corr_matrix = df.corr(method="spearman")
print(corr_matrix)

To oblicza macierz korelacji, ułatwiając porównanie wielu zmiennych naraz.

Alternatywnie, jeśli chcesz korelację tylko między dwiema konkretnymi kolumnami, łatwo to wskazać.

corr=df["column_1"].corr(df["column_2"],method="spearman")

R

W R korelacja Spearmana jest wbudowana w podstawowe funkcje statystyczne.

Do szybkiego obliczenia możesz użyć cor() i wskazać metodę Spearmana.

cor(x, y, method = "spearman")

Jeśli chcesz również p-value i dodatkowe szczegóły statystyczne, cor.test() dostarcza je w prosty sposób.

cor.test(x,y,method="spearman")

Excel

Excel nie ma wbudowanej funkcji Spearmana, ale możesz to policzyć w dwóch szybkich krokach: najpierw nadaj danym rangi, potem policz korelację tych rang.

Oto mały przykład:

A (X)

B (Y)

C (ranga X)

D (ranga Y)

2

50

1

1

4

65

2

2

6

70

3

3

8

80

5

5

10

78

4

4

Rangi (kolumny C i D) możesz utworzyć funkcją RANK.AVG. Przykładowo:

=RANK.AVG(A2, $A$2:$A$6,1)
=RANK.AVG(B2, $B$2:$B$6,1)

Następnie po prostu oblicz korelację Spearmana.

=CORREL(C2:C6, D2:D6)

We wszystkich tych narzędziach proces jest ten sam: przekształć wartości w rangi, a potem policz korelację tych rang.

Jak interpretować korelację rang Spearmana

Jeśli używałeś wcześniej korelacji Pearsona, masz już dobrą intuicję, jak interpretować korelację rang Spearmana — interpretacja jest w zasadzie taka sama.

Spearman zwraca wartość między -1 a 1. Informuje ona zarówno o kierunku, jak i sile relacji monotonicznej.

Wartość +1 oznacza idealnie rosnącą relację monotoniczną: gdy jedna zmienna rośnie, druga zawsze rośnie. Dzieje się tak, gdy rankingi każdej pary wartości są dokładnie takie same.

Wartość -1 oznacza idealnie malejącą relację monotoniczną: gdy jedna zmienna rośnie, druga zawsze maleje. Dzieje się tak, gdy rankingi każdej pary wartości są dokładnie odwrócone.

Wartość 0 oznacza brak relacji monotonicznej. Dzieje się tak, gdy w rankingach nie ma spójnego trendu.

Trzy wykresy pokazują odpowiednio: idealnie dodatnią relację monotoniczną, relację niemonotoniczną oraz idealnie ujemną relację monotoniczną.

Ważna różnica względem współczynnika Pearsona jest taka, że korelacja Spearmana odzwierciedla zgodność kolejności danych, a nie to, jak ściśle wartości podążają za linią prostą. Oznacza to, że silna korelacja Spearmana wskazuje wyraźny trend w rankingach, a niekoniecznie relację liniową czy równomierne odstępy.

Dlatego zawsze warto zestawić wartość korelacji z szybką wizualizacją, by najlepiej zrozumieć leżący u podstaw wzorzec.

Obsługa remisów w rankingach

Wszystko brzmi dobrze, dopóki nie trafisz na zbiór danych, w którym wiele obserwacji ma tę samą wartość. Co wtedy? To tzw. remisy (ties) i wymagają drobnej korekty przy nadawaniu rang.

Na przykład, rozważ wartości: 10, 20, 20, 30. Dwie dwudziestki normalnie zajęłyby rangi 2 i 3. Ponieważ jednak są takie same, zamiast przydzielać im różne rangi, przypisujemy każdej średnią tych rang; obie 20 otrzymują rangę 2,5. Dzięki temu rozwiązaniu wartości remisowe są traktowane sprawiedliwie, a ogólny ranking pozostaje spójny.

Ponieważ współczynnik Spearmana opiera się w całości na rangach, nieprawidłowa obsługa remisów może zniekształcić korelację.

Ograniczenia korelacji Spearmana

Choć współczynnik rang Spearmana jest elastyczną i szeroko stosowaną miarą, ma pewne ograniczenia.

Przede wszystkim, potrafi uchwycić tylko relacje monotoniczne. Jeśli związek zmienia kierunek, np. ma kształt U lub przebiega jak sinusoida, korelacja może być bliska zeru, mimo że istnieje wyraźny wzorzec. W takich przypadkach lepiej sprawdzą się modele nieliniowe, np. regresja wielomianowa.

Poza tym, ponieważ korelacja Spearmana opiera się na rangach, ignoruje rzeczywiste odległości między wartościami. Dzięki temu lepiej radzi sobie z wartościami odstającymi, ale też oznacza utratę części informacji. Przez to trudniej interpretować wielkość efektu niż w korelacji Pearsona. Mówi, czy zmienne podążają razem w tej samej kolejności, ale nie o tym, jak bardzo jedna zmienia się względem drugiej.

Wreszcie, gdy wiele wartości jest remisowych, proces rangowania staje się mniej precyzyjny. Może to skutkować słabszą wartością korelacji, potencjalnie niedoszacowującą siłę relacji.

Spearman vs Pearson: kiedy której użyć

Najczęściej używanym współczynnikiem korelacji jest prawdopodobnie współczynnik Pearsona. Na pierwszy rzut oka wydaje się bardzo podobny do korelacji Spearmana. Nawet nazwy mają niemal identyczne! Jednak odpowiadają na nieco inne pytania.

Pearson pyta: „Czy te zmienne podążają zależnością liniową?”, a Spearman: „Czy te zmienne poruszają się w tej samej kolejności?”

Jeśli twoje dane układają się mniej więcej po linii prostej, a odległości między wartościami mają znaczenie, zwykle wybierz korelację Pearsona. Jeśli jednak relacja się zakrzywia lub wypłaszcza, lepszym wyborem będzie Spearman.

Spearman jest też bardziej wyrozumiały. Ponieważ działa na rangach zamiast na wartościach surowych, jest mniej wrażliwy na wartości odstające i w mniejszym stopniu opiera się na założeniach o danych. Ceną jest to, że gorzej wychwytuje różnice w wielkości między wartościami.

W praktyce dobra zasada jest taka: jeśli relacja jest liniowa — użyj Pearsona; jeśli jest monotoniczna, ale nieliniowa — użyj Spearmana. I jak zawsze, zanim zdecydujesz, narysuj dane.

Podsumowanie

Współczynnik korelacji Spearmana to świetne narzędzie do uchwycenia wzorców monotonicznych, zwłaszcza w zbiorach danych, które nie są dobrze obsługiwane przez korelację Pearsona. Dzięki pracy na rangach jest mniej wrażliwy na wartości odstające i lepiej radzi sobie z danymi nieliniowymi.

Więcej o wyborze najlepszej korelacji dla twojego zbioru danych przeczytasz w Understanding Correlation: Measuring Relationships in Data. Może cię też zainteresować Understanding Covariance: An Introductory Guide.

FAQ

Czym jest współczynnik rang Spearmana?

Współczynnik rang Spearmana to nieparametryczna statystyka, która kwantyfikuje zależności monotoniczne, a nawet nieliniowe, między zmiennymi.

Czym jest relacja monotoniczna?

Relacja monotoniczna to taka, w której zmienne poruszają się razem w tym samym kierunku. Nie muszą być liniowo powiązane.

Jak obliczać remisy w korelacji Spearmana?

Gdy dwie lub więcej wartości ma tę samą rangę, po prostu weź średnią rang, które by zajęły, i przypisz tę średnią wszystkim remisującym wartościom.

Jaka jest różnica między korelacją Pearsona a Spearmana?

Korelacja Pearsona szczególnie dobrze nadaje się do relacji liniowych bez wartości odstających. Spearman lepiej radzi sobie z „bałaganiarskimi” danymi, które mogą mieć wartości odstające lub są nieliniowe.

Czy korelacja Spearmana wymaga normalności danych?

Nie. Korelacja Spearmana jest statystyką nieparametryczną, co oznacza, że nie zakłada normalności w twoim zbiorze danych.

Tematy
Analiza danych