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[] singletons,
double[] probabilities)
Create a discrete distribution using the given probability mass function
enumeration.
|
EnumeratedRealDistribution(RandomGenerator rng,
double[] singletons,
double[] probabilities)
Create a discrete 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
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 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–2014 The Apache Software Foundation. All rights reserved.