데이터의 분포가 특정 이론적 분포(예: 정규분포)와 얼마나 일치하는지를 비교하는 비모수 통계 방법
데이터의 평균이나 분산 같은 파라미터에 의존하지 않고, 누적분포함수(CDF)의 차이를 이용하는 것이 핵심 (비모수 통계 특징)
PDF로 데이터의 구간(Bin)을 나누어서 하면 Bin에 따라 개인의 주관이 들어갈 수 있어서 CDF로 데이터가 나올 떄마다 를 계산하는 방식을 이용
K-S 검정은 표본의 경험적 누적분포함수(ECDF)와 비교 대상의 누적분포함수(CDF) 사이의 최대 거리()를 측정
이 거리()가 작을수록 데이터가 해당 분포를 잘 따른다고 볼 수 있고, 일정 임계치를 넘으면 "두 분포는 다르다"고 판단합니다.
from scipy.stats import kstest, norm, zscore
kstest(zscore(x, ddof=1), norm.cdf), index=["stat", "pvalue"])
| 구분 | 일표본 K-S 검정 (1-sample) | 이표본 K-S 검정 (2-sample) |
|---|---|---|
| 목적 | 데이터가 특정 분포를 따르는가? | 두 집단의 분포가 서로 동일한가? |
| 비교 대상 | 표본의 ECDF vs 이론적 CDF | 표본 A의 ECDF vs 표본 B의 ECDF |
| 주요 용도 | 데이터의 정규성 검정 | 집단 간 소득/성적 분포 비교 |
💡 해석 가이드
-value가 유의수준(예: 0.05)보다 크다면, 귀무가설을 채택하여 "해당 분포를 따른다"고 판단합니다.
많은 분이 헷갈려하시는 Mann-Whitney U 검정과의 차이점을 정리해 보겠습니다.
| 비교 항목 | Kolmogorov-Smirnov (K-S) | Mann-Whitney U (M-W) |
|---|---|---|
| 검정 대상 | 전체적인 분포의 모양 | 집단 간 중앙값(위치) 차이 |
| 데이터 활용 | 누적분포함수(CDF) 간의 거리 | 데이터의 순위(Rank) 합 |
| 강점 | 분포의 왜도, 분산 등 모든 차이 탐지 | 두 집단 중 어느 쪽이 더 큰지 판단 |