In statistics, the Kolmogorov–Smirnov test (often called the K-S test) is a goodness of fit test used to determine whether two underlying one-dimensional probability distributions differ, or whether an underlying probability distribution differs from a hypothesized distribution, in either case based on finite samples. The one-sample KS test compares the empirical distribution function with the cumulative distribution function specified by the null hypothesis. The main applications are testing goodness of fit with the normal and uniform distributions. For normality testing, minor improvements made by Lilliefors lead to the Lilliefors test. In general the Shapiro-Wilk test or Anderson-Darling test are more powerful alternatives to the Lilliefors test for testing normality. The two-sample KS test is one of the most useful and general nonparametric methods for comparing two samples, as it is sensitive to differences in both location and shape of the empirical cumulative distribution functions of the two samples.
Contents |
Kolmogorov-Smirnov statistic
The empirical distribution function Fn for n iid observations Xi is defined as
- <math>F_n(x)={1 \over n}\sum_{i=1}^n I_{X_i\leq x}</math>
where <math>I_{X_i\leq x}</math> is the indicator function. The Kolmogorov-Smirnov statistic for a given function F(x) is
- <math>D_n=\sup_x |F_n(x)-F(x)|,</math>
where <math>\sup S</math> is the supremum of set <math>S</math>. By the Glivenko-Cantelli theorem, if the sample comes from distribution F(x), then <math>D_n</math> converges to 0 almost surely. Kolmogorov strengthened this result, by effectively providing the rate of this convergence (see below). The Donsker theorem provides yet stronger result.
Kolmogorov distribution
The Kolmogorov distribution is the distribution of the random variable
- <math>K=\sup_{t\in[0,1]}|B(t)|</math>,
where <math>B(t)</math> is the Brownian bridge. The cumulative distribution function of K is given by
- <math>\operatorname{Pr}(K\leq x)=1-2\sum_{i=1}^\infty (-1)^{i-1} e^{-2i^2 x^2}=\frac{\sqrt{2\pi}}{x}\sum_{i=1}^\infty e^{-(2i-1)^2\pi^2/(8x^2)}.</math>
Kolmogorov-Smirnov test
Under null hypothesis that the sample comes from the hypothesized distribution F(x),
- <math>\sqrt{n}D_n\xrightarrow{n\to\infty}\sup_t |B(F(t))|</math> in distribution, where B(t) is the Brownian bridge.
If F is continuous then under the null hypothesis <math>\sqrt{n}D_n</math> converges to the Kolmogorov distribution, which does not depend on F. This result may also be known as the Kolmogorov theorem, see Kolmogorov's theorem for disambiguation. The goodness-of-fit test or the Kolmogorov-Smirnov test is constructed by using the critical values of the Kolmogorov distribution. The null hypothesis is rejected at level <math>\alpha</math> if
- <math>\sqrt{n}D_n>K_\alpha</math>,
where <math>K_\alpha</math> is found from
- <math>\operatorname{Pr}(K\leq K_\alpha)=1-\alpha.</math>
When <math>n</math> is big enough, this approximation may be used:
- <math>K_\alpha \approx \sqrt{-\frac{\ln{\frac{1-\alpha}{2}}}{2 n}}-\frac{1}{6 n}.</math>
The asymptotic power of this test is 1. If the form or parameters of <math>F(x)</math> are determined from the <math>X_i</math>, the inequality may not hold. In this case, Monte Carlo or other methods are required to determine the rejection level <math>\alpha</math>. The Kolmogorov-Smirnov test may also be used to test whether two underlying one-dimensional probability distributions differ. In this case, the Kolmogorov-Smirnov statistic is
- <math>D_{n,n'}=\sup_x |F_n(x)-F_{n'}(x)|.</math>
and the null hypothesis is rejected at level <math>\alpha</math> if
- <math>\sqrt{\frac{n n'}{n + n'}}D_{n,n'}>K_\alpha</math>.
Setting confidence limits for the shape of a distribution function
While the Kolmogorov-Smirnov test is usually used to test whether a given <math>F(x)</math> is the underlying probability distribution of <math>F_n(x)</math>, the procedure may be inverted to give confidence limits on <math>F(x)</math> itself. If one chooses a critical value of the test statistic <math>D_\alpha</math> such that <math>P(D_n > D_\alpha) = \alpha</math>, then a band of width ±<math>D_\alpha</math> around <math>F_n(x)</math> will entirely contain <math>F(x)</math> with probabilitiy <math>1-\alpha</math>.
See also
- Non-parametric statistics
- Andrey Kolmogorov
- Lilliefors test
- Jarque-Bera test
- Shapiro-Wilk test
- Anderson-Darling test
- Kuiper's test
- Cramér-von-Mises test
- Donsker theorem
- Siegel-Tukey test
References
Eadie, W.T.; D. Drijard, F.E. James, M. Roos and B. Sadoulet (1971). Statistical Methods in Experimental Physics. Amsterdam: North-Holland, 269-271. Stuart, Alan; Keith Ord and Steven Arnold (1999). Kendall's Advanced Theory of Statistics. London: Arnold, a member of the Hodder Headline Group, 25.37-25.43.
External links
- Short introduction
- KS test explanation
- JavaScript implementation of one- and two-sided tests
- Online calculator with the K-S test
- Open-source C++ code to compute the Kolmogorov distribution and perform the K-S test


