콜모고로프-스미르노프 검정

통계학에서 콜모고로프-스미르노프 검정(Kolmogorov–Smirnov test, K-S 검정 또는 KS 검정)은 연속(또는 불연속, 섹션 2.2 참조) 1차원 확률 분포의 등가성에 대한 비모수 검정이다. 이 검정은 표본이 주어진 기준 확률 분포에서 나왔는지(1-표본 K-S 검정), 또는 두 표본이 같은 분포에서 나왔는지(2-표본 K-S 검정)를 검정하는 데 사용될 수 있다. 이 검정은 1930년대에 이를 개발한 안드레이 콜모고로프와 니콜라이 스미르노프의 이름을 따서 명명되었다.

콜모고로프-스미르노프 통계량은 표본의 경험적 누적 분포 함수와 기준 분포의 누적 분포 함수 사이, 또는 두 표본의 경험적 누적 분포 함수 사이의 거리를 정량화한다. 이 통계량의 영 분포는 표본이 기준 분포에서 추출되었거나(1-표본의 경우) 표본이 동일한 분포에서 추출되었다는(2-표본의 경우) 귀무 가설 하에 계산된다. 1-표본의 경우, 귀무 가설 하에 고려되는 분포는 연속적일 수 있거나(섹션 2 참조), 순수하게 이산적이거나 혼합될 수 있다(섹션 2.2 참조). 2-표본의 경우(섹션 3 참조), 귀무 가설 하에 고려되는 분포는 연속 분포이지만 그 외에는 제한이 없다.

2-표본 K-S 검정은 두 표본의 경험적 누적 분포 함수의 위치와 형태의 차이에 모두 민감하므로 두 표본을 비교하는 데 가장 유용하고 일반적인 비모수 방법 중 하나이다.

콜모고로프-스미르노프 검정은 적합도 검정으로 사용되도록 수정될 수 있다. 분포의 정규성을 검정하는 특수한 경우, 표본은 표준화되어 표준 정규 분포와 비교된다. 이는 기준 분포의 평균과 분산을 표본 추정치와 동일하게 설정하는 것과 같으며, 이를 사용하여 특정 기준 분포를 정의하면 검정 통계량의 영 분포가 변경되는 것으로 알려져 있다(추정된 매개변수를 사용한 검정 참조). 다양한 연구에서 이 보정된 형태에서도 이 검정이 샤피로-윌크 검정 또는 앤더슨-달링 검정보다 정규성을 검정하는 데 검정력이 낮다는 사실이 밝혀졌다. 그러나 이러한 다른 검정에는 자체적인 단점이 있다. 예를 들어, 샤피로-윌크 검정은 동일한 값이 많은 표본에서는 잘 작동하지 않는 것으로 알려져 있다.

 1-표본 콜모고로프-스미르노프 통계량 
n개의 독립적이고 동일하게 분포된(i.i.d.) 순서 관측치 Xi에 대한 경험적 누적 분포 함수 Fn은 다음과 같이 정의된다.

여기서 는 지시 함수이며, 이면 1이고 그렇지 않으면 0이다.

주어진 누적 분포 함수 F(x)에 대한 콜모고로프-스미르노프 통계량은 다음과 같다.

여기서 supx는 거리 집합의 상한이다. 직관적으로 이 통계량은 모든 x 값에서 두 분포 함수 사이의 가장 큰 절대 차이를 취한다.

글리벤코-칸텔리 정리에 따르면, 표본이 분포 F(x)에서 나온 경우, 이 무한대로 갈 때 Dn은 거의 확실하게 0으로 수렴한다. 콜모고로프는 이 수렴 속도를 효과적으로 제공함으로써 이 결과를 강화했다(콜모고로프 분포 참조). 돈스커 정리는 훨씬 더 강력한 결과를 제공한다.

실제로 이 통계량은 귀무 가설을 적절하게 기각하기 위해 상대적으로 많은 수의 데이터 포인트가 필요하다(앤더슨-달링 검정 통계량과 같은 다른 적합도 기준과 비교할 때).

 콜모고로프 분포 

섬네일|600px|콜모고로프 분포의 PDF 그림

콜모고로프 분포는 다음 확률 변수의 분포이다.

여기서 B(t)는 브라운교이다. K의 누적 분포 함수는 다음과 같다.

이는 야코비 세타 함수 로도 표현될 수 있다. 콜모고로프-스미르노프 검정 통계량의 형식과 귀무 가설 하에서의 점근 분포는 안드레이 콜모고로프가 발표했으며, 분포 표는 니콜라이 스미르노프가 발표했다. 유한 표본에서 검정 통계량 분포에 대한 점화식도 구할 수 있다.

표본이 가설 분포 F(x)에서 나왔다는 귀무 가설 하에,

분포 수렴이 발생하며, 여기서 B(t)는 브라운교이다. F가 연속이면 귀무 가설 하에 은 콜모고로프 분포로 수렴하며, 이는 F에 의존하지 않는다. 이 결과는 콜모고로프 정리로도 알려져 있다.

이 유한할 때 의 정확한 CDF에 대한 근사치로서 이 극한의 정확도는 그리 인상적이지 않다. 일 때조차 해당 최대 오차는 약 이며, 일 때 이 오차는 로 증가하고, 일 때는 전혀 허용할 수 없는 로 증가한다. 그러나 자코비 세타 함수의 인수에  대신

을 대입하는 매우 간단한 방법으로 이러한 오차는 각각
, , 로 줄어든다. 이러한 정확도는 일반적으로 모든 실제 적용에 충분한 것으로 간주될 것이다.

적합도 검정 또는 콜모고로프-스미르노프 검정은 콜모고로프 분포의 임계값을 사용하여 구성될 수 있다. 이 검정은 일 때 점근적으로 유효하다. 귀무 가설은 수준 에서 기각되며,

여기서 Kα는 다음으로부터 얻어진다.

이 검정의 점근 검정력은 1이다.

임의의 과 에 대해 cdf  또는 그 보수를 계산하는 빠르고 정확한 알고리즘은 다음에서 찾을 수 있다.

 및는 C 및 Java 코드를 포함하는 연속 영 분포를 위한 것이다.
는 순수 이산, 혼합 또는 연속 영 분포를 위한 것으로, R 프로젝트 통계 컴퓨팅의 KSgeneral 패키지에 구현되어 있다. 이 패키지는 주어진 표본에 대해 KS 검정 통계량과 p-값도 계산한다. 대체 C++ 구현은 다음에서 구할 수 있다.

 추정된 매개변수를 사용한 검정 

F(x)의 형식이나 매개변수가 데이터 Xi에서 결정되는 경우, 이러한 방식으로 결정된 임계값은 유효하지 않다. 이러한 경우에는 몬테카를로 또는 다른 방법이 필요할 수 있지만, 일부 경우에는 표가 작성되어 있다. 정규 분포 및 지수 분포에 대한 검정 통계량의 필요한 수정 및 임계값에 대한 세부 정보가 게시되었으며, 이후 출판물에는 굼벨 분포도 포함된다. 릴리포스 검정은 정규 분포에 대한 이 특수한 경우를 나타낸다. 로그 변환은 콜모고로프 검정 데이터가 정규 분포에서 나왔다는 가정에 맞지 않는 경우를 극복하는 데 도움이 될 수 있다.

매개변수를 추정할 때는 어떤 추정 방법을 사용해야 하는지에 대한 의문이 생긴다. 일반적으로 최대가능도 방법이 사용되지만, 예를 들어 정규 분포의 경우 MLE는 시그마에 대한 큰 편향 오차를 가지고 있다. 대신 모멘트 적합 또는 KS 최소화를 사용하면 임계값에 큰 영향을 미치고, 검정력에도 어느 정도 영향을 미친다. df = 2인 스튜던트-T 데이터에 대해 KS 검정을 통해 데이터가 정규 분포인지 아닌지를 결정해야 하는 경우, H0(데이터가 정규 분포이므로 스케일에는 표준 편차 사용)에 기반한 ML 추정은 KS 최소화를 통한 적합보다 훨씬 큰 KS 거리를 제공할 것이다. 이 경우 H0를 기각해야 하는데, 이는 MLE의 경우 종종 발생한다. 왜냐하면 T-2 데이터의 표본 표준 편차는 매우 클 수 있지만, KS 최소화를 사용하면 H0를 기각하기에는 여전히 너무 낮은 KS를 얻을 수 있기 때문이다. 스튜던트-T의 경우, MLE 대신 KS 추정치를 사용한 수정된 KS 검정은 KS 검정을 실제로 약간 더 나쁘게 만든다. 그러나 다른 경우에는 이러한 수정된 KS 검정이 약간 더 나은 검정력을 제공한다.

 이산 및 혼합 영 분포 

가 비감소적이고 우연속적이며 셀 수 있는(무한할 수도 있는) 수의 점프를 가진다는 가정 하에, KS 검정 통계량은 다음과 같이 표현될 수 있다.

의 우연속성으로부터  및 가 성립하며, 따라서 의 분포는 영 분포 에 의존하게 된다. 즉, 연속적인 경우처럼 분포에 독립적이지 않다. 따라서 가 순수 이산적이거나 혼합일 때 의 정확하고 점근적인 분포를 계산하기 위한 빠르고 정확한 방법이 개발되었으며, C++ 및 R 언어의 KSgeneral 패키지에 구현되어 있다. disc_ks_test(), mixed_ks_test() 및 cont_ks_test() 함수는 순수 이산, 혼합 또는 연속 영 분포 및 임의 표본 크기에 대한 KS 검정 통계량과 p-값도 계산한다. 이산 영 분포 및 작은 표본 크기에 대한 KS 검정 및 p-값은에서 R 언어의 dgof 패키지의 일부로 계산된다. SAS PROC NPAR1WAY, Stata ksmirnov와 같은 주요 통계 패키지는 가 연속이라는 가정 하에 KS 검정을 구현하는데, 이는 영 분포가 실제로 연속이 아닌 경우 더 보수적이다(Noether63</ref>

 참조).

 2-표본 콜모고로프-스미르노프 검정 
섬네일|300px|2-표본 콜모고로프-스미르노프 통계량 그림. 빨간색과 파란색 선은 각각 경험적 분포 함수에 해당하며, 검은색 화살표는 2-표본 KS 통계량이다.

콜모고로프-스미르노프 검정은 두 개의 기초적인 1차원 확률 분포가 다른지 여부를 검정하는 데에도 사용될 수 있다. 이 경우 콜모고로프-스미르노프 통계량은 다음과 같다.

여기서  및 은 각각 첫 번째 표본과 두 번째 표본의 경험적 누적 분포 함수이며, 는 상한 함수이다.

큰 표본의 경우, 귀무 가설은 수준 에서 기각된다.

여기서 과 은 각각 첫 번째와 두 번째 표본의 크기이다.  값은 가장 일반적인  수준에 대해 아래 표에 나와 있다.

  0.20  0.15  0.10  0.05  0.025  0.01  0.005  0.001  1.073  1.138  1.224  1.358  1.48  1.628  1.731  1.949

그리고 일반적으로Eq. (15) in Section 3.3.1 of Knuth, D.E., The Art of Computer Programming, Volume 2 (Seminumerical Algorithms), 3rd Edition, Addison Wesley, Reading Mass, 1998. 다음으로 주어진다.

따라서 조건은 다음과 같다.

여기서 다시 표본 크기가 클수록 최소 경계가 더 민감해진다. 주어진 표본 크기 비율(예: )의 경우, 최소 경계는 표본 중 하나의 크기에 따라 역제곱근에 비례하여 조정된다.

두 표본 검정은 두 데이터 표본이 동일한 분포에서 왔는지 여부를 확인한다. 이는 공통 분포가 무엇인지(예: 정규 분포인지 아닌지)를 지정하지 않는다. 다시, 임계값 표가 발행되었다. 단변량 콜모고로프-스미르노프 검정의 단점은 두 분포 함수 간의 모든 가능한 유형의 차이에 민감하도록 고안되었기 때문에 검정력이 그리 강하지 않다는 것이다. 일부 사람들은 원래 위치와 스케일을 동시에 비교하기 위해 제안된 쿠코니 검정이 두 분포 함수를 비교할 때 콜모고로프-스미르노프 검정보다 훨씬 더 강력할 수 있다고 주장한다.

2-표본 KS 검정은 경제학에서 비대칭 효과를 감지하고 자연 실험을 연구하는 데 적용되었다.

 분포 함수의 형태에 대한 신뢰 한계 설정 

콜모고로프-스미르노프 검정은 일반적으로 주어진 F(x)가 Fn(x)의 기초 확률 분포인지 여부를 검정하는 데 사용되지만, 이 절차를 역으로 적용하여 F(x) 자체에 대한 신뢰 한계를 제공할 수 있다. 검정 통계량 Dα의 임계값을 P(Dn > Dα) = α가 되도록 선택하면 Fn(x) 주변의 ±Dα 폭의 구간은 확률 1 − α로 F(x)를 완전히 포함한다.

 다차원 콜모고로프-스미르노프 통계량 
분포에 독립적인 다변량 콜모고로프-스미르노프 적합도 검정이 후스텔, 페냐, 자마르(1997)에 의해 제안되었다. 이 검정은 로젠블라트 변환을 사용하여 구축된 통계량을 사용하며, 이변량 경우에 이를 계산하는 알고리즘이 개발되었다. 또한 어떤 차원에서도 쉽게 계산할 수 있는 근사 검정도 제시되어 있다.

다변량 데이터에 유사한 검정을 적용하려면 콜모고로프-스미르노프 검정 통계량을 수정해야 한다. 이는 두 결합 누적 분포 함수 간의 최대 차이가 일반적으로 보완 분포 함수 중 어느 하나와의 최대 차이와 같지 않기 때문에 간단하지 않다. 따라서  또는  또는 다른 두 가지 가능한 배치 중 어느 것을 사용하는지에 따라 최대 차이가 달라질 것이다. 사용된 검정 결과가 어떤 선택에 의존하지 않아야 한다고 요구할 수 있다.

콜모고로프-스미르노프 통계량을 더 높은 차원으로 일반화하는 한 가지 접근 방식은 두 표본의 cdf를 가능한 모든 순서로 비교하고 결과 KS 통계량 세트 중 가장 큰 값을 취하는 것이다. d차원에서 이러한 순서는 2d − 1개가 있다. 이러한 변형 중 하나는 피콕(Peacock)의 것이며
(3D 버전은 고세트(Gosset)도 참조)
다른 하나는 파사노(Fasano)와 프란체스키니(Franceschini)의 것이다 (비교 및 계산 세부 정보는 로페스 등 참조). 검정 통계량의 임계값은 시뮬레이션을 통해 얻을 수 있지만, 결합 분포의 의존성 구조에 따라 달라진다.

 구현 
콜모고로프-스미르노프 검정은 많은 소프트웨어 프로그램에 구현되어 있다. 대부분은 1-표본 및 2-표본 검정을 모두 구현한다.

 Mathematica에는 KolmogorovSmirnovTest가 있다.
 MATLAB의 Statistics Toolbox에는 1-표본 및 2-표본 콜모고로프-스미르노프 검정을 위한 kstest와 kstest2가 있다.
 R 패키지 "KSgeneral"은 임의의 이산, 혼합 또는 연속 영 분포 하에서 KS 검정 통계량과 p-값을 계산한다.
 R의 통계 기본 패키지는 "stats" 패키지에 ks.test {stats}로 검정을 구현한다.
 SAS는 PROC NPAR1WAY 프로시저에 검정을 구현한다.
 파이썬에서는 SciPy 패키지가 scipy.stats.kstest 함수에 검정을 구현한다.
 SYSTAT (SPSS Inc., 시카고, 일리노이)
 Java에는 아파치 커먼즈에서 제공하는 이 검정의 구현이 있다.
 KNIME에는 위의 Java 구현을 기반으로 이 검정을 구현하는 노드가 있다.
 Julia에는 함수 ExactOneSampleKSTest(x::AbstractVector{<:Real}, d::UnivariateDistribution)가 포함된 HypothesisTests.jl 패키지가 있다.
 StatsDirect (StatsDirect Ltd, 맨체스터, 영국)은 모든 일반적인 변형을 구현한다.
 Stata (Stata Corporation, 칼리지 스테이션, 텍사스)는 ksmirnov (콜모고로프-스미르노프 분포 동등성 검정) 명령에 검정을 구현한다.
 PSPP는 KOLMOGOROV-SMIRNOV (또는 KS 바로가기 함수 사용)에서 검정을 구현한다.
 Excel용 Real Statistics Resource Pack은 KSCRIT 및 KSPROB로 검정을 실행한다.
 같이 보기 
 르파주 검정
 쿠코니 검정
 쿠이퍼 검정
 샤피로-윌크 검정
 앤더슨-달링 검정
 크라메르-폰 미제스 검정
 바서슈타인 거리

 각주 

 추가 자료 







 외부 링크 

 짧은 소개
 KS 검정 설명
 1-sided 및 2-sided 검정의 자바스크립트 구현
 KS 검정이 있는 온라인 계산기
 콜모고로프 분포를 계산하고 KS 검정을 수행하는 오픈 소스 C++ 코드 
 콜모고로프 분포 평가에 대한 논문; C 구현 포함. 매트랩에서 사용되는 방법이다.
 2-sided 콜모고로프-스미르노프 분포 계산에 대한 논문; C 또는 Java로 KS 통계량의 cdf 계산.
 논문 powerlaw: 꼬리가 두꺼운 분포 분석을 위한 파이썬 패키지; Jeff Alstott, Ed Bullmore, Dietmar Plenz. 다른 것들 중에서도 콜모고로프-스미르노프 검정도 수행한다. powerlaw 패키지의 소스 코드 및 설치 프로그램은 PyPi에서 구할 수 있다.

분류:비모수 통계학
분류:통계적 거리