본문으로 바로가기

스피어만 상관관계: 비선형 관계를 정량화하는 방법

스피어만 순위 상관관계가 직선이 아닌 곡선, 평탄화, 속도 변화의 관계를 어떻게 포착하는지 알아보세요. Python, R, Excel에서 계산, 해석, 적용하는 법을 배웁니다.
업데이트됨 2026년 9월 15일  · 10분 읽다

AI로 탐색하기

ChatGPTClaudePerplexity

모든 관계가 직선 형태를 따르지는 않습니다.

마케팅 예산이 늘어나면 전환율이 대체로 개선되지만, 그 증가 폭이 일정하지 않을 수 있습니다. 또는 소득이 오르면 행복도도 대체로 높아지다가 어느 순간 정체될 수 있습니다. 패턴은 분명하지만 선형은 아닙니다. 이런 관계를 어떻게 정량화할 수 있을까요?

상관관계는 두 변수가 함께 어떻게 움직이는지를 설명합니다. 가장 흔히 보는 상관관계는 피어슨 상관계수로, 선형 관계에서는 매우 잘 작동합니다. 하지만 실제 세계의 많은 관계는 선형이 아닙니다. 곡선을 그리거나, 평탄해지거나, 일정한 추세를 따르지만 직선을 이루지 않을 수 있습니다. 어떤 경우에는 정확한 값 자체보다 값의 순서가 더 중요할 때도 있습니다. 이때 사용하는 것이 스피어만 순위 상관계수입니다.

스피어만 상관관계는 원시값 대신 순위를 사용하여, 두 변수가 일관된 방식으로 함께 증가하거나 감소하는지를 측정합니다. 이는 단조(monotonic) 관계를 측정하는 데 적합합니다. 또한 이상치나 불균등 간격 같은 데이터의 특이점에도 비교적 강건합니다.

스피어만 순위 상관관계란?

스피어만 순위 상관계수는 두 변수 간 관계의 강도와 방향을 측정하는 지표입니다. 값 자체가 아닌 값의 순위를 기반으로 합니다.

이해를 돕기 위해 스트리밍 플랫폼의 노래를 분석한다고 가정해 보겠습니다. 한 노래의 재생 수와 “Top 100” 차트 순위를 비교할 수 있습니다. 관계가 완벽한 선형일 필요는 없습니다. 재생 수가 두 배가 되어도 순위가 꼭 두 배로 좋아지는 것은 아니니까요. 하지만 일반적으로 재생 수가 많은 곡이 더 높은 순위를 차지합니다.

스피어만 상관관계는 정확한 값 대신 데이터의 순서에 집중함으로써 이러한 패턴을 포착합니다.

따라서 관계가 선형은 아니지만 뚜렷한 추세를 따를 때, 데이터가 본질적으로 순위로 표현될 때, 또는 이상치로 인해 선형 측정이 왜곡될 수 있을 때 특히 유용합니다.

피어슨 상관관계가 원시값을 직접 다루는 것과 달리, 스피어만 상관관계는 먼저 데이터를 순위로 변환한 후 그 순위들 간의 일치 정도를 측정합니다.

기술적으로, 스피어만 상관관계는 단조 관계를 측정합니다. 한 변수가 증가할 때 다른 변수도 증가하거나, 한 변수가 증가할 때 다른 변수가 감소하는 식으로 방향을 바꾸지 않는 관계를 말합니다.

단조 관계 vs. 선형 관계

그렇다면 선형 관계와 단조 관계의 차이는 정확히 무엇일까요?

선형 관계는 데이터가 직선 패턴을 따르는 경우입니다. 데이터를 그려보면 점들이 대략 직선을 이룹니다.

반면 단조 관계는 덜 엄격합니다. 관계가 한 방향으로 움직이기만 하면 됩니다. 본질적으로 두 변수가 함께 움직이지만 반드시 직선일 필요는 없습니다. 패턴이 곡선을 그리거나, 평탄해지거나, 속도가 변해도 방향만 바꾸지 않으면 됩니다.

그래프에는 네 가지 서로 다른 단조 관계 예시가 보입니다. 첫 번째는 선형, 두 번째는 로그형, 세 번째는 지수형, 네 번째는 포화형입니다. 다섯 번째 예시는 단조가 아닌 아치형입니다.

위 그래프에서 단조 관계의 네 가지 예시를 볼 수 있으며, 이 중 선형인 것은 첫 번째뿐입니다. 마지막 그래프는 패턴의 방향이 바뀌어 처음에는 양의 연관성으로 시작했다가 결국 음의 연관성으로 끝나므로 단조가 아닙니다.

관계 유형

설명

모양

선형

변수가 일정한 속도로 증가 또는 감소

직선

단조 

(비선형)

변수는 한 방향으로 움직이되, 속도는 변함

곡선, 평탄화, 가속되는 추세

비단조

관계의 방향이 바뀜(증가 후 감소 또는 그 반대)

U자형, 역 U자형, 파동형 패턴

스피어만 순위 상관계수 계산 단계별 안내

큰 틀에서 스피어만 순위 상관계수는 데이터를 순위로 변환한 다음, 변수 간 순위가 얼마나 유사한지 측정합니다.

작은 예시를 함께 살펴보겠습니다. 음악 연습 시간과 대회에서의 공연 순위 간 관계를 보려 한다고 가정합시다.

학생

연습 시간 (X)

공연 점수 (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

먼저 데이터를 그려보겠습니다.

연습 시간과 공연 점수의 산점도. 양의 비선형 연관성을 보여줍니다.

시각적으로는 연습을 더 많이 할수록 공연 점수가 높아지는 것으로 보이지만, 패턴이 완벽한 선형은 아닌 듯합니다. 연습을 너무 많이 하면 체감효과가 줄어드는 듯합니다. 이 관계를 정량화하기 위해 스피어만 순위를 적용해 보겠습니다.

1단계: 데이터를 순위로 변환

먼저 각 값에 순위를 부여합니다. 각 변수 내에서 가장 작은 값부터 큰 값까지 순위를 매깁니다. 해당 변수에서 가장 작은 값은 순위 1, 그다음은 순위 2, 이런 식으로 이어집니다.

학생

연습 시간 (X)

순위 (X)

공연 점수 (Y)

순위 (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

Y의 순위가 X와 약간 다른 순서를 보이는 것을 확인하세요. 스피어만 상관관계는 바로 이 변동을 측정합니다.

2단계: 순위 차이 계산

다음으로 각 관측치에 대해 순위 간 차이를 계산합니다.

그다음 각 차이를 제곱합니다:

학생

순위(X)

순위(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

이제 표의 마지막 열에 있는 제곱합을 더해 봅니다.

3단계: 공식 적용

마지막으로 스피어만 상관계수 공식을 적용합니다.

앞서 계산에서 (di)2=4임을 알고 있습니다. 분모의 n은 표본 크기이며, 여기서는 8입니다. 이를 대입하면 다음과 같습니다.

결과 해석

최종 결과는 ρ ~ 0.95입니다. +1에 가까운 값이므로 연습 시간과 공연 성과 사이에 강한 양의 관계가 있음을 나타냅니다. 관계가 완벽한 선형은 아니지만 순위는 매우 유사합니다. 즉, x 값이 변하면 y 값도 일관되게 함께 변하는 경향이 있다는 뜻입니다.

실제 상황에서는 이를 손으로 계산하는 경우가 거의 없습니다. 대부분의 소프트웨어가 순위 매기기, 동점 처리, 계산을 자동으로 수행합니다. 보통 표본 크기가 훨씬 더 크기 때문입니다!

소프트웨어로 스피어만 상관관계 계산하기

요즘 대부분의 통계 소프트웨어는 이 계산을 몇 초 안에 처리합니다. 가장 흔한 도구들을 간단히 살펴보겠습니다.

Python

Python에서는 워크플로에 따라 보통 scipy 또는 pandas를 사용합니다. 배열이나 리스트로 작업한다면 scipy를 사용해 스피어만 상관관계를 직접 계산할 수 있습니다.

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

이 코드는 상관계수와 p-값을 함께 반환하므로, 통계 검정을 수행할 때 유용합니다.

표 형태의 데이터로 작업한다면 pandas가 더 편리할 때가 많습니다.

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

이 코드는 상관행렬을 계산하여 여러 변수를 한 번에 쉽게 비교할 수 있게 합니다.

또는 두 특정 열 사이의 상관관계만 원한다면 간단히 지정할 수 있습니다.

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

R

R에서는 스피어만 상관관계가 기본 통계 함수에 내장되어 있습니다.

빠르게 계산하려면 cor()를 사용하고 Spearman 방법을 지정하면 됩니다.

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

p-값과 추가 통계 정보를 함께 원한다면 cor.test()를 사용하면 간단히 확인할 수 있습니다.

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

Excel

Excel에는 스피어만 함수가 내장되어 있지 않지만, 두 단계로 빠르게 계산할 수 있습니다. 먼저 데이터를 순위로 변환하고, 그 순위의 상관관계를 계산합니다.

간단한 예시를 보겠습니다:

A (X)

B (Y)

C (순위 X)

D (순위 Y)

2

50

1

1

4

65

2

2

6

70

3

3

8

80

5

5

10

78

4

4

순위를 만들 때(열 C, D)는 RANK.AVG 함수를 사용할 수 있습니다. 예:

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

그런 다음 스피어만 상관관계를 계산하면 됩니다.

=CORREL(C2:C6, D2:D6)

이 모든 도구에서 기본 과정은 동일합니다. 값을 순위로 변환한 뒤, 그 순위의 상관관계를 계산합니다.

스피어만 순위 상관관계 해석 방법

피어슨 상관관계를 사용해 본 적이 있다면, 스피어만 순위 상관관계를 해석하는 데에도 익숙할 것입니다. 해석 방식이 거의 동일하기 때문입니다.

스피어만 순위 상관계수는 -1에서 1 사이의 값을 반환합니다. 이는 단조 관계의 방향과 강도를 알려줍니다.

+1은 완전한 증가 단조 관계를 의미합니다. 한 변수가 증가하면 다른 변수도 항상 증가합니다. 각 값 쌍의 순위가 정확히 동일할 때 발생합니다.

-1은 완전한 감소 단조 관계를 의미합니다. 한 변수가 증가하면 다른 변수는 항상 감소합니다. 각 값 쌍의 순위가 정확히 반대일 때 발생합니다.

0은 단조 관계가 없음을 의미합니다. 순위에서 일관된 추세가 없을 때 발생합니다.

세 개의 그래프는 각각 완전한 양의 단조 관계, 비단조 관계, 완전한 음의 단조 관계를 보여줍니다.

피어슨 상관계수와의 중요한 차이점은 스피어만 상관관계는 실제 값이 직선을 얼마나 잘 따르는지가 아니라, 데이터의 순서가 얼마나 잘 맞는지를 반영한다는 점입니다. 즉, 스피어만 상관계수가 높다는 것은 순위의 뚜렷한 추세를 의미할 뿐, 관계가 선형이거나 간격이 고르게 떨어져 있음을 의미하지는 않습니다.

따라서 상관계수 값과 함께 간단한 시각화를 병행해 기저 패턴을 파악하는 것이 좋습니다.

순위에서 동점 처리

모든 것이 좋아 보이다가도 여러 관측치가 동일한 값을 갖는 데이터셋을 만나면 문제가 생깁니다. 어떻게 해야 할까요? 이를 동점(tie)이라고 하며, 순위를 부여할 때 약간의 조정이 필요합니다.

예를 들어 값이 10, 20, 20, 30이라면, 보통 20 두 개는 순위 2와 3을 차지합니다. 그러나 값이 같으므로 서로 다른 순위를 주는 대신, 해당 순위들의 평균을 부여합니다. 따라서 두 20은 각각 2.5의 순위를 받습니다. 이렇게 하면 동점 값을 공정하게 처리하면서 전체 순위 체계의 일관성을 유지할 수 있습니다.

스피어만 순위 상관계수는 전적으로 순위에 기반하기 때문에, 동점을 올바르게 처리하지 않으면 상관관계가 왜곡될 수 있습니다.

스피어만 상관관계의 한계

스피어만 순위 상관계수는 유연하고 널리 쓰이는 지표이지만, 몇 가지 한계가 있습니다.

가장 중요한 점은 단조 관계만 포착할 수 있다는 것입니다. 관계의 방향이 바뀌는 U자형 패턴이나 사인파 같은 경우, 뚜렷한 패턴이 있어도 상관계수가 0에 가까울 수 있습니다. 이런 경우에는 다항 회귀 같은 비선형 모델을 사용하는 것이 더 적합합니다.

또한 스피어만 상관관계는 순위에 기반하기 때문에 실제 값들 사이의 거리를 무시합니다. 이는 이상치 처리에 더 강건하다는 장점이 있지만, 그만큼 정보가 일부 손실됩니다. 이로 인해 관계의 크기(변화량)를 피어슨 상관관계보다 해석하기 어렵습니다. 변수들이 순서대로 함께 움직이는지는 알려주지만, 한 변수가 다른 변수에 비해 얼마나 변하는지는 알려주지 않습니다.

마지막으로, 동점 값이 많으면 순위 매기기의 정밀도가 떨어집니다. 그 결과 상관계수가 더 약하게 나타나 관계의 정도를 온전히 반영하지 못할 수 있습니다.

스피어만 vs. 피어슨: 언제 무엇을 쓸까

가장 널리 사용되는 상관관계는 아마 피어슨 상관계수일 것입니다. 처음 보면 스피어만 상관계수와 매우 비슷해 보입니다. 이름도 거의 같지요! 하지만 두 지표는 약간 다른 질문에 답합니다.

피어슨은 “이 변수들이 직선 관계를 따르는가?”를 묻고, 스피어만은 “이 변수들이 같은 순서로 움직이는가?”를 묻습니다.

데이터가 대략 직선 패턴을 따르고 값들 사이의 실제 거리(간격)가 의미가 있다면 피어슨 상관관계가 보통 적합합니다. 그러나 관계가 곡선을 그리거나 평탄해진다면 스피어만이 더 나은 선택입니다.

스피어만은 또한 더 관대합니다. 원시값이 아니라 순위로 작업하므로 이상치에 덜 민감하고 데이터에 대한 가정에 덜 의존합니다. 그 대가로 값들 사이의 크기 차이를 포착하는 능력은 떨어집니다.

실무에서는 이렇게 기억하면 좋습니다. 관계가 선형이면 피어슨을, 단조이지만 선형이 아니면 스피어만을 사용하세요. 그리고 언제나처럼, 결정을 내리기 전에 데이터를 시각화해 보세요.

결론

스피어만 상관계수는 피어슨 상관관계로 잘 설명되지 않는 데이터셋에서 단조 패턴을 포착하는 데 유용한 도구입니다. 순위를 사용하므로 이상치에 덜 민감하고 비선형 데이터에도 더 잘 맞습니다.

데이터셋에 가장 적합한 상관관계를 선택하는 방법은 상관관계 이해하기: 데이터에서 관계 측정하기에서 더 읽어보세요. 또한 공분산 이해하기: 입문 가이드도 참고할 수 있습니다.

자주 묻는 질문

스피어만 순위 상관계수란 무엇인가요?

스피어만 순위 상관계수는 단조 관계, 나아가 비선형 관계까지 정량화하는 비모수 통계치입니다.

단조 관계란 무엇인가요?

단조 관계는 변수가 같은 방향으로 함께 움직이는 관계를 말합니다. 선형으로 결합될 필요는 없습니다.

스피어만 상관관계에서 동점은 어떻게 계산하나요?

두 개 이상의 값이 같은 순위를 공유할 경우, 그들이 차지했을 순위의 평균을 계산해 동점 값 모두에 그 평균 순위를 부여합니다.

피어슨 상관관계와 스피어만 상관관계의 차이는 무엇인가요?

피어슨 상관관계는 이상치가 없고 선형 관계일 때 특히 적합합니다. 스피어만은 이상치가 있거나 비선형인 더 복잡한 데이터에서도 작동합니다.

스피어만 상관관계는 정규분포를 가정하나요?

아니요. 스피어만 상관관계는 비모수 통계치이므로 데이터의 정규성을 가정하지 않습니다.

주제
데이터 분석