IMSL C# Numerical Library

KolmogorovTwoSample Class

Performs a Kolmogorov-Smirnov two-sample test.

For a list of all members of this type, see KolmogorovTwoSample Members.

System.Object
   Imsl.Stat.KolmogorovTwoSample

public class KolmogorovTwoSample

Thread Safety

Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.

Remarks

Class KolmogorovTwoSample computes Kolmogorov-Smirnov two-sample test statistics for testing that two continuous cumulative distribution functions (CDF's) are identical based upon two random samples. One- or two-sided alternatives are allowed. Exact p-values are computed for the two-sided test when nm \le 104, where n is the number of non-missing X observations and m the number of non-missing Y observation.

Let F_n(x) denote the empirical CDF in the X sample, let G_m(y) denote the empirical CDF in the Y sample and let the corresponding population distribution functions be denoted by F(x) and G(y), respectively. Then, the hypotheses tested by KolmogorovTwoSample are as follows:

\begin{array}{ll}
            H_0:~ F(x) = G(x)   & H_1:~F(x) \ne G(x) \\
            H_0:~ F(x) \ge G(x) & H_1:~F(x) \lt G(x) \\
            H_0:~ F(x) \le G(x) & H_1:~F(x) \gt G(x)
            \end{array}
The test statistics are given as follows:
\begin{array}{rl}
            D_{mn}     & = \max(D_{mn}^{+}, D_{mn}^{-}) \\
            D_{mn}^{+} & = \max_x(F_n(x)-G_m(x)) \\
            D_{mn}^{-} & = \max_x(G_m(x)-F_n(x))
            \end{array}
Asymptotically, the distribution of the statistic
Z = D_{mn} \sqrt{\frac{m+n}{mn}}
converges to a distribution given by Smirnov (1939).

Exact probabilities for the two-sided test are computed when nm \le 104, according to an algorithm given by Kim and Jennrich (1973). When nm \gt 104, the very good approximations given by Kim and Jennrich are used to obtain the two-sided p-values. The one-sided probability is taken as one half the two-sided probability. This is a very good approximation when the p-value is small (say, less than 0.10) and not very good for large p-values.

Requirements

Namespace: Imsl.Stat

Assembly: ImslCS (in ImslCS.dll)

See Also

KolmogorovTwoSample Members | Imsl.Stat Namespace | Example