Class KolmogorovSmirnovDistribution
- java.lang.Object
-
- org.apache.commons.math3.distribution.KolmogorovSmirnovDistribution
-
- All Implemented Interfaces:
java.io.Serializable
public class KolmogorovSmirnovDistribution extends java.lang.Object implements java.io.SerializableDeprecated.to be removed in version 4.0 - useKolmogorovSmirnovTestImplementation of the Kolmogorov-Smirnov distribution.Treats the distribution of the two-sided
P(D_n < d)whereD_n = sup_x |G(x) - G_n (x)|for the theoretical cdfGand the empirical cdfG_n.This implementation is based on [1] with certain quick decisions for extreme values given in [2].
In short, when wanting to evaluate
P(D_n < d), the method in [1] is to writed = (k - h) / nfor positive integerkand0 <= h < 1. ThenP(D_n < d) = (n! / n^n) * t_kk, wheret_kkis the(k, k)'th entry in the special matrixH^n, i.e.Hto then'th power.References:
- [1] Evaluating Kolmogorov's Distribution by George Marsaglia, Wai Wan Tsang, and Jingbo Wang
- [2] Computing the Two-Sided Kolmogorov-Smirnov Distribution by Richard Simard and Pierre L'Ecuyer
-
-
Constructor Summary
Constructors Constructor Description KolmogorovSmirnovDistribution(int n)Deprecated.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description doublecdf(double d)Deprecated.CalculatesP(D_n < d)using method described in [1] with quick decisions for extreme values given in [2] (see above).doublecdf(double d, boolean exact)Deprecated.CalculatesP(D_n < d)using method described in [1] with quick decisions for extreme values given in [2] (see above).doublecdfExact(double d)Deprecated.CalculatesP(D_n < d)using method described in [1] with quick decisions for extreme values given in [2] (see above).
-
-
-
Constructor Detail
-
KolmogorovSmirnovDistribution
public KolmogorovSmirnovDistribution(int n) throws NotStrictlyPositiveExceptionDeprecated.- Parameters:
n- Number of observations- Throws:
NotStrictlyPositiveException- ifn <= 0
-
-
Method Detail
-
cdf
public double cdf(double d) throws MathArithmeticExceptionDeprecated.CalculatesP(D_n < d)using method described in [1] with quick decisions for extreme values given in [2] (see above). The result is not exact as withcdfExact(double)because calculations are based ondoublerather thanBigFraction.- Parameters:
d- statistic- Returns:
- the two-sided probability of
P(D_n < d) - Throws:
MathArithmeticException- if algorithm fails to converthto aBigFractionin expressingdas(k - h) / mfor integerk, mand0 <= h < 1.
-
cdfExact
public double cdfExact(double d) throws MathArithmeticExceptionDeprecated.CalculatesP(D_n < d)using method described in [1] with quick decisions for extreme values given in [2] (see above). The result is exact in the sense that BigFraction/BigReal is used everywhere at the expense of very slow execution time. Almost never choose this in real applications unless you are very sure; this is almost solely for verification purposes. Normally, you would choosecdf(double)- Parameters:
d- statistic- Returns:
- the two-sided probability of
P(D_n < d) - Throws:
MathArithmeticException- if algorithm fails to converthto aBigFractionin expressingdas(k - h) / mfor integerk, mand0 <= h < 1.
-
cdf
public double cdf(double d, boolean exact) throws MathArithmeticExceptionDeprecated.CalculatesP(D_n < d)using method described in [1] with quick decisions for extreme values given in [2] (see above).- Parameters:
d- statisticexact- whether the probability should be calculated exact usingBigFractioneverywhere at the expense of very slow execution time, or ifdoubleshould be used convenient places to gain speed. Almost never choosetruein real applications unless you are very sure;trueis almost solely for verification purposes.- Returns:
- the two-sided probability of
P(D_n < d) - Throws:
MathArithmeticException- if algorithm fails to converthto aBigFractionin expressingdas(k - h) / mfor integerk, mand0 <= h < 1.
-
-