LS 빅데이터 스쿨에서 비모수 검정에 대해 배웠습니다.
비모수 검정이란?
비모수 검정은 데이터가 특정 분포(예: 정규분포)를 따른다는 가정을 하지 않고도
중앙값 또는 순위 기반으로 집단 간 차이를 검정하는 방법입니다.
언제 사용?
사용해야 하는 상황 | 이유 |
정규성 가정이 깨졌을 때 | 평균 대신 중앙값이나 순위를 비교 |
표본의 수가 작고 이상치가 많을 때 | 평균이 왜곡되기 쉬움 |
등분산성도 만족하지 않을 때 | 모수 검정(ANOVA, t-test 등)이 부적합 |
- 즉, 모수 검정을 할 수 없을 때 사용합니다.
- 표본의 수가 적어서 중심극한정리가 적용되지 않을 때,
- 이상치가 많을 때,
- 평균 개념이 성립하지 않을 때 주로 사용합니다.
LS 빅데이터 스쿨 / 정규성 검정 / Shapiro-Wilk / Anderson-Darling / Kolmogorov–Smirnov / Q-Q Plot
정규성 검정(Normality Test) 이란?정규성 검정은 데이터가 정규분포를 따르는지를 검정하는 과정입니다.많은 통계 기법(Z-test, t-test 등)은 정규분포를 전제로 하기 때문에, 분석 전에 정규성을 검정
kiminchae.tistory.com
참고: 정규성 검정을 활용하면 내가 가진 데이터가 정규 분포를 따르는 지 확인할 수 있습니다.
모수 검정 vs 비모수 검정
항목 | 모수 검정 | 비모수 검정 |
전제 조건 | 정규성, 등분산성 등 필요 | 별다른 분포 가정 없음 |
데이터 기준 | 평균 비교 | 중앙값 또는 순위 비교 |
예시 | t-test, ANOVA | Mann–Whitney U, Kruskal–Wallis |
이상치에 대한 민감도 | 민감함 | 덜 민감함 |
데이터의 크기 | 영향을 받음 | 민감하지 않음 |
검정력 | 높음 | 모수 검정보다 낮음 |
비모수 검정은 평균을 사용하지 않고 중앙값을 사용한다는 특징이 있습니다.
중앙값을 사용하는 이유
group = [3, 4, 4, 5, 100] # 이상치 100
평균 = (3 + 4 + 4 + 5 + 100) / 5 = 23.2
중앙값 = 4
이상치 100이 존재할 경우, 평균은 23.2 로 확 올라버립니다. 즉, 평균은 이상치에 민감합니다.
하지만, 중앙값은 이상치에 민감하지 않는 모습을 볼 수 있습니다. 그래서 이상치가 존재하는 비모수 검정에서는 평균이 아닌 중앙값을 사용합니다.
비모수 검정의 장점
1. 분포가정이 없다
2. 이상치에 민감하지 않다.
3. 데이터의 크기에 구애받지 않는다.
단, 검정력은 모수 검정이 더 좋다.
모수검정 - 비모수검정 대응표
목적 | 모수 검정 | 비모수 검정 | 등분산성 고려 |
📊 1개의 집단 평균 비교 | 1표본 t-검정 | 윌콕슨 순위합 검정 (Wilcoxon signed-rank) | 등분산 불필요 |
🔍 2개 독립 집단 비교 | 독립 2표본 t-검정 (등분산 O) | 맨휘트니 U 검정 (Mann–Whitney U) | ✔️ Levene 검정 |
🔍 2개 독립 집단 비교 | 독립 2표본 t-검정 (등분산 ❌) | 브루너-문젤 검정 (Brunner–Munzel) | ❌ 등분산 X 허용 |
🔄 짝지은 집단 비교 | 대응표본 t-검정 | 윌콕슨 부호 순위 검정 (Wilcoxon signed-rank) | 등분산 불필요 |
🔁 3개 이상 집단 비교 | 일원분산분석 (ANOVA) | 크루스칼-왈리스 검정 (Kruskal–Wallis) | ✔️ Levene 검정 권장 |
- 비모수 검정은 정규성 없이도 비교가 가능하도록 설계된 "대안 검정"
- 모수 검정이 평균 기반이라면, 비모수는 중앙값 또는 순위 기반
- 비교 대상(1집단, 2집단, 짝지음, 3집단 이상)에 따라 각각 대응되는 비모수 검정이 있음
대표적인 비모수 검정
1. 윌콕슨 순위합 검정 (1표본 t-검정 대체)
- 한 그룹의 중앙값이 특정 값과 다른가?
- 예: 교육 전과 후 점수 변화가 있는가?
from scipy.stats import wilcoxon
before = [71, 69, 70, 68, 72]
after = [75, 74, 73, 72, 76]
stat, p = wilcoxon(np.array(after) - np.array(before))
print(f"Wilcoxon 결과: p-value = {p:.4f}")
2. 맨휘트니 U 검정 (독립 2표본 t-검정)
- 두 독립 그룹의 중앙값이 같은가?
- 예: 남자와 여자의 수면 시간 차이
from scipy.stats import mannwhitneyu
group1 = [6.8, 7.1, 6.9, 7.0, 6.7]
group2 = [7.5, 7.6, 7.3, 7.8, 7.4]
stat, p = mannwhitneyu(group1, group2, alternative='two-sided')
print(f"Mann–Whitney U 결과: p-value = {p:.4f}")
3. 브루너-문젤 검정 (독립 2표본 t-검정)
- 등분산성이 없는 상황에서의 두 집단 비교
- 예: 환경이 다른 두 공장의 제품 품질 비교
from scipy.stats import brunnermunzel
group1 = [5.2, 5.5, 5.1, 5.4]
group2 = [6.7, 7.1, 7.0, 6.8]
stat, p = brunnermunzel(group1, group2)
print(f"Brunner–Munzel 결과: p-value = {p:.4f}")
4. 크루스칼–왈리스 검정 (ANOVA 대체)
- 3개 이상의 그룹의 중앙값이 동일한가?
from scipy.stats import kruskal
groupA = [50, 52, 48, 51]
groupB = [60, 62, 58, 59]
groupC = [70, 68, 72, 71]
stat, p = kruskal(groupA, groupB, groupC)
print(f"Kruskal–Wallis 결과: p-value = {p:.4f}")
'Data > 통계' 카테고리의 다른 글
T-검정과 F-검정 / 독립 표본 t 검정 / 대응 표본 t 검정 / Python 예제 / 시각화 (0) | 2025.04.10 |
---|---|
사후 검정 / 본페로니 검정 / 튜키 검정 / Post-hoc Test (0) | 2025.04.08 |
분산분석(ANOVA) / 수치형 데이터 비교 분석 / 카이제곱 검정과의 차이점 (0) | 2025.04.07 |
카이제곱(Chi-Square) 검정 / 범주형 데이터 분석 / 독립성 검정 / 동질성 검정 / 적합도 검정 (1) | 2025.04.07 |
정규성 검정 / Shapiro-Wilk / Anderson-Darling / Kolmogorov–Smirnov / Q-Q Plot (0) | 2025.04.04 |