MATH-1443: Depend on "Commons Statistics".
Project: http://git-wip-us.apache.org/repos/asf/commons-math/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-math/commit/c4218b83 Tree: http://git-wip-us.apache.org/repos/asf/commons-math/tree/c4218b83 Diff: http://git-wip-us.apache.org/repos/asf/commons-math/diff/c4218b83 Branch: refs/heads/master Commit: c4218b83851c8dba1f275e3095913d9636aa5000 Parents: bd15dc7 Author: Gilles <er...@apache.org> Authored: Thu Jan 25 17:08:40 2018 +0100 Committer: Gilles <er...@apache.org> Committed: Thu Jan 25 17:08:40 2018 +0100 ---------------------------------------------------------------------- .../distribution/AbstractIntegerDistribution.java | 5 +++-- .../distribution/AbstractRealDistribution.java | 5 +++-- .../distribution/EnumeratedRealDistribution.java | 15 +++++++++------ .../math4/distribution/IntegerDistribution.java | 3 ++- .../math4/distribution/RealDistribution.java | 3 ++- .../nonlinear/scalar/noderiv/CMAESOptimizer.java | 2 +- .../math4/stat/inference/InferenceTestUtils.java | 18 +++++++++--------- .../stat/inference/KolmogorovSmirnovTest.java | 14 +++++++------- .../math4/stat/interval/AgrestiCoullInterval.java | 2 +- .../interval/NormalApproximationInterval.java | 2 +- .../math4/stat/interval/WilsonScoreInterval.java | 2 +- .../math4/distribution/BetaDistributionTest.java | 8 +++++--- .../EnumeratedRealDistributionTest.java | 11 ++++++----- .../descriptive/rank/PSquarePercentileTest.java | 10 +++++----- .../stat/inference/InferenceTestUtilsTest.java | 2 +- .../stat/inference/KolmogorovSmirnovTestTest.java | 10 +++++----- 16 files changed, 61 insertions(+), 51 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-math/blob/c4218b83/src/main/java/org/apache/commons/math4/distribution/AbstractIntegerDistribution.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/math4/distribution/AbstractIntegerDistribution.java b/src/main/java/org/apache/commons/math4/distribution/AbstractIntegerDistribution.java index 86ecdf9..99f0060 100644 --- a/src/main/java/org/apache/commons/math4/distribution/AbstractIntegerDistribution.java +++ b/src/main/java/org/apache/commons/math4/distribution/AbstractIntegerDistribution.java @@ -18,6 +18,7 @@ package org.apache.commons.math4.distribution; import java.io.Serializable; +import org.apache.commons.statistics.distribution.DiscreteDistribution; import org.apache.commons.math4.exception.MathInternalError; import org.apache.commons.math4.exception.NumberIsTooLargeException; import org.apache.commons.math4.exception.OutOfRangeException; @@ -186,7 +187,7 @@ public abstract class AbstractIntegerDistribution implements IntegerDistribution * @return an array of size {@code n}. */ public static int[] sample(int n, - IntegerDistribution.Sampler sampler) { + DiscreteDistribution.Sampler sampler) { final int[] samples = new int[n]; for (int i = 0; i < n; i++) { samples[i] = sampler.sample(); @@ -196,7 +197,7 @@ public abstract class AbstractIntegerDistribution implements IntegerDistribution /**{@inheritDoc} */ @Override - public IntegerDistribution.Sampler createSampler(final UniformRandomProvider rng) { + public Sampler createSampler(final UniformRandomProvider rng) { return new IntegerDistribution.Sampler() { /** * Inversion method distribution sampler. http://git-wip-us.apache.org/repos/asf/commons-math/blob/c4218b83/src/main/java/org/apache/commons/math4/distribution/AbstractRealDistribution.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/math4/distribution/AbstractRealDistribution.java b/src/main/java/org/apache/commons/math4/distribution/AbstractRealDistribution.java index 27800a6..c00039a 100644 --- a/src/main/java/org/apache/commons/math4/distribution/AbstractRealDistribution.java +++ b/src/main/java/org/apache/commons/math4/distribution/AbstractRealDistribution.java @@ -18,6 +18,7 @@ package org.apache.commons.math4.distribution; import java.io.Serializable; +import org.apache.commons.statistics.distribution.ContinuousDistribution; import org.apache.commons.math4.analysis.UnivariateFunction; import org.apache.commons.math4.analysis.solvers.UnivariateSolverUtils; import org.apache.commons.math4.exception.NumberIsTooLargeException; @@ -234,7 +235,7 @@ public abstract class AbstractRealDistribution * @return an array of size {@code n}. */ public static double[] sample(int n, - RealDistribution.Sampler sampler) { + ContinuousDistribution.Sampler sampler) { final double[] samples = new double[n]; for (int i = 0; i < n; i++) { samples[i] = sampler.sample(); @@ -244,7 +245,7 @@ public abstract class AbstractRealDistribution /**{@inheritDoc} */ @Override - public RealDistribution.Sampler createSampler(final UniformRandomProvider rng) { + public Sampler createSampler(final UniformRandomProvider rng) { return new RealDistribution.Sampler() { /** * Inversion method distribution sampler. http://git-wip-us.apache.org/repos/asf/commons-math/blob/c4218b83/src/main/java/org/apache/commons/math4/distribution/EnumeratedRealDistribution.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/math4/distribution/EnumeratedRealDistribution.java b/src/main/java/org/apache/commons/math4/distribution/EnumeratedRealDistribution.java index f54663b..55c0992 100644 --- a/src/main/java/org/apache/commons/math4/distribution/EnumeratedRealDistribution.java +++ b/src/main/java/org/apache/commons/math4/distribution/EnumeratedRealDistribution.java @@ -21,7 +21,9 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.io.Serializable; +import org.apache.commons.statistics.distribution.ContinuousDistribution; import org.apache.commons.math4.exception.DimensionMismatchException; import org.apache.commons.math4.exception.MathArithmeticException; import org.apache.commons.math4.exception.NotANumberException; @@ -41,8 +43,9 @@ import org.apache.commons.math4.util.Pair; * * @since 3.2 */ -public class EnumeratedRealDistribution extends AbstractRealDistribution { - +public class EnumeratedRealDistribution + implements ContinuousDistribution, + Serializable { /** Serializable UID. */ private static final long serialVersionUID = 20160311L; @@ -195,7 +198,7 @@ public class EnumeratedRealDistribution extends AbstractRealDistribution { * @return {@code sum(singletons[i] * probabilities[i])} */ @Override - public double getNumericalMean() { + public double getMean() { double mean = 0; for (final Pair<Double, Double> sample : innerDistribution.getPmf()) { @@ -211,7 +214,7 @@ public class EnumeratedRealDistribution extends AbstractRealDistribution { * @return {@code sum((singletons[i] - mean) ^ 2 * probabilities[i])} */ @Override - public double getNumericalVariance() { + public double getVariance() { double mean = 0; double meanOfSquares = 0; @@ -275,8 +278,8 @@ public class EnumeratedRealDistribution extends AbstractRealDistribution { /** {@inheritDoc} */ @Override - public RealDistribution.Sampler createSampler(final UniformRandomProvider rng) { - return new RealDistribution.Sampler() { + public ContinuousDistribution.Sampler createSampler(final UniformRandomProvider rng) { + return new ContinuousDistribution.Sampler() { /** Delegate. */ private final EnumeratedDistribution<Double>.Sampler inner = innerDistribution.createSampler(rng); http://git-wip-us.apache.org/repos/asf/commons-math/blob/c4218b83/src/main/java/org/apache/commons/math4/distribution/IntegerDistribution.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/math4/distribution/IntegerDistribution.java b/src/main/java/org/apache/commons/math4/distribution/IntegerDistribution.java index 34a51d0..5d55f98 100644 --- a/src/main/java/org/apache/commons/math4/distribution/IntegerDistribution.java +++ b/src/main/java/org/apache/commons/math4/distribution/IntegerDistribution.java @@ -16,6 +16,7 @@ */ package org.apache.commons.math4.distribution; +import org.apache.commons.statistics.distribution.DiscreteDistribution; import org.apache.commons.math4.exception.NumberIsTooLargeException; import org.apache.commons.math4.exception.OutOfRangeException; import org.apache.commons.rng.UniformRandomProvider; @@ -157,7 +158,7 @@ public interface IntegerDistribution { /** * Sampling functionality. */ - interface Sampler { + interface Sampler extends DiscreteDistribution.Sampler { /** * Generates a random value sampled from this distribution. * http://git-wip-us.apache.org/repos/asf/commons-math/blob/c4218b83/src/main/java/org/apache/commons/math4/distribution/RealDistribution.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/math4/distribution/RealDistribution.java b/src/main/java/org/apache/commons/math4/distribution/RealDistribution.java index baaf747..45511e1 100644 --- a/src/main/java/org/apache/commons/math4/distribution/RealDistribution.java +++ b/src/main/java/org/apache/commons/math4/distribution/RealDistribution.java @@ -16,6 +16,7 @@ */ package org.apache.commons.math4.distribution; +import org.apache.commons.statistics.distribution.ContinuousDistribution; import org.apache.commons.math4.exception.NumberIsTooLargeException; import org.apache.commons.math4.exception.OutOfRangeException; import org.apache.commons.rng.UniformRandomProvider; @@ -172,7 +173,7 @@ public interface RealDistribution { /** * Sampling functionality. */ - interface Sampler { + interface Sampler extends ContinuousDistribution.Sampler { /** * Generates a random value sampled from this distribution. * http://git-wip-us.apache.org/repos/asf/commons-math/blob/c4218b83/src/main/java/org/apache/commons/math4/optim/nonlinear/scalar/noderiv/CMAESOptimizer.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/math4/optim/nonlinear/scalar/noderiv/CMAESOptimizer.java b/src/main/java/org/apache/commons/math4/optim/nonlinear/scalar/noderiv/CMAESOptimizer.java index 146633e..d207845 100644 --- a/src/main/java/org/apache/commons/math4/optim/nonlinear/scalar/noderiv/CMAESOptimizer.java +++ b/src/main/java/org/apache/commons/math4/optim/nonlinear/scalar/noderiv/CMAESOptimizer.java @@ -238,7 +238,7 @@ public class CMAESOptimizer this.isActiveCMA = isActiveCMA; this.diagonalOnly = diagonalOnly; this.checkFeasableCount = checkFeasableCount; - this.random = new NormalDistribution().createSampler(rng); + this.random = new NormalDistribution(0, 1).createSampler(rng); this.generateStatistics = generateStatistics; } http://git-wip-us.apache.org/repos/asf/commons-math/blob/c4218b83/src/main/java/org/apache/commons/math4/stat/inference/InferenceTestUtils.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/math4/stat/inference/InferenceTestUtils.java b/src/main/java/org/apache/commons/math4/stat/inference/InferenceTestUtils.java index c9e70d4..6ed340b 100644 --- a/src/main/java/org/apache/commons/math4/stat/inference/InferenceTestUtils.java +++ b/src/main/java/org/apache/commons/math4/stat/inference/InferenceTestUtils.java @@ -19,7 +19,7 @@ package org.apache.commons.math4.stat.inference; import java.util.Collection; import org.apache.commons.rng.UniformRandomProvider; -import org.apache.commons.math4.distribution.RealDistribution; +import org.apache.commons.statistics.distribution.ContinuousDistribution; import org.apache.commons.math4.exception.ConvergenceException; import org.apache.commons.math4.exception.DimensionMismatchException; import org.apache.commons.math4.exception.InsufficientDataException; @@ -606,10 +606,10 @@ public class InferenceTestUtils { * @param dist reference distribution * @param data sample being evaluated * @return Kolmogorov-Smirnov statistic \(D_n\) - * @see org.apache.commons.math4.stat.inference.KolmogorovSmirnovTest#kolmogorovSmirnovStatistic(RealDistribution, double[]) + * @see org.apache.commons.math4.stat.inference.KolmogorovSmirnovTest#kolmogorovSmirnovStatistic(ContinuousDistribution, double[]) * @since 3.3 */ - public static double kolmogorovSmirnovStatistic(RealDistribution dist, double[] data) + public static double kolmogorovSmirnovStatistic(ContinuousDistribution dist, double[] data) throws InsufficientDataException, NullArgumentException { return KS_TEST.kolmogorovSmirnovStatistic(dist, data); } @@ -619,10 +619,10 @@ public class InferenceTestUtils { * @param data sample being being evaluated * @return the p-value associated with the null hypothesis that {@code data} is a sample from * {@code distribution} - * @see org.apache.commons.math4.stat.inference.KolmogorovSmirnovTest#kolmogorovSmirnovTest(RealDistribution, double[]) + * @see org.apache.commons.math4.stat.inference.KolmogorovSmirnovTest#kolmogorovSmirnovTest(ContinuousDistribution, double[]) * @since 3.3 */ - public static double kolmogorovSmirnovTest(RealDistribution dist, double[] data) + public static double kolmogorovSmirnovTest(ContinuousDistribution dist, double[] data) throws InsufficientDataException, NullArgumentException { return KS_TEST.kolmogorovSmirnovTest(dist, data); } @@ -633,10 +633,10 @@ public class InferenceTestUtils { * @param strict whether or not to force exact computation of the p-value * @return the p-value associated with the null hypothesis that {@code data} is a sample from * {@code distribution} - * @see org.apache.commons.math4.stat.inference.KolmogorovSmirnovTest#kolmogorovSmirnovTest(RealDistribution, double[], boolean) + * @see org.apache.commons.math4.stat.inference.KolmogorovSmirnovTest#kolmogorovSmirnovTest(ContinuousDistribution, double[], boolean) * @since 3.3 */ - public static double kolmogorovSmirnovTest(RealDistribution dist, double[] data, boolean strict) + public static double kolmogorovSmirnovTest(ContinuousDistribution dist, double[] data, boolean strict) throws InsufficientDataException, NullArgumentException { return KS_TEST.kolmogorovSmirnovTest(dist, data, strict); } @@ -647,10 +647,10 @@ public class InferenceTestUtils { * @param alpha significance level of the test * @return true iff the null hypothesis that {@code data} is a sample from {@code distribution} * can be rejected with confidence 1 - {@code alpha} - * @see org.apache.commons.math4.stat.inference.KolmogorovSmirnovTest#kolmogorovSmirnovTest(RealDistribution, double[], double) + * @see org.apache.commons.math4.stat.inference.KolmogorovSmirnovTest#kolmogorovSmirnovTest(ContinuousDistribution, double[], double) * @since 3.3 */ - public static boolean kolmogorovSmirnovTest(RealDistribution dist, double[] data, double alpha) + public static boolean kolmogorovSmirnovTest(ContinuousDistribution dist, double[] data, double alpha) throws InsufficientDataException, NullArgumentException { return KS_TEST.kolmogorovSmirnovTest(dist, data, alpha); } http://git-wip-us.apache.org/repos/asf/commons-math/blob/c4218b83/src/main/java/org/apache/commons/math4/stat/inference/KolmogorovSmirnovTest.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/math4/stat/inference/KolmogorovSmirnovTest.java b/src/main/java/org/apache/commons/math4/stat/inference/KolmogorovSmirnovTest.java index 4b850c0..153d1d6 100644 --- a/src/main/java/org/apache/commons/math4/stat/inference/KolmogorovSmirnovTest.java +++ b/src/main/java/org/apache/commons/math4/stat/inference/KolmogorovSmirnovTest.java @@ -22,9 +22,9 @@ import java.util.Arrays; import org.apache.commons.rng.simple.RandomSource; import org.apache.commons.rng.UniformRandomProvider; +import org.apache.commons.statistics.distribution.ContinuousDistribution; import org.apache.commons.numbers.combinatorics.BinomialCoefficientDouble; import org.apache.commons.math4.distribution.EnumeratedRealDistribution; -import org.apache.commons.math4.distribution.RealDistribution; import org.apache.commons.math4.distribution.AbstractRealDistribution; import org.apache.commons.math4.exception.InsufficientDataException; import org.apache.commons.math4.exception.MathArithmeticException; @@ -144,7 +144,7 @@ public class KolmogorovSmirnovTest { * @throws InsufficientDataException if {@code data} does not have length at least 2 * @throws NullArgumentException if {@code data} is null */ - public double kolmogorovSmirnovTest(RealDistribution distribution, double[] data, boolean exact) { + public double kolmogorovSmirnovTest(ContinuousDistribution distribution, double[] data, boolean exact) { return 1d - cdf(kolmogorovSmirnovStatistic(distribution, data), data.length, exact); } @@ -160,7 +160,7 @@ public class KolmogorovSmirnovTest { * @throws InsufficientDataException if {@code data} does not have length at least 2 * @throws NullArgumentException if {@code data} is null */ - public double kolmogorovSmirnovStatistic(RealDistribution distribution, double[] data) { + public double kolmogorovSmirnovStatistic(ContinuousDistribution distribution, double[] data) { checkArray(data); final int n = data.length; final double nd = n; @@ -224,7 +224,7 @@ public class KolmogorovSmirnovTest { * href="http://en.wikipedia.org/wiki/Kolmogorov-Smirnov_test"> Kolmogorov-Smirnov test</a> * evaluating the null hypothesis that {@code x} and {@code y} are samples drawn from the same * probability distribution. Assumes the strict form of the inequality used to compute the - * p-value. See {@link #kolmogorovSmirnovTest(RealDistribution, double[], boolean)}. + * p-value. See {@link #kolmogorovSmirnovTest(ContinuousDistribution, double[], boolean)}. * * @param x first sample dataset * @param y second sample dataset @@ -320,7 +320,7 @@ public class KolmogorovSmirnovTest { * @throws InsufficientDataException if {@code data} does not have length at least 2 * @throws NullArgumentException if {@code data} is null */ - public double kolmogorovSmirnovTest(RealDistribution distribution, double[] data) { + public double kolmogorovSmirnovTest(ContinuousDistribution distribution, double[] data) { return kolmogorovSmirnovTest(distribution, data, false); } @@ -336,7 +336,7 @@ public class KolmogorovSmirnovTest { * @throws InsufficientDataException if {@code data} does not have length at least 2 * @throws NullArgumentException if {@code data} is null */ - public boolean kolmogorovSmirnovTest(RealDistribution distribution, double[] data, double alpha) { + public boolean kolmogorovSmirnovTest(ContinuousDistribution distribution, double[] data, double alpha) { if ((alpha <= 0) || (alpha > 0.5)) { throw new OutOfRangeException(LocalizedFormats.OUT_OF_BOUND_SIGNIFICANCE_LEVEL, alpha, 0, 0.5); } @@ -375,7 +375,7 @@ public class KolmogorovSmirnovTest { final double[] combined = new double[xLength + yLength]; System.arraycopy(x, 0, combined, 0, xLength); System.arraycopy(y, 0, combined, xLength, yLength); - final RealDistribution.Sampler sampler = new EnumeratedRealDistribution(combined).createSampler(rng); + final ContinuousDistribution.Sampler sampler = new EnumeratedRealDistribution(combined).createSampler(rng); final long d = integralKolmogorovSmirnovStatistic(x, y); int greaterCount = 0; int equalCount = 0; http://git-wip-us.apache.org/repos/asf/commons-math/blob/c4218b83/src/main/java/org/apache/commons/math4/stat/interval/AgrestiCoullInterval.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/math4/stat/interval/AgrestiCoullInterval.java b/src/main/java/org/apache/commons/math4/stat/interval/AgrestiCoullInterval.java index 7318ab9..9b9dded 100644 --- a/src/main/java/org/apache/commons/math4/stat/interval/AgrestiCoullInterval.java +++ b/src/main/java/org/apache/commons/math4/stat/interval/AgrestiCoullInterval.java @@ -34,7 +34,7 @@ public class AgrestiCoullInterval implements BinomialConfidenceInterval { public ConfidenceInterval createInterval(int numberOfTrials, int numberOfSuccesses, double confidenceLevel) { IntervalUtils.checkParameters(numberOfTrials, numberOfSuccesses, confidenceLevel); final double alpha = (1.0 - confidenceLevel) / 2; - final NormalDistribution normalDistribution = new NormalDistribution(); + final NormalDistribution normalDistribution = new NormalDistribution(0, 1); final double z = normalDistribution.inverseCumulativeProbability(1 - alpha); final double zSquared = FastMath.pow(z, 2); final double modifiedNumberOfTrials = numberOfTrials + zSquared; http://git-wip-us.apache.org/repos/asf/commons-math/blob/c4218b83/src/main/java/org/apache/commons/math4/stat/interval/NormalApproximationInterval.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/math4/stat/interval/NormalApproximationInterval.java b/src/main/java/org/apache/commons/math4/stat/interval/NormalApproximationInterval.java index 1f59c8f..9c63d33 100644 --- a/src/main/java/org/apache/commons/math4/stat/interval/NormalApproximationInterval.java +++ b/src/main/java/org/apache/commons/math4/stat/interval/NormalApproximationInterval.java @@ -36,7 +36,7 @@ public class NormalApproximationInterval implements BinomialConfidenceInterval { IntervalUtils.checkParameters(numberOfTrials, numberOfSuccesses, confidenceLevel); final double mean = (double) numberOfSuccesses / (double) numberOfTrials; final double alpha = (1.0 - confidenceLevel) / 2; - final NormalDistribution normalDistribution = new NormalDistribution(); + final NormalDistribution normalDistribution = new NormalDistribution(0, 1); final double difference = normalDistribution.inverseCumulativeProbability(1 - alpha) * FastMath.sqrt(1.0 / numberOfTrials * mean * (1 - mean)); return new ConfidenceInterval(mean - difference, mean + difference, confidenceLevel); http://git-wip-us.apache.org/repos/asf/commons-math/blob/c4218b83/src/main/java/org/apache/commons/math4/stat/interval/WilsonScoreInterval.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/math4/stat/interval/WilsonScoreInterval.java b/src/main/java/org/apache/commons/math4/stat/interval/WilsonScoreInterval.java index 7facd61..7881ec9 100644 --- a/src/main/java/org/apache/commons/math4/stat/interval/WilsonScoreInterval.java +++ b/src/main/java/org/apache/commons/math4/stat/interval/WilsonScoreInterval.java @@ -32,7 +32,7 @@ public class WilsonScoreInterval implements BinomialConfidenceInterval { public ConfidenceInterval createInterval(int numberOfTrials, int numberOfSuccesses, double confidenceLevel) { IntervalUtils.checkParameters(numberOfTrials, numberOfSuccesses, confidenceLevel); final double alpha = (1 - confidenceLevel) / 2; - final NormalDistribution normalDistribution = new NormalDistribution(); + final NormalDistribution normalDistribution = new NormalDistribution(0, 1); final double z = normalDistribution.inverseCumulativeProbability(1 - alpha); final double zSquared = z * z; final double oneOverNumTrials = 1d / numberOfTrials; http://git-wip-us.apache.org/repos/asf/commons-math/blob/c4218b83/src/test/java/org/apache/commons/math4/distribution/BetaDistributionTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/math4/distribution/BetaDistributionTest.java b/src/test/java/org/apache/commons/math4/distribution/BetaDistributionTest.java index cf5b58f..bcf5865 100644 --- a/src/test/java/org/apache/commons/math4/distribution/BetaDistributionTest.java +++ b/src/test/java/org/apache/commons/math4/distribution/BetaDistributionTest.java @@ -18,6 +18,7 @@ package org.apache.commons.math4.distribution; import java.util.Arrays; +import org.apache.commons.statistics.distribution.ContinuousDistribution; import org.apache.commons.rng.simple.RandomSource; import org.apache.commons.rng.UniformRandomProvider; import org.apache.commons.math4.stat.StatUtils; @@ -346,9 +347,10 @@ public class BetaDistributionTest { final double level = 0.01; for (final double alpha : alphaBetas) { for (final double beta : alphaBetas) { - final BetaDistribution betaDistribution = new BetaDistribution(alpha, beta); + final org.apache.commons.statistics.distribution.BetaDistribution betaDistribution = + new org.apache.commons.statistics.distribution.BetaDistribution(alpha, beta); - final RealDistribution.Sampler sampler = betaDistribution.createSampler(rng); + final ContinuousDistribution.Sampler sampler = betaDistribution.createSampler(rng); final double[] observed = AbstractRealDistribution.sample(numSamples, sampler); Assert.assertFalse("G goodness-of-fit test rejected null at alpha = " + level, @@ -359,7 +361,7 @@ public class BetaDistributionTest { } } - private double gTest(final RealDistribution expectedDistribution, final double[] values) { + private double gTest(final ContinuousDistribution expectedDistribution, final double[] values) { final int numBins = values.length / 30; final double[] breaks = new double[numBins]; for (int b = 0; b < breaks.length; b++) { http://git-wip-us.apache.org/repos/asf/commons-math/blob/c4218b83/src/test/java/org/apache/commons/math4/distribution/EnumeratedRealDistributionTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/math4/distribution/EnumeratedRealDistributionTest.java b/src/test/java/org/apache/commons/math4/distribution/EnumeratedRealDistributionTest.java index 77abceb..def4d06 100644 --- a/src/test/java/org/apache/commons/math4/distribution/EnumeratedRealDistributionTest.java +++ b/src/test/java/org/apache/commons/math4/distribution/EnumeratedRealDistributionTest.java @@ -21,6 +21,7 @@ import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.List; +import org.apache.commons.statistics.distribution.ContinuousDistribution; import org.apache.commons.math4.distribution.EnumeratedDistribution; import org.apache.commons.math4.distribution.EnumeratedRealDistribution; import org.apache.commons.math4.exception.DimensionMismatchException; @@ -136,7 +137,7 @@ public class EnumeratedRealDistributionTest { */ @Test public void testGetNumericalMean() { - Assert.assertEquals(3.4, testDistribution.getNumericalMean(), 1e-10); + Assert.assertEquals(3.4, testDistribution.getMean(), 1e-10); } /** @@ -144,7 +145,7 @@ public class EnumeratedRealDistributionTest { */ @Test public void testGetNumericalVariance() { - Assert.assertEquals(7.84, testDistribution.getNumericalVariance(), 1e-10); + Assert.assertEquals(7.84, testDistribution.getVariance(), 1e-10); } /** @@ -177,7 +178,7 @@ public class EnumeratedRealDistributionTest { @Test public void testSample() { final int n = 1000000; - final RealDistribution.Sampler sampler = + final ContinuousDistribution.Sampler sampler = testDistribution.createSampler(RandomSource.create(RandomSource.WELL_1024_A, -123456789)); final double[] samples = AbstractRealDistribution.sample(n, sampler); Assert.assertEquals(n, samples.length); @@ -187,9 +188,9 @@ public class EnumeratedRealDistributionTest { sum += samples[i]; sumOfSquares += samples[i] * samples[i]; } - Assert.assertEquals(testDistribution.getNumericalMean(), + Assert.assertEquals(testDistribution.getMean(), sum / n, 1e-2); - Assert.assertEquals(testDistribution.getNumericalVariance(), + Assert.assertEquals(testDistribution.getVariance(), sumOfSquares / n - FastMath.pow(sum / n, 2), 1e-2); } http://git-wip-us.apache.org/repos/asf/commons-math/blob/c4218b83/src/test/java/org/apache/commons/math4/stat/descriptive/rank/PSquarePercentileTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/math4/stat/descriptive/rank/PSquarePercentileTest.java b/src/test/java/org/apache/commons/math4/stat/descriptive/rank/PSquarePercentileTest.java index 6380d12..ea985dd 100644 --- a/src/test/java/org/apache/commons/math4/stat/descriptive/rank/PSquarePercentileTest.java +++ b/src/test/java/org/apache/commons/math4/stat/descriptive/rank/PSquarePercentileTest.java @@ -24,9 +24,9 @@ import java.util.Iterator; import java.util.LinkedHashSet; import java.util.Set; -import org.apache.commons.math4.distribution.LogNormalDistribution; -import org.apache.commons.math4.distribution.NormalDistribution; -import org.apache.commons.math4.distribution.RealDistribution; +import org.apache.commons.statistics.distribution.LogNormalDistribution; +import org.apache.commons.statistics.distribution.NormalDistribution; +import org.apache.commons.statistics.distribution.ContinuousDistribution; import org.apache.commons.math4.distribution.AbstractRealDistribution; import org.apache.commons.math4.exception.MathIllegalArgumentException; import org.apache.commons.math4.exception.NullArgumentException; @@ -709,8 +709,8 @@ public class PSquarePercentileTest extends STANDARD = 1000, BIG = 10000, VERY_BIG = 50000, LARGE = 1000000, VERY_LARGE = 10000000; - private void doDistributionTest(RealDistribution distribution) { - final RealDistribution.Sampler sampler = + private void doDistributionTest(ContinuousDistribution distribution) { + final ContinuousDistribution.Sampler sampler = distribution.createSampler(RandomSource.create(RandomSource.WELL_19937_C, 1000)); double data[]; http://git-wip-us.apache.org/repos/asf/commons-math/blob/c4218b83/src/test/java/org/apache/commons/math4/stat/inference/InferenceTestUtilsTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/math4/stat/inference/InferenceTestUtilsTest.java b/src/test/java/org/apache/commons/math4/stat/inference/InferenceTestUtilsTest.java index aa6b10f..6b9f1b7 100644 --- a/src/test/java/org/apache/commons/math4/stat/inference/InferenceTestUtilsTest.java +++ b/src/test/java/org/apache/commons/math4/stat/inference/InferenceTestUtilsTest.java @@ -19,7 +19,7 @@ package org.apache.commons.math4.stat.inference; import java.util.ArrayList; import java.util.List; -import org.apache.commons.math4.distribution.NormalDistribution; +import org.apache.commons.statistics.distribution.NormalDistribution; import org.apache.commons.math4.exception.DimensionMismatchException; import org.apache.commons.math4.exception.NotPositiveException; import org.apache.commons.math4.exception.NotStrictlyPositiveException; http://git-wip-us.apache.org/repos/asf/commons-math/blob/c4218b83/src/test/java/org/apache/commons/math4/stat/inference/KolmogorovSmirnovTestTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/math4/stat/inference/KolmogorovSmirnovTestTest.java b/src/test/java/org/apache/commons/math4/stat/inference/KolmogorovSmirnovTestTest.java index 66cc387..d1d4fcf 100644 --- a/src/test/java/org/apache/commons/math4/stat/inference/KolmogorovSmirnovTestTest.java +++ b/src/test/java/org/apache/commons/math4/stat/inference/KolmogorovSmirnovTestTest.java @@ -21,8 +21,8 @@ import java.lang.reflect.Method; import java.util.Arrays; import org.apache.commons.math4.TestUtils; -import org.apache.commons.math4.distribution.NormalDistribution; -import org.apache.commons.math4.distribution.UniformRealDistribution; +import org.apache.commons.statistics.distribution.NormalDistribution; +import org.apache.commons.statistics.distribution.UniformContinuousDistribution; import org.apache.commons.rng.simple.RandomSource; import org.apache.commons.rng.UniformRandomProvider; import org.apache.commons.numbers.combinatorics.BinomialCoefficient; @@ -142,7 +142,7 @@ public class KolmogorovSmirnovTestTest { // @Test - takes about 6 seconds, uncomment for public void testOneSampleUniformUniform() { final KolmogorovSmirnovTest test = new KolmogorovSmirnovTest(); - final UniformRealDistribution unif = new UniformRealDistribution(-0.5, 0.5); + final UniformContinuousDistribution unif = new UniformContinuousDistribution(-0.5, 0.5); Assert.assertEquals(8.881784197001252E-16, test.kolmogorovSmirnovTest(unif, uniform, false), TOLERANCE); Assert.assertTrue(test.kolmogorovSmirnovTest(unif, uniform, 0.05)); Assert.assertEquals(0.5400666982352942, test.kolmogorovSmirnovStatistic(unif, uniform), TOLERANCE); @@ -152,7 +152,7 @@ public class KolmogorovSmirnovTestTest { @Test public void testOneSampleUniformUniformSmallSample() { final KolmogorovSmirnovTest test = new KolmogorovSmirnovTest(); - final UniformRealDistribution unif = new UniformRealDistribution(-0.5, 0.5); + final UniformContinuousDistribution unif = new UniformContinuousDistribution(-0.5, 0.5); final double[] shortUniform = new double[20]; System.arraycopy(uniform, 0, shortUniform, 0, 20); Assert.assertEquals(4.117594598618268E-9, test.kolmogorovSmirnovTest(unif, shortUniform, false), TOLERANCE); @@ -164,7 +164,7 @@ public class KolmogorovSmirnovTestTest { @Test public void testOneSampleUniformGaussian() { final KolmogorovSmirnovTest test = new KolmogorovSmirnovTest(); - final UniformRealDistribution unif = new UniformRealDistribution(-0.5, 0.5); + final UniformContinuousDistribution unif = new UniformContinuousDistribution(-0.5, 0.5); // Value was obtained via exact test, validated against R. Running exact test takes a long // time. Assert.assertEquals(4.9405812774239166E-11, test.kolmogorovSmirnovTest(unif, gaussian, false), TOLERANCE);