본문으로 바로가기
데이터 사이언스

Mann-Whitney U 검정: t-검정의 비모수 대안

Mann-Whitney U 검정은 t-검정에 필요한 정규성 가정이 충족되지 않을 때 두 독립 집단을 비교하는 순위 기반 비모수 검정입니다.
업데이트됨 · 10분 읽기

AI와 탐험해 보세요

ChatGPTClaudePerplexity

무료 계정 만들기

실습 문제하고 트랙하세요.

Google로 계속하기
계속 진행하시면 당사의 이용약관 및 개인정보처리방침에 동의하고 및 귀하의 데이터가 미국에 저장되는 것에 동의하게 됩니다.

t-검정을 실행했는데 p-값이 이상하게 나와서, 나중에 보니 데이터가 정규분포와는 거리가 멀었다는 경험이 있으신가요?

이런 일은 누구에게나 한 번쯤 일어납니다. t-검정의 문제는 데이터가 정규분포를 따른다는 가정을 한다는 점입니다. 이 가정이 깨지면 결과가 오해를 불러일으킬 수 있습니다. 왜도가 큰 데이터와 작은 표본 크기는 모두 정규성 가정을 위반합니다. 그리고 실제 데이터는 교과서가 말하는 대로 잘 움직이지 않습니다.

Mann-Whitney U 검정은 이 문제를 해결합니다. 평균이 아니라 순위를 기반으로 두 집단을 비교하는 비모수적 대안이기 때문에, 분포의 모양에 구애받지 않습니다.

이 글에서는 Mann-Whitney U 검정이 무엇인지, 언제 사용하는지, 수학적 원리는 무엇인지, 그리고 Python과 R에서 실행하고 해석하는 방법을 다룹니다.

그런데 t-검정이 정확히 무엇인가요? 그런 질문이 든다면, 저희의 Introduction to Python T-Tests 블로그 글을 읽어보세요. 모든 궁금증이 해결됩니다.

Mann-Whitney U 검정이란?

Mann-Whitney U 검정은 두 개의 독립 집단을 비교하는 데 사용되는 비모수 통계 검정입니다.

t-검정과 달리 데이터가 정규분포를 따른다고 가정하지 않습니다. 원시 값을 순위로 변환해 두 집단의 분포를 비교합니다. 따라서 데이터에 왜도가 있거나, 이상치가 있거나, 그 밖의 이유로 정규성 요건을 충족하지 못할 때 좋은 선택입니다.

또한 Wilcoxon 순위합 검정이라고도 부르며, 실질적으로 동의어라고 보면 됩니다.

Mann-Whitney U 검정을 사용할 때

Mann-Whitney U 검정에는 특정 조건이 필요합니다. 아래 모든 조건을 충족할 때만 사용하세요:

  • 두 개의 독립 집단: 표본이 겹치지 않고, 한 집단의 값이 다른 집단에 영향을 주지 않아야 함
  • 서열형 또는 연속형 데이터: 시험 점수, 반응 시간 등 측정된 값을 떠올리면 됩니다
  • 비정규 분포: 데이터에 왜도가 있거나 꼬리가 두껍거나, 작은 표본으로 정규성을 확인할 수 없는 경우
  • 작은 표본 크기: 중심극한정리에 의존하기 어려울 만큼 데이터가 적을 때

예시를 통해 살펴보겠습니다.

서로 다른 방법으로 가르친 두 반이 있고, 어느 쪽이 시험 성적이 더 좋았는지 알고 싶다고 합시다. 점수를 그려보니 정규분포가 아니고, 한 반은 소수의 이상치 때문에 분포가 오른쪽으로 치우쳐 있습니다. t-검정은 집단의 평균을 비교하므로, 그 이상치가 평균을 끌어올려 한 반이 실제보다 더 좋아 보이게 만듭니다.

왜곡된 평균이 t-검정 계산에 반영되어 반환된 p-값이 집단 간 차이를 제대로 반영하지 못합니다. Mann-Whitney U 검정은 원시 점수 대신 순위를 사용하므로 이런 문제가 없습니다. 단일 이상치는 최대한 높은 순위를 차지할 뿐이어서, 평균처럼 결과를 왜곡시킬 수 없습니다.

또한 1~5 척도의 설문 응답 같은 서열형 데이터를 다룰 때도 적합합니다. 그런 값은 진정한 의미의 연속형이 아니므로 평균을 계산하는 것이 그다지 의미가 없습니다.

Mann-Whitney U 검정 공식

이 검정은 각 집단에 대해 두 개의 U 통계량을 산출합니다. 공식은 다음과 같습니다:

Mann-Whitney u test formula

Mann-Whitney U 검정 공식

여기서:

  • n1 및 n2 는 1집단과 2집단의 표본 크기입니다

  • R1 및 R2 는 각 집단의 순위합입니다. 즉, 각 집단 관측치에 부여된 모든 순위의 합입니다

순위합은 두 집단의 모든 값을 합쳐 낮은 값부터 높은 값까지 정렬하고 각 값에 순위를 부여해 계산합니다. 가장 작은 값은 순위 1, 그다음은 2, 이런 식입니다. 그런 다음 각 집단에 속한 순위를 따로 합산합니다.

검정 통계량은 U1 과 U2 중 더 작은 값입니다. 이를 임계값과 비교하거나 p-값 계산에 사용합니다.

좋은 소식은 이를 손으로 계산할 필요가 없다는 점입니다. Python과 R이 모두 계산해 주며, 곧 보여드리겠습니다.

Mann-Whitney U 검정의 가정

Mann-Whitney U 검정은 t-검정보다 유연하지만, 지켜야 할 가정이 세 가지 있습니다:

  • 독립 표본: 두 집단은 서로 영향을 주지 않습니다. 한 집단의 관측치는 다른 집단의 관측치와 관계가 없어야 합니다
  • 서열형 또는 연속형 데이터: 자연스러운 순서가 있어야 합니다. 어느 값이 다른 값보다 크거나 작다고 말할 수 있어야 합니다
  • 유사한 분포 형태: 결과를 중앙값 비교로 해석하려면 두 집단의 분포 형태가 대체로 비슷해야 합니다. 형태가 다르면 검정은 여전히 작동하지만, 중앙값이 아니라 평균 순위를 비교하게 됩니다

세 번째 가정이 가장 혼란스럽게 느껴질 수 있습니다.

Mann-Whitney U 검정은 흔히 중앙값을 비교하는 검정으로 설명되지만, 이는 두 분포의 형태가 유사할 때만 사실입니다. 형태가 다르면 결과는 더 일반적인 내용을 알려줍니다. 즉, 한 집단의 값이 다른 집단의 값보다 대체로 더 높은 경향이 있는지입니다.

Python에서의 Mann-Whitney U 검정

Python의 scipy.stats 모듈에는 Mann-Whitney U 검정 함수가 있습니다. 두 반의 시험 점수를 사용한 간단한 예시는 다음과 같습니다.

from scipy.stats import mannwhitneyu

class_a = [72, 85, 90, 65, 78, 88, 95, 70, 83, 76]
class_b = [60, 55, 74, 68, 80, 58, 63, 71, 66, 59]

stat, p_value = mannwhitneyu(class_a, class_b, alternative="two-sided")

print(f"U statistic: {stat}")
print(f"P-value: {p_value:.4f}")

Mann-Whitney u test in Python

Python에서의 Mann-Whitney U 검정

alternative="two-sided" 인자는 두 집단이 어느 방향으로든 차이가 있는지 검정하겠다는 의미입니다. 사전에 어느 집단이 더 높을 것이라고 가정하지 않습니다. 방향성 가설이 있다면 "less" 또는 "greater" 를 사용합니다.

여기서 p-값은 0.0046으로, 일반적인 임계값 0.05보다 작습니다. 즉, 두 반의 점수 분포 사이에 통계적으로 유의한 차이가 있으므로 귀무가설을 기각할 수 있습니다.

U 통계량 자체만으로는 맥락 없이 큰 의미가 없습니다. 차이가 통계적으로 유의한지 판단하려면 p-값에 집중하고, 차이의 방향을 이해하려면 원시 데이터나 중앙값을 확인하세요.

R에서의 Mann-Whitney U 검정

R에서는 wilcox.test() 함수로 Mann-Whitney U 검정을 실행합니다. 앞서 사용한 동일한 시험 점수 예시를 사용하겠습니다.

class_a <- c(72, 85, 90, 65, 78, 88, 95, 70, 83, 76)
class_b <- c(60, 55, 74, 68, 80, 58, 63, 71, 66, 59)

wilcox.test(class_a, class_b, alternative = "two.sided")

Mann-Whitney u test in R

R에서의 Mann-Whitney U 검정

W 통계량은 U 통계량과 동일하며, R이 라벨만 다르게 붙입니다. 해석도 Python과 같습니다. p-값 0.0029는 0.05보다 작으므로 두 집단 사이에 통계적으로 유의한 차이가 있습니다.

데이터에 동점(tie)이 있다는 경고가 표시될 수도 있습니다.

이는 두 집단에 동일한 값이 둘 이상 존재할 때 발생하며, 순위 부여 방식에 영향을 줍니다. R이 이를 처리해 주지만, 동점이 많다면 데이터가 검정의 가정을 충족하는지 점검해 볼 가치가 있습니다.

Mann-Whitney U 검정 결과 해석 방법

Mann-Whitney U 검정의 귀무가설은 두 집단이 동일한 분포에서 왔다, 즉 차이가 없다는 것입니다. 여러분의 과제는 그에 반하는 증거를 찾는 것입니다.

p-값으로 이를 판단합니다:

  • p < 0.05: 귀무가설을 기각합니다. 두 집단의 분포가 다르며, 차이는 통계적으로 유의합니다
  • p >= 0.05: 귀무가설을 기각할 충분한 증거가 없습니다. 이는 집단이 동일하다는 뜻이 아니라, 데이터가 뚜렷한 차이를 보여주지 않는다는 의미입니다

Mann-Whitney U 검정은 분포를 비교한다는 점을 기억하세요. 유의한 결과는 한 집단의 값이 다른 집단보다 더 높은 순위를 차지하는 경향이 있음을 알려줄 뿐, 평균이 더 높다는 뜻은 아닙니다. 차이의 방향을 설명하려면 평균이 아니라 각 집단의 중앙값을 보세요.

Mann-Whitney U 검정 vs t-검정

두 검정은 동일한 문제(두 집단 비교)를 해결하지만 방식이 다르며, 잘못 선택하면 결과에 영향을 줍니다.

t-검정

t-검정은 두 집단의 평균을 비교합니다. 데이터가 정규분포를 따른다는 가정에 기반하며, 이 가정이 성립할 때는 좋은 검정입니다.

문제는 그 가정입니다. 데이터에 왜도가 있거나 표본이 작아 정규성을 확인하기 어렵다면, t-검정의 결과는 신뢰도가 떨어질 수 있습니다. 평균은 극단값의 영향을 크게 받고, p-값이 그 영향을 반영합니다.

다음과 같은 경우 t-검정을 사용하세요:

  • 데이터가 정규분포를 따를 때
  • 표본 크기가 충분히 클 때
  • 심한 왜도나 이상치가 없는 연속형 데이터를 다룰 때

Mann-Whitney U 검정

Mann-Whitney U 검정은 평균이 아니라 분포를 비교합니다. 두 집단의 모든 값을 함께 순위화해 한 집단이 다른 집단보다 일관되게 더 높은 순위를 차지하는지 확인합니다. 순위 기반으로 작동하므로 이상치와 왜도가 결과를 같은 방식으로 왜곡하지 않습니다.

데이터가 실제로 정규분포를 따른다면 t-검정이 차이를 더 신뢰성 있게 탐지합니다. Mann-Whitney U 검정은 더 유연하지만, 그만큼 민감도는 다소 낮습니다.

다음과 같은 경우 Mann-Whitney U 검정을 사용하세요:

  • 데이터가 정규분포를 따르지 않을 때
  • 서열형 데이터를 다룰 때
  • 표본이 작아 정규성을 확인할 수 없을 때
  • 이상치가 존재하나 제거할 수 없을 때

두 검정을 빠르게 비교하면 다음과 같습니다:

t-test compared to Mann-Whitney U test

t-검정과 Mann-Whitney U 검정 비교

의심스러울 때는 먼저 분포를 확인하세요. 어느 정도 정규적이면 t-검정을, 그렇지 않다면 Mann-Whitney U 검정을 사용하는 것이 더 안전합니다.

Mann-Whitney U 검정에서 흔한 실수

이 검정에서의 대부분의 실수는 실제로 무엇을 하는지 이해하지 못한 데서 비롯됩니다. 자주 보이는 실수는 다음과 같습니다.

평균을 비교한다고 가정하기

가장 흔한 실수입니다. Mann-Whitney U 검정은 평균이 아니라 분포를 비교합니다. 유의한 결과는 한 집단의 값이 다른 집단보다 더 높은 순위를 차지하는 경향이 있음을 뜻할 뿐, 평균이 더 높다는 의미는 아닙니다. 차이를 설명해야 한다면 평균이 아니라 중앙값을 보고하세요.

분포 형태 차이를 무시하기

두 집단의 분포 형태가 다르면(예: 한쪽은 오른쪽으로 치우치고 다른 쪽은 대칭) 결과를 중앙값 비교로 해석할 수 없습니다. 검정은 여전히 실행되지만, 출력은 중심의 이동이 아니라 전체 분포의 차이를 보여줍니다. 중앙값에 대한 결론을 내리기 전에 분포를 확인하세요.

p-값을 잘못 해석하기

p-값이 0.05 미만이면 차이는 통계적으로 유의합니다. 그러나 차이의 크기나 실무적 의미를 알려주지는 않습니다. 매우 큰 표본에서는 실제 차이가 아주 작아도 유의한 p-값이 나올 수 있습니다. 효과 크기가 중요하다면 별도로 계산하세요.

대응표본 데이터에 사용하기

Mann-Whitney U 검정은 두 개의 독립 집단을 위한 것입니다. 동일 피험자를 두 번 측정했거나 매칭된 쌍과 같은 대응표본 데이터에는 Wilcoxon 부호순위 검정을 사용해야 합니다.

Mann-Whitney U 검정을 사용하면 안 되는 경우

Mann-Whitney U 검정이 모든 상황에 적합한 도구는 아닙니다. 다음과 같은 경우에는 다른 방법을 사용하세요.

데이터가 대응표본인 경우

동일한 피험자가 두 집단 모두에 등장한다면(사전-사후 측정, 매칭된 쌍 등) 두 표본은 독립이 아닙니다. Mann-Whitney U 검정은 독립을 가정하므로, 이를 사용하면 관측치 간의 관계를 무시하게 되어 신뢰할 수 없는 결과가 나옵니다. 대신 Wilcoxon 부호순위 검정을 사용하세요.

집단이 셋 이상인 경우

Mann-Whitney U 검정은 한 번에 두 집단만 비교합니다. 세 집단 이상을 비교하려면 일원 분산분석의 비모수적 대안인 Kruskal-Wallis 검정을 사용하세요. 여러 집단을 처리할 수 있습니다.

정규 데이터를 가진 큰 표본인 경우

Mann-Whitney U 검정의 주요 장점은 정규성을 가정하지 않는다는 점입니다. 데이터가 정규분포를 따르고 표본이 충분히 커서 이를 확인할 수 있다면 t-검정이 더 나은 선택입니다. 그 상황에서는 통계적 검정력이 더 커 실제 차이가 있을 때 이를 더 잘 탐지합니다.

결론

Mann-Whitney U 검정은 데이터가 정규분포를 따르지 않아 t-검정이 적합하지 않을 때 훌륭한 해결책입니다.

원시 값 대신 순위를 사용하므로, 왜도가 크거나 표본이 작은 데이터에서 모수 검정을 불안하게 만드는 가정을 피할 수 있습니다. 현실 세계의 분석에서 데이터는 기대처럼 움직이지 않는 경우가 많기 때문에 유용한 검정입니다.

여기서 더 큰 교훈은 검정 선택입니다. 모든 데이터셋에 맞는 단 하나의 검정은 없습니다. 항상 먼저 데이터의 분포, 구조, 표본 크기를 확인하고, 그 특성에 맞춰 방법을 선택해야 합니다. 정답은 데이터에 맞는 검정입니다.

통계를 처음 접하시거나 더 깊이 공부하고 싶다면, Statistician in R 트랙을 통해 52시간 분량의 자료로 실무 준비를 갖출 수 있습니다.

FAQs

Mann-Whitney U 검정은 무엇에 사용하나요?

Mann-Whitney U 검정은 데이터가 정규분포를 따른다고 가정할 수 없을 때 두 개의 독립 집단을 비교하는 데 사용됩니다. 두 집단의 모든 값을 함께 순위화하고 한 집단이 다른 집단보다 일관되게 더 높은 순위를 차지하는지 확인합니다. 서열형과 연속형 데이터 모두에 사용할 수 있습니다.

Mann-Whitney U 검정은 t-검정과 어떻게 다른가요?

t-검정은 두 집단의 평균을 비교하며 정규분포를 가정합니다. Mann-Whitney U 검정은 순위를 사용해 분포를 비교하므로 그런 가정을 하지 않습니다. 데이터에 왜도가 있거나 표본이 작을 때는 Mann-Whitney U 검정이 더 안전한 선택입니다.

Mann-Whitney U 검정은 언제 사용해야 하나요?

두 개의 독립 집단이 있고, 데이터가 서열형 또는 연속형이며, 정규성을 확인할 수 없을 때 사용하세요. 표본이 작고 이상치가 있을 때도 잘 맞습니다. 데이터가 정규분포를 따르고 표본이 크다면 일반적으로 t-검정이 더 나은 결과를 제공합니다.

Mann-Whitney U 검정에서 p-값은 무엇을 알려주나요?

p-값이 0.05 미만이면 두 집단의 분포 간에 통계적으로 유의한 차이가 있음을 의미합니다. 하지만 그 차이의 크기나 실무적 의미를 알려주지는 않습니다. 이를 위해서는 효과 크기를 별도로 계산하고 각 집단의 중앙값을 살펴봐야 합니다.

대응표본 데이터에 Mann-Whitney U 검정을 사용할 수 있나요?

아니요. Mann-Whitney U 검정은 두 집단이 독립적이라고 가정합니다. 즉, 한 집단의 값이 다른 집단에 영향을 주지 않아야 합니다. 데이터가 대응표본(예: 동일 피험자의 사전-사후 측정)이라면 Wilcoxon 부호순위 검정을 사용하세요. 대응표본에 Mann-Whitney U 검정을 사용하면 관측치 간의 관계를 무시하여 신뢰할 수 없는 결과가 나옵니다.

주제
데이터 사이언스

DataCamp와 함께 학습하세요

강의

통계학 입문

4시간
163.6K
통계의 기초를 학습하며 중심과 산포 측정, 확률 분포, 가설 검정을 코딩 없이 이해한다!
자세히 보기강의 시작

무료 계정 만들기

실습 문제하고 트랙하세요.

Google로 계속하기
계속 진행하시면 당사의 이용약관 및 개인정보처리방침에 동의하고 및 귀하의 데이터가 미국에 저장되는 것에 동의하게 됩니다.
더 보기