Learn R Programming

kolmim (version 1.0)

pkolm: Kolmogorov Dn Distribution

Description

Cumulative distribution function for Kolmogorov's goodness-of-fit measure.

Usage

pkolm(d, n)

Arguments

d
the argument for the cumulative distribution function of Dn.
n
the number of variates.

Value

Returns $K(n, d) = P(D_n < d)$.

Source

The two-sided one-sample distribution comes via Wang, Tsang, and Marsaglia (2003).

Details

Given an ordered set of n standard uniform variates, $x_1 < \dots < x_n$, Kolmogorov suggested $D_n = \max[D_n^-, D_n^+]$ as a goodness-of-fit measure, where: $D_n^- = \max_{i=1, \dots n} [x_i - (i - 1) / n]$ and $D_n^+ = \max_{i=1, \dots n} [i / n - x_i]$.

pkolm provides the original algorithm proposed by Wang, Tsang, and Marsaglia (2003) to compute the cumulative distribution function $K(n, d) = P(D_n < d)$. This routine is used by ks.test (package stats) for one-sample two-sided exact tests, and it is implemented in the C routine pkolmogorov2x. pkolm is a simple wrap around pkolmogorov2x.

References

George Marsaglia, Wai Wan Tsang and Jingbo Wang (2003), Evaluating Kolmogorov's distribution. Journal of Statistical Software, 8/18. http://www.jstatsoft.org/v08/i18/.

See Also

pkolmim for an improved routine to compute $K(n, d)$, and ks.test for the Kolmogorov-Smirnov test.

Examples

Run this code
n <- 100
x <- 1:100 / 500
plot(x, sapply(x, function (x) pkolm(x, n)), type='l')

# Wang et al. approximation
s <- x ^ 2 * n
ps <- pmax(0, 1 - 2 * exp(-(2.000071 + .331 / sqrt(n) + 1.409 / n) * s))
lines(x, ps, lty=2)

Run the code above in your browser using DataLab