public class EnumeratedRealDistribution extends AbstractRealDistribution
Implementation of a real-valued EnumeratedDistribution.
Values with zero-probability are allowed but they do not extend the
support.
Duplicate values are allowed. Probabilities of duplicate values are combined
when computing cumulative probabilities and statistics.
| Modifier and Type | Field and Description |
|---|---|
protected EnumeratedDistribution<Double> |
innerDistribution
EnumeratedDistribution (using the Double wrapper)
used to generate the pmf. |
random, randomData, SOLVER_DEFAULT_ABSOLUTE_ACCURACY| Constructor and Description |
|---|
EnumeratedRealDistribution(double[] data)
Create a discrete real-valued distribution from the input data.
|
EnumeratedRealDistribution(double[] singletons,
double[] probabilities)
Create a discrete real-valued distribution using the given probability mass function
enumeration.
|
EnumeratedRealDistribution(RandomGenerator rng,
double[] data)
Create a discrete real-valued distribution from the input data.
|
EnumeratedRealDistribution(RandomGenerator rng,
double[] singletons,
double[] probabilities)
Create a discrete real-valued distribution using the given random number generator
and probability mass function enumeration.
|
| Modifier and Type | Method and Description |
|---|---|
double |
cumulativeProbability(double x)
For a random variable
X whose values are distributed according
to this distribution, this method returns P(X <= x). |
double |
density(double x)
For a random variable
X whose values are distributed according to
this distribution, this method returns P(X = x). |
double |
getNumericalMean()
Use this method to get the numerical value of the mean of this
distribution.
|
double |
getNumericalVariance()
Use this method to get the numerical value of the variance of this
distribution.
|
double |
getSupportLowerBound()
Access the lower bound of the support.
|
double |
getSupportUpperBound()
Access the upper bound of the support.
|
double |
inverseCumulativeProbability(double p)
Computes the quantile function of this distribution.
|
boolean |
isSupportConnected()
Use this method to get information about whether the support is connected,
i.e.
|
boolean |
isSupportLowerBoundInclusive()
Whether or not the lower bound of support is in the domain of the density
function.
|
boolean |
isSupportUpperBoundInclusive()
Whether or not the upper bound of support is in the domain of the density
function.
|
double |
probability(double x)
For a random variable
X whose values are distributed according
to this distribution, this method returns P(X = x). |
double |
sample()
Generate a random value sampled from this distribution.
|
cumulativeProbability, getSolverAbsoluteAccuracy, logDensity, probability, reseedRandomGenerator, sampleprotected final EnumeratedDistribution<Double> innerDistribution
EnumeratedDistribution (using the Double wrapper)
used to generate the pmf.public EnumeratedRealDistribution(double[] singletons,
double[] probabilities)
throws DimensionMismatchException,
NotPositiveException,
MathArithmeticException,
NotFiniteNumberException,
NotANumberException
Note: this constructor will implicitly create an instance of
Well19937c as random generator to be used for sampling only (see
sample() and AbstractRealDistribution.sample(int)). In case no sampling is
needed for the created distribution, it is advised to pass null
as random generator via the appropriate constructors to avoid the
additional initialisation overhead.
singletons - array of random variable values.probabilities - array of probabilities.DimensionMismatchException - if
singletons.length != probabilities.lengthNotPositiveException - if any of the probabilities are negative.NotFiniteNumberException - if any of the probabilities are infinite.NotANumberException - if any of the probabilities are NaN.MathArithmeticException - all of the probabilities are 0.public EnumeratedRealDistribution(RandomGenerator rng, double[] singletons, double[] probabilities) throws DimensionMismatchException, NotPositiveException, MathArithmeticException, NotFiniteNumberException, NotANumberException
rng - random number generator.singletons - array of random variable values.probabilities - array of probabilities.DimensionMismatchException - if
singletons.length != probabilities.lengthNotPositiveException - if any of the probabilities are negative.NotFiniteNumberException - if any of the probabilities are infinite.NotANumberException - if any of the probabilities are NaN.MathArithmeticException - all of the probabilities are 0.public EnumeratedRealDistribution(RandomGenerator rng, double[] data)
rng - random number generator used for samplingdata - input datasetpublic EnumeratedRealDistribution(double[] data)
data - input datasetpublic double probability(double x)
X whose values are distributed according
to this distribution, this method returns P(X = x). In other
words, this method represents the probability mass function (PMF)
for the distribution.probability in interface RealDistributionprobability in class AbstractRealDistributionx - the point at which the PMF is evaluatedpublic double density(double x)
X whose values are distributed according to
this distribution, this method returns P(X = x). In other words,
this method represents the probability mass function (PMF) for the
distribution.x - the point at which the PMF is evaluatedxpublic double cumulativeProbability(double x)
X whose values are distributed according
to this distribution, this method returns P(X <= x). In other
words, this method represents the (cumulative) distribution function
(CDF) for this distribution.x - the point at which the CDF is evaluatedxpublic double inverseCumulativeProbability(double p)
throws OutOfRangeException
X distributed according to this distribution, the
returned value is
inf{x in R | P(X<=x) >= p} for 0 < p <= 1,inf{x in R | P(X<=x) > 0} for p = 0.RealDistribution.getSupportLowerBound() for p = 0,RealDistribution.getSupportUpperBound() for p = 1.inverseCumulativeProbability in interface RealDistributioninverseCumulativeProbability in class AbstractRealDistributionp - the cumulative probabilityp-quantile of this distribution
(largest 0-quantile for p = 0)OutOfRangeException - if p < 0 or p > 1public double getNumericalMean()
sum(singletons[i] * probabilities[i])public double getNumericalVariance()
sum((singletons[i] - mean) ^ 2 * probabilities[i])public double getSupportLowerBound()
inverseCumulativeProbability(0). In other words, this
method must return
inf {x in R | P(X <= x) > 0}.
public double getSupportUpperBound()
inverseCumulativeProbability(1). In other words, this
method must return
inf {x in R | P(X <= x) = 1}.
public boolean isSupportLowerBoundInclusive()
getSupporLowerBound() is finite and
density(getSupportLowerBound()) returns a non-NaN, non-infinite
value.
The support of this distribution includes the lower bound.truepublic boolean isSupportUpperBoundInclusive()
getSupportUpperBound() is finite and
density(getSupportUpperBound()) returns a non-NaN, non-infinite
value.
The support of this distribution includes the upper bound.truepublic boolean isSupportConnected()
truepublic double sample()
sample in interface RealDistributionsample in class AbstractRealDistributionCopyright © 2003–2016 The Apache Software Foundation. All rights reserved.