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

CDF, 파란색 선은 경험적 CDF, 검은색 화살표는 KS 통계량이다.]] 통계학에서 **콜모고로프-스미르노프 검정**(Kolmogorov–Smirnov test, **K-S 검정** 또는 **KS 검정**)은 연속(또는 불연속, 섹션 2.2 참조) 1차원 확률 분포의 등가성에 대한 비모수 검정이다. 이 검정은 표본이 주어진 기준 확률 분포에서 나왔는지(1-표본 K-S 검정), 또는 두 표본이 같은 분포에서 나왔는지(2-표본 K-S 검정)를 검정하는 데 사용될 수 있다. 이 검정은 1930년대에 이를 개발한 안드레이 콜모고로프와 니콜라이 스미르노프의 이름을 따서 명명되었다.accessdate=2025-10-08 콜모고로프-스미르노프 통계량은 표본의 경험적 누적 분포 함수와 기준 분포의 누적 분포 함수 사이, 또는 두 표본의 경험적 누적 분포 함수 사이의 거리를 정량화한다. 이 통계량의 영 분포는 표본이 기준 분포에서 추출되었거나(1-표본의 경우) 표본이 동일한 분포에서 추출되었다는(2-표본의 경우) 귀무 가설 하에 계산된다. 1-표본의 경우, 귀무 가설 하에 고려되는 분포는 연속적일 수 있거나(섹션 2 참조), 순수하게 이산적이거나 혼합될 수 있다(섹션 2.2 참조). 2-표본의 경우(섹션 3 참조), 귀무 가설 하에 고려되는 분포는 연속 분포이지만 그 외에는 제한이 없다. 2-표본 K-S 검정은 두 표본의 경험적 누적 분포 함수의 위치와 형태의 차이에 모두 민감하므로 두 표본을 비교하는 데 가장 유용하고 일반적인 비모수 방법 중 하나이다. 콜모고로프-스미르노프 검정은 적합도 검정으로 사용되도록 수정될 수 있다. 분포의 정규성을 검정하는 특수한 경우, 표본은 표준화되어 표준 정규 분포와 비교된다. 이는 기준 분포의 평균과 분산을 표본 추정치와 동일하게 설정하는 것과 같으며, 이를 사용하여 특정 기준 분포를 정의하면 검정 통계량의 영 분포가 변경되는 것으로 알려져 있다(추정된 매개변수를 사용한 검정 참조). 다양한 연구에서 이 보정된 형태에서도 이 검정이 샤피로-윌크 검정 또는 앤더슨-달링 검정보다 정규성을 검정하는 데 검정력이 낮다는 사실이 밝혀졌다.doi = 10.2307/2286009 그러나 이러한 다른 검정에는 자체적인 단점이 있다. 예를 들어, 샤피로-윌크 검정은 동일한 값이 많은 표본에서는 잘 작동하지 않는 것으로 알려져 있다.
# 1-표본 콜모고로프-스미르노프 통계량
n개의 독립적이고 동일하게 분포된(i.i.d.) 순서 관측치 Xi에 대한 경험적 누적 분포 함수 Fn은 다음과 같이 정의된다. F_{n}(x)=\frac{\text {number of (elements in the sample} \leq x)}{n}=\frac{1}{n} \sum_{i=1}^{n} 1_{(-\infty,x]}(X_{i}), 여기서 1_{(-\infty,x]}(X_i)는 지시 함수이며, X_i \leq x이면 1이고 그렇지 않으면 0이다. 주어진 누적 분포 함수 F(x)에 대한 콜모고로프-스미르노프 통계량은 다음과 같다. D_n= \sup_x |F_n(x)-F(x)| 여기서 supx는 거리 집합의 상한이다. 직관적으로 이 통계량은 모든 x 값에서 두 분포 함수 사이의 가장 큰 절대 차이를 취한다. 글리벤코-칸텔리 정리에 따르면, 표본이 분포 F(x)에서 나온 경우, n이 무한대로 갈 때 Dn은 거의 확실하게 0으로 수렴한다. 콜모고로프는 이 수렴 속도를 효과적으로 제공함으로써 이 결과를 강화했다(콜모고로프 분포 참조). 돈스커 정리는 훨씬 더 강력한 결과를 제공한다. 실제로 이 통계량은 귀무 가설을 적절하게 기각하기 위해 상대적으로 많은 수의 데이터 포인트가 필요하다(앤더슨-달링 검정 통계량과 같은 다른 적합도 기준과 비교할 때).
# 콜모고로프 분포
PDF 그림]] 콜모고로프 분포는 다음 확률 변수의 분포이다. K=\sup_{t\in[0,1]}|B(t)| 여기서 B(t)는 브라운교이다. K의 누적 분포 함수는 다음과 같다.doi-access=free \begin{align} \operatorname{Pr}(K\leq x) &= 1-2\sum_{k=1}^\infty (-1)^{k-1} e^{-2k^2 x^2} \\\ &=\frac{\sqrt{2\pi{x}\sum_{k=1}^\infty e^{-(2k-1)^2\pi^2/(8x^2)}, \end{align} 이는 야코비 세타 함수 \vartheta_{01}(z=0;\tau=2ix^2/\pi)로도 표현될 수 있다. 콜모고로프-스미르노프 검정 통계량의 형식과 귀무 가설 하에서의 점근 분포는 안드레이 콜모고로프가 발표했으며,pages=83–91 분포 표는 니콜라이 스미르노프가 발표했다.doi-access=free 유한 표본에서 검정 통계량 분포에 대한 점화식도 구할 수 있다. 표본이 가설 분포 F(x)에서 나왔다는 귀무 가설 하에, \sqrt{n}D_n\xrightarrow{n\to\infty}\sup_t |B(F(t))| 분포 수렴이 발생하며, 여기서 B(t)는 브라운교이다. F가 연속이면 귀무 가설 하에 \sqrt{n}D_n은 콜모고로프 분포로 수렴하며, 이는 F에 의존하지 않는다. 이 결과는 콜모고로프 정리로도 알려져 있다. n이 유한할 때 K의 정확한 CDF에 대한 근사치로서 이 극한의 정확도는 그리 인상적이지 않다. n=1000일 때조차 해당 최대 오차는 약 0.9~\%이며, n=100일 때 이 오차는 2.6~\%로 증가하고, n=10일 때는 전혀 허용할 수 없는 7~\%로 증가한다. 그러나 자코비 세타 함수의 인수에 x 대신 x+\frac{1}{6\sqrt{n+ \frac{x-1}{4n} 을 대입하는 매우 간단한 방법으로 이러한 오차는 각각 0.003~\%, 0.027\%, 0.27~\%로 줄어든다. 이러한 정확도는 일반적으로 모든 실제 적용에 충분한 것으로 간주될 것이다.pages=15–23 적합도 검정 또는 콜모고로프-스미르노프 검정은 콜모고로프 분포의 임계값을 사용하여 구성될 수 있다. 이 검정은 n \to\infty.일 때 점근적으로 유효하다. 귀무 가설은 수준 \alpha에서 기각되며, \sqrt{n}D_n>K_\alpha,\, 여기서 Kα는 다음으로부터 얻어진다. \operatorname{Pr}(K\leq K_\alpha)=1-\alpha.\, 이 검정의 점근 검정력은 1이다. 임의의 n과 x에 대해 cdf \operatorname{Pr}(D_n \leq x) 또는 그 보수를 계산하는 빠르고 정확한 알고리즘은 다음에서 찾을 수 있다. *doi-access=free 및s2cid=12868694는 C 및 Java 코드를 포함하는 연속 영 분포를 위한 것이다. *doi-access=free는 순수 이산, 혼합 또는 연속 영 분포를 위한 것으로, R 프로젝트 통계 컴퓨팅의 KSgeneral 패키지에 구현되어 있다.date=21 May 2024 이 패키지는 주어진 표본에 대해 KS 검정 통계량과 p-값도 계산한다. 대체 C++ 구현은 다음에서 구할 수 있다.
## 추정된 매개변수를 사용한 검정
F(x)의 형식이나 매개변수가 데이터 Xi에서 결정되는 경우, 이러한 방식으로 결정된 임계값은 유효하지 않다. 이러한 경우에는 몬테카를로 또는 다른 방법이 필요할 수 있지만, 일부 경우에는 표가 작성되어 있다. 정규 분포 및 지수 분포에 대한 검정 통계량의 필요한 수정 및 임계값에 대한 세부 정보가 게시되었으며,pages=117–123, Tables 54, 55 이후 출판물에는 굼벨 분포도 포함된다.page=239 릴리포스 검정은 정규 분포에 대한 이 특수한 경우를 나타낸다. 로그 변환은 콜모고로프 검정 데이터가 정규 분포에서 나왔다는 가정에 맞지 않는 경우를 극복하는 데 도움이 될 수 있다. 매개변수를 추정할 때는 어떤 추정 방법을 사용해야 하는지에 대한 의문이 생긴다. 일반적으로 최대가능도 방법이 사용되지만, 예를 들어 정규 분포의 경우 MLE는 시그마에 대한 큰 편향 오차를 가지고 있다. 대신 모멘트 적합 또는 KS 최소화를 사용하면 임계값에 큰 영향을 미치고, 검정력에도 어느 정도 영향을 미친다. df = 2인 스튜던트-T 데이터에 대해 KS 검정을 통해 데이터가 정규 분포인지 아닌지를 결정해야 하는 경우, H0(데이터가 정규 분포이므로 스케일에는 표준 편차 사용)에 기반한 ML 추정은 KS 최소화를 통한 적합보다 훨씬 큰 KS 거리를 제공할 것이다. 이 경우 H0를 기각해야 하는데, 이는 MLE의 경우 종종 발생한다. 왜냐하면 T-2 데이터의 표본 표준 편차는 매우 클 수 있지만, KS 최소화를 사용하면 H0를 기각하기에는 여전히 너무 낮은 KS를 얻을 수 있기 때문이다. 스튜던트-T의 경우, MLE 대신 KS 추정치를 사용한 수정된 KS 검정은 KS 검정을 실제로 약간 더 나쁘게 만든다. 그러나 다른 경우에는 이러한 수정된 KS 검정이 약간 더 나은 검정력을 제공한다.
## 이산 및 혼합 영 분포
F가 비감소적이고 우연속적이며 셀 수 있는(무한할 수도 있는) 수의 점프를 가진다는 가정 하에, KS 검정 통계량은 다음과 같이 표현될 수 있다. D_n= \sup_x |F_n(x)-F(x)| = \sup_{0 \leq t \leq 1} |F_n(F^{-1}(t)) - F(F^{-1}(t))|. F의 우연속성으로부터 F(F^{-1}(t)) \geq t 및 F^{-1}(F(x)) \leq x 가 성립하며, 따라서 D_{n}의 분포는 영 분포 F에 의존하게 된다. 즉, 연속적인 경우처럼 분포에 독립적이지 않다. 따라서 F가 순수 이산적이거나 혼합일 때 D_{n}의 정확하고 점근적인 분포를 계산하기 위한 빠르고 정확한 방법이 개발되었으며, C++ 및 R 언어의 KSgeneral 패키지에 구현되어 있다. `disc_ks_test()`, `mixed_ks_test()` 및 `cont_ks_test()` 함수는 순수 이산, 혼합 또는 연속 영 분포 및 임의 표본 크기에 대한 KS 검정 통계량과 p-값도 계산한다. 이산 영 분포 및 작은 표본 크기에 대한 KS 검정 및 p-값은doi-access=free에서 R 언어의 dgof 패키지의 일부로 계산된다. SAS `PROC NPAR1WAY`,access-date=14 April 2018 Stata `ksmirnov`access-date=14 April 2018와 같은 주요 통계 패키지는 F(x)가 연속이라는 가정 하에 KS 검정을 구현하는데, 이는 영 분포가 실제로 연속이 아닌 경우 더 보수적이다(Noether63s2cid=120687545 jstor=2283251 s2cid=122547015 참조).
# 2-표본 콜모고로프-스미르노프 검정
2-표본 콜모고로프-스미르노프 통계량 그림. 빨간색과 파란색 선은 각각 경험적 분포 함수에 해당하며, 검은색 화살표는 2-표본 KS 통계량이다. 콜모고로프-스미르노프 검정은 두 개의 기초적인 1차원 확률 분포가 다른지 여부를 검정하는 데에도 사용될 수 있다. 이 경우 콜모고로프-스미르노프 통계량은 다음과 같다. D_{n,m}=\sup_x |F_{1,n}(x)-F_{2,m}(x)|, 여기서 F_{1,n} 및 F_{2,m}은 각각 첫 번째 표본과 두 번째 표본의 경험적 누적 분포 함수이며, \sup는 상한 함수이다. 큰 표본의 경우, 귀무 가설은 수준 \alpha에서 기각된다. D_{n,m}>c(\alpha)\sqrt{\frac{n + m}{n\cdot m. 여기서 n과 m은 각각 첫 번째와 두 번째 표본의 크기이다. c({\alpha}) 값은 가장 일반적인 \alpha 수준에 대해 아래 표에 나와 있다. {| class="wikitable" |- ! \alpha | 0.20 || 0.15 || 0.10 || 0.05 || 0.025 || 0.01 || 0.005 || 0.001 |- ! c({\alpha}) | 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. 다음으로 주어진다. c\left(\alpha\right)=\sqrt{-\ln\left(\tfrac{\alpha}{2}\right)\cdot \tfrac{1}{2, 따라서 조건은 다음과 같다. D_{n,m}>\sqrt{-\ln\left(\tfrac{\alpha}{2}\right)\cdot \tfrac{1 + \tfrac{m}{n{2m. 여기서 다시 표본 크기가 클수록 최소 경계가 더 민감해진다. 주어진 표본 크기 비율(예: m=n)의 경우, 최소 경계는 표본 중 하나의 크기에 따라 역제곱근에 비례하여 조정된다. 두 표본 검정은 두 데이터 표본이 동일한 분포에서 왔는지 여부를 확인한다. 이는 공통 분포가 무엇인지(예: 정규 분포인지 아닌지)를 지정하지 않는다. 다시, 임계값 표가 발행되었다. 단변량 콜모고로프-스미르노프 검정의 단점은 두 분포 함수 간의 모든 가능한 유형의 차이에 민감하도록 고안되었기 때문에 검정력이 그리 강하지 않다는 것이다. 일부 사람들은s2cid=120038970s2cid=28146102 원래 위치와 스케일을 동시에 비교하기 위해 제안된 쿠코니 검정이 두 분포 함수를 비교할 때 콜모고로프-스미르노프 검정보다 훨씬 더 강력할 수 있다고 주장한다. 2-표본 KS 검정은 경제학에서 비대칭 효과를 감지하고 자연 실험을 연구하는 데 적용되었다.journal=Revista Chilena de Economía y Sociedad
# 분포 함수의 형태에 대한 신뢰 한계 설정
드보레츠키-키퍼-볼포비츠 부등식 콜모고로프-스미르노프 검정은 일반적으로 주어진 F(x)가 Fn(x)의 기초 확률 분포인지 여부를 검정하는 데 사용되지만, 이 절차를 역으로 적용하여 F(x) 자체에 대한 신뢰 한계를 제공할 수 있다. 검정 통계량 Dα의 임계값을 P(Dn > Dα) = α가 되도록 선택하면 Fn(x) 주변의 ±Dα 폭의 구간은 확률 1 − α로 F(x)를 완전히 포함한다.
# 다차원 콜모고로프-스미르노프 통계량
분포에 독립적인 다변량 콜모고로프-스미르노프 적합도 검정이 후스텔, 페냐, 자마르(1997)에 의해 제안되었다.citeseerx=10.1.1.498.7631 이 검정은 로젠블라트 변환을 사용하여 구축된 통계량을 사용하며, 이변량 경우에 이를 계산하는 알고리즘이 개발되었다. 또한 어떤 차원에서도 쉽게 계산할 수 있는 근사 검정도 제시되어 있다. 다변량 데이터에 유사한 검정을 적용하려면 콜모고로프-스미르노프 검정 통계량을 수정해야 한다. 이는 두 결합 누적 분포 함수 간의 최대 차이가 일반적으로 보완 분포 함수 중 어느 하나와의 최대 차이와 같지 않기 때문에 간단하지 않다. 따라서 \Pr(X y) 또는 다른 두 가지 가능한 배치 중 어느 것을 사용하는지에 따라 최대 차이가 달라질 것이다. 사용된 검정 결과가 어떤 선택에 의존하지 않아야 한다고 요구할 수 있다. 콜모고로프-스미르노프 통계량을 더 높은 차원으로 일반화하는 한 가지 접근 방식은 두 표본의 cdf를 가능한 모든 순서로 비교하고 결과 KS 통계량 세트 중 가장 큰 값을 취하는 것이다. d차원에서 이러한 순서는 2d − 1개가 있다. 이러한 변형 중 하나는 피콕(Peacock)의 것이며doi-access = free (3D 버전은 고세트(Gosset)도 참조서적 인용|author = Gosset E. |title = A three-dimensional extended Kolmogorov–Smirnov test as a useful tool in astronomy} |journal = Astronomy and Astrophysics |volume = 188 |issue = 1 |pages = 258–264 |year = 1987 |bibcode = 1987A&A...188..258G; ) 다른 하나는 파사노(Fasano)와 프란체스키니(Franceschini)의 것이다doi-access= free (비교 및 계산 세부 정보는 로페스 등 참조).url= http://dspace.brunel.ac.uk/bitstream/2438/1166/1/acat2007.pdf 검정 통계량의 임계값은 시뮬레이션을 통해 얻을 수 있지만, 결합 분포의 의존성 구조에 따라 달라진다.
# 구현
콜모고로프-스미르노프 검정은 많은 소프트웨어 프로그램에 구현되어 있다. 대부분은 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 함수에 검정을 구현한다.access-date= 26 October 2021 * SYSTAT (SPSS Inc., 시카고, 일리노이) * Java에는 아파치 커먼즈에서 제공하는 이 검정의 구현이 있다.access-date= 18 June 2019 * KNIME에는 위의 Java 구현을 기반으로 이 검정을 구현하는 노드가 있다.access-date= 25 June 2020 * Julia에는 함수 ExactOneSampleKSTest(x::AbstractVector{<:Real}, d::UnivariateDistribution)가 포함된 HypothesisTests.jl 패키지가 있다.title = Nonparametric tests · HypothesisTests.jl * StatsDirect (StatsDirect Ltd, 맨체스터, 영국)은 모든 일반적인 변형을 구현한다. * Stata (Stata Corporation, 칼리지 스테이션, 텍사스)는 ksmirnov (콜모고로프-스미르노프 분포 동등성 검정) 명령에 검정을 구현한다.access-date= 18 June 2019 * PSPP는 KOLMOGOROV-SMIRNOV (또는 KS 바로가기 함수 사용)에서 검정을 구현한다. * Excel용 Real Statistics Resource Pack은 KSCRIT 및 KSPROB로 검정을 실행한다.access-date= 18 June 2019
# 추가 자료
* chapter-url=https://books.google.com/books?id=0hPvAAAAMAAJ&pg;=PA319 * isbn = 978-0-444-10117-4 * pages = 25.37–25.43 *isbn=978-1-118-84031-3 *doi=10.1093/biomet/66.3.591 *doi-access=free