World Library  
Flag as Inappropriate
Email this Article

Kolmogorov–Smirnov test


Kolmogorov–Smirnov test

Illustration of the Kolmogorov-Smirnov statistic. Red line is CDF, blue line is an ECDF, and the black arrow is the K-S statistic.

In statistics, the KolmogorovSmirnov test (K–S test) is a nonparametric test of the equality of continuous, one-dimensional probability distributions that can be used to compare a sample with a reference probability distribution (one-sample K–S test), or to compare two samples (two-sample K–S test). The Kolmogorov–Smirnov statistic quantifies a distance between the empirical distribution function of the sample and the cumulative distribution function of the reference distribution, or between the empirical distribution functions of two samples. The null distribution of this statistic is calculated under the null hypothesis that the samples are drawn from the same distribution (in the two-sample case) or that the sample is drawn from the reference distribution (in the one-sample case). In each case, the distributions considered under the null hypothesis are continuous distributions but are otherwise unrestricted.

The two-sample K–S 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.

The Kolmogorov–Smirnov test can be modified to serve as a goodness of fit test. In the special case of testing for normality of the distribution, samples are standardized and compared with a standard normal distribution. This is equivalent to setting the mean and variance of the reference distribution equal to the sample estimates, and it is known that using these to define the specific reference distribution changes the null distribution of the test statistic: see below. Various studies have found that, even in this corrected form, the test is less powerful for testing normality than the Shapiro–Wilk test or Anderson–Darling test.[1] However, other tests have their own disadvantages. For instance the Shapiro–Wilk test is known not to work well with many ties (many identical values).


  • Kolmogorov–Smirnov statistic 1
  • Kolmogorov distribution 2
    • Test with estimated parameters 2.1
    • Discrete null distribution 2.2
  • Two-sample Kolmogorov–Smirnov test 3
  • Setting confidence limits for the shape of a distribution function 4
  • The Kolmogorov–Smirnov statistic in more than one dimension 5
  • See also 6
  • Footnotes 7
  • References 8
  • External links 9

Kolmogorov–Smirnov statistic

The empirical distribution function Fn for n iid observations Xi is defined as

F_n(x)={1 \over n}\sum_{i=1}^n I_{X_i\leq x}

where I_{X_i\leq x} is the indicator function, equal to 1 if Xi ≤ x and equal to 0 otherwise.

The Kolmogorov–Smirnov statistic for a given cumulative distribution function F(x) is

D_n= \sup_x |F_n(x)-F(x)|

where sup x is the supremum of the set of distances. By the Glivenko–Cantelli theorem, if the sample comes from distribution F(x), then Dn converges to 0 almost surely in the limit when n goes to infinity. Kolmogorov strengthened this result, by effectively providing the rate of this convergence (see below). Donsker's theorem provides yet a stronger result.

In practice, the statistic requires a relatively large number of data points to properly reject the null hypothesis.

Kolmogorov distribution

The Kolmogorov distribution is the distribution of the random variable


where B(t) is the Brownian bridge. The cumulative distribution function of K is given by[2]

\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)}.

Both the form of the Kolmogorov–Smirnov test statistic and its asymptotic distribution under the null hypothesis were published by Andrey Kolmogorov,[3] while a table of the distribution was published by Nikolai Vasilyevich Smirnov.[4] Recurrence relations for the distribution of the test statistic in finite samples are available.[3]

Under null hypothesis that the sample comes from the hypothesized distribution F(x),

\sqrt{n}D_n\xrightarrow{n\to\infty}\sup_t |B(F(t))|

in distribution, where B(t) is the Brownian bridge.

If F is continuous then under the null hypothesis \sqrt{n}D_n 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 \alpha if


where Kα is found from

\operatorname{Pr}(K\leq K_\alpha)=1-\alpha.\,

The asymptotic power of this test is 1.

Test with estimated parameters

If either the form or the parameters of F(x) are determined from the data Xi the critical values determined in this way are invalid. In such cases, Monte Carlo or other methods may be required, but tables have been prepared for some cases. Details for the required modifications to the test statistic and for the critical values for the normal distribution and the exponential distribution have been published,[5] and later publications also include the Gumbel distribution.[6] The Lilliefors test represents a special case of this for the normal distribution. The logarithm transformation may help to overcome cases were the Kolmogorov test data does not seem to fit the assumption that it came from the normal distribution.

Discrete null distribution

The Kolmogorov-Smirnov test must be adapted for discrete variables.[7] The form of the test statistic remains the same as in the continuous case, but the calculation of its value is more subtle. We can see this if we consider computing the test statistic between a continuous distribution f(x) and a step function g(x) that has a discontinuity at x_{\rm i}. In other words, the limit \lim_{x\rightarrow x_{\rm i}} g(x) does not exist. Thus, when computing the statistic

\sup_x |g(x)-f(x)| = \max_{\rm i} \left[ \max\left( |g(x_{\rm i})-f(x_{\rm i})|,\lim_{x\rightarrow x_{\rm i}} |g(x) - f(x_{\rm i-1}) \right) \right],

it is unclear how to replace the limit, unless we know the limiting value of the underlying distribution.

The discretized KS test is implemented in the ks.test() function in the dgof package of the R project for statistical computing.[8]

Two-sample Kolmogorov–Smirnov test

Illustration of the Two-Sample Kolmogorov-Smirnov statistic. Red and blue lines each correspond to an empirical distribution function, and the black arrow is the two-sample K-S statistic.

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

D_{n,n'}=\sup_x |F_{1,n}(x)-F_{2,n'}(x)|,

where F_{1,n} and F_{2,n'} are the empirical distribution functions of the first and the second sample respectively, and sup is the supremum function.

The null hypothesis is rejected at level \alpha if

D_{n,n'}>c(\alpha)\sqrt{\frac{n + n'}{n n'}}.[9]

The value of c({\alpha}) is given in the table below for each level of \alpha[9]

\alpha 0.10 0.05 0.025 0.01 0.005 0.001
c({\alpha}) 1.22 1.36 1.48 1.63 1.73 1.95

Note that the two-sample test checks whether the two data samples come from the same distribution. This does not specify what that common distribution is (e.g. normal or not normal). Again, tables of critical values have been published.[5][9] These critical values have in common with the Anderson-Darling and Chi-squares, the fact that higher values tend to be more rare.[10]

Setting confidence limits for the shape of a distribution function

While the Kolmogorov–Smirnov test is usually used to test whether a given F(x) is the underlying probability distribution of Fn(x), the procedure may be inverted to give confidence limits on F(x) itself. If one chooses a critical value of the test statistic Dα such that P(Dn > Dα) = α, then a band of width ±Dα around Fn(x) will entirely contain F(x) with probability 1 − α.

The Kolmogorov–Smirnov statistic in more than one dimension

A distribution-free multivariate Kolmogorov–Smirnov goodness of fit test has been proposed by Justel, Peña and Zamar (1997).[11] The test uses a statistic which is built using Rosenblatt's transformation, and an algorithm is developed to compute it in the bivariate case. An approximate test that can be easily computed in any dimension is also presented.

The Kolmogorov–Smirnov test statistic needs to be modified if a similar test is to be applied to multivariate data. This is not straightforward because the maximum difference between two joint cumulative distribution functions is not generally the same as the maximum difference of any of the complementary distribution functions. Thus the maximum difference will differ depending on which of \Pr(x < X \and y < Y) or \Pr(X < x \and Y > y) or any of the other two possible arrangements is used. One might require that the result of the test used should not depend on which choice is made.

One approach to generalizing the Kolmogorov–Smirnov statistic to higher dimensions which meets the above concern is to compare the cdfs of the two samples with all possible orderings, and take the largest of the set of resulting K–S statistics. In d dimensions, there are 2d−1 such orderings. One such variation is due to Peacock[12] and another to Fasano and Franceschini[13] (see Lopes et al. for a comparison and computational details).[14] Critical values for the test statistic can be obtained by simulations, but depend on the dependence structure in the joint distribution.

See also


  1. ^ Stephens, M. A. (1974). "EDF Statistics for Goodness of Fit and Some Comparisons". Journal of the American Statistical Association (American Statistical Association) 69 (347): 730–737.  
  2. ^ Marsaglia G, Tsang WW, Wang J (2003). "Evaluating Kolmogorov’s Distribution". Journal of Statistical Software 8 (18): 1–4. 
  3. ^ a b Kolmogorov A (1933). "Sulla determinazione empirica di una legge di distribuzione". G. Ist. Ital. Attuari 4: 83–91. 
  4. ^ Smirnov N (1948). "Table for estimating the goodness of fit of empirical distributions".  
  5. ^ a b Pearson E.S. and Hartley, H.O., ed. (1972). Biometrika Tables for Statisticians 2. Cambridge University Press. pp. 117–123, Tables 54, 55.  
  6. ^ Galen R. Shorack and Jon A. Wellner (1986). Empirical Processes with Applications to Statistics. Wiley. p. 239.  
  7. ^ Taylor B. Arnold and John W. Emerson (2011). "Nonparametric Goodness-of-Fit Tests for Discrete Null Distributions". The R Journal 3 (2): 34––39. 
  8. ^ Taylor B. Arnold and John W. Emerson (2011). "Nonparametric Goodness-of-Fit Tests for Discrete Null Distributions". The R Journal 3 (2): 34––39. 
  9. ^ a b c Table of critical values for the two-sample test
  10. ^ Mehta, S. (2014) Statistics Topics ISBN 978-1499273533
  11. ^ Justel, A.; Peña, D.; Zamar, R. (1997). "A multivariate Kolmogorov–Smirnov test of goodness of fit". Statistics & Probability Letters 35 (3): 251–259.  
  12. ^ Peacock J.A. (1983). "Two-dimensional goodness-of-fit testing in astronomy".  
  13. ^ Fasano, G., Franceschini, A. (1987). "A multidimensional version of the Kolmogorov–Smirnov test". Monthly Notices of the Royal Astronomical Society 225: 155–170.  
  14. ^ Lopes, R.H.C., Reid, I., Hobson, P.R. (April 23–27, 2007). "The two-dimensional Kolmogorov-Smirnov test". XI International Workshop on Advanced Computing and Analysis Techniques in Physics Research. Amsterdam, the Netherlands. 


  • Eadie, W.T.; D. Drijard, F.E. James, M. Roos and B. Sadoulet (1971). Statistical Methods in Experimental Physics. Amsterdam: North-Holland. pp. 269–271.  
  • Stuart, Alan; Ord, Keith; Arnold, Steven [F.] (1999). Classical Inference and the Linear Model. Kendall's Advanced Theory of Statistics 2A (Sixth ed.). London: Arnold. pp. 25.37–25.43.  
  • Corder, G. W.; Foreman, D. I. (2014). Nonparametric Statistics: A Step-by-Step Approach. Wiley.  
  • Stephens, M. A. (1979). "Test of fit for the logistic distribution based on the empirical distribution function". Biometrika 66 (3): 591–595.  

External links

  • Hazewinkel, Michiel, ed. (2001), "Kolmogorov-Smirnov test",  
  • 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
  • Paper on Evaluating Kolmogorov’s Distribution; contains C implementation. This is the method used in Matlab.
  • Paper on powerlaw: A Python Package for Analysis of Heavy-Tailed Distributions; Jeff Alstott, Ed Bullmore, Dietmar Plenz. Perform among other Kolmogorov-Smirnov test. Source code and installers of powerlaw package are available at PyPi.
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from World Library are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.