Class AbstractRealDistribution
- java.lang.Object
-
- org.apache.commons.math4.legacy.distribution.AbstractRealDistribution
-
- All Implemented Interfaces:
org.apache.commons.statistics.distribution.ContinuousDistribution
- Direct Known Subclasses:
EmpiricalDistribution
public abstract class AbstractRealDistribution extends Object implements org.apache.commons.statistics.distribution.ContinuousDistribution
Base class for probability distributions on the reals. Default implementations are provided for some of the methods that do not vary from distribution to distribution.This base class provides a default factory method for creating a
sampler instance
that uses the inversion method for generating random samples that follow the distribution.- Since:
- 3.0
-
-
Field Summary
Fields Modifier and Type Field Description static double
SOLVER_DEFAULT_ABSOLUTE_ACCURACY
Default absolute accuracy for inverse cumulative computation.
-
Constructor Summary
Constructors Constructor Description AbstractRealDistribution()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description org.apache.commons.statistics.distribution.ContinuousDistribution.Sampler
createSampler(org.apache.commons.rng.UniformRandomProvider rng)
protected double
getSolverAbsoluteAccuracy()
Returns the solver absolute accuracy for inverse cumulative computation.double
inverseCumulativeProbability(double p)
The default implementation returnsContinuousDistribution.getSupportLowerBound()
forp = 0
,ContinuousDistribution.getSupportUpperBound()
forp = 1
.double
logDensity(double x)
double
probability(double x0, double x1)
For a random variableX
whose values are distributed according to this distribution, this method returnsP(x0 < X <= x1)
.static double[]
sample(int n, org.apache.commons.statistics.distribution.ContinuousDistribution.Sampler sampler)
Utility function for allocating an array and filling it withn
samples generated by the givensampler
.
-
-
-
Field Detail
-
SOLVER_DEFAULT_ABSOLUTE_ACCURACY
public static final double SOLVER_DEFAULT_ABSOLUTE_ACCURACY
Default absolute accuracy for inverse cumulative computation.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
AbstractRealDistribution
public AbstractRealDistribution()
-
-
Method Detail
-
probability
public double probability(double x0, double x1)
For a random variableX
whose values are distributed according to this distribution, this method returnsP(x0 < X <= x1)
.- Specified by:
probability
in interfaceorg.apache.commons.statistics.distribution.ContinuousDistribution
- Parameters:
x0
- Lower bound (excluded).x1
- Upper bound (included).- Returns:
- the probability that a random variable with this distribution
takes a value between
x0
andx1
, excluding the lower and including the upper endpoint. - Throws:
NumberIsTooLargeException
- ifx0 > x1
. The default implementation uses the identityP(x0 < X <= x1) = P(X <= x1) - P(X <= x0)
- Since:
- 3.1
-
inverseCumulativeProbability
public double inverseCumulativeProbability(double p) throws OutOfRangeException
The default implementation returnsContinuousDistribution.getSupportLowerBound()
forp = 0
,ContinuousDistribution.getSupportUpperBound()
forp = 1
.
- Specified by:
inverseCumulativeProbability
in interfaceorg.apache.commons.statistics.distribution.ContinuousDistribution
- Throws:
OutOfRangeException
-
getSolverAbsoluteAccuracy
protected double getSolverAbsoluteAccuracy()
Returns the solver absolute accuracy for inverse cumulative computation. You can override this method in order to use a Brent solver with an absolute accuracy different from the default.- Returns:
- the maximum absolute error in inverse cumulative probability estimates
-
logDensity
public double logDensity(double x)
The default implementation simply computes the logarithm of
density(x)
.- Specified by:
logDensity
in interfaceorg.apache.commons.statistics.distribution.ContinuousDistribution
-
sample
public static double[] sample(int n, org.apache.commons.statistics.distribution.ContinuousDistribution.Sampler sampler)
Utility function for allocating an array and filling it withn
samples generated by the givensampler
.- Parameters:
n
- Number of samples.sampler
- Sampler.- Returns:
- an array of size
n
.
-
createSampler
public org.apache.commons.statistics.distribution.ContinuousDistribution.Sampler createSampler(org.apache.commons.rng.UniformRandomProvider rng)
- Specified by:
createSampler
in interfaceorg.apache.commons.statistics.distribution.ContinuousDistribution
-
-