Class EnumeratedIntegerDistribution
- java.lang.Object
-
- org.apache.commons.math4.distribution.AbstractIntegerDistribution
-
- org.apache.commons.math4.distribution.EnumeratedIntegerDistribution
-
- All Implemented Interfaces:
java.io.Serializable,IntegerDistribution,DiscreteDistribution
public class EnumeratedIntegerDistribution extends AbstractIntegerDistribution
Implementation of an integer-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.- Since:
- 3.2
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.commons.statistics.distribution.DiscreteDistribution
DiscreteDistribution.Sampler
-
-
Field Summary
Fields Modifier and Type Field Description protected EnumeratedDistribution<java.lang.Integer>innerDistributionEnumeratedDistributioninstance (using theIntegerwrapper) used to generate the pmf.
-
Constructor Summary
Constructors Constructor Description EnumeratedIntegerDistribution(int[] data)Create a discrete integer-valued distribution from the input data.EnumeratedIntegerDistribution(int[] singletons, double[] probabilities)Create a discrete distribution.
-
Method Summary
Modifier and Type Method Description DiscreteDistribution.SamplercreateSampler(UniformRandomProvider rng)Creates a sampler.doublecumulativeProbability(int x)For a random variableXwhose values are distributed according to this distribution, this method returnsP(X <= x).doublegetMean()Gets the mean of this distribution.intgetSupportLowerBound()Gets the lower bound of the support.intgetSupportUpperBound()Gets the upper bound of the support.doublegetVariance()Gets the variance of this distribution.booleanisSupportConnected()Indicates whether the support is connected, i.e.doubleprobability(int x)For a random variableXwhose values are distributed according to this distribution, this method returnsP(X = x).-
Methods inherited from class org.apache.commons.math4.distribution.AbstractIntegerDistribution
inverseCumulativeProbability, logProbability, probability, sample, solveInverseCumulativeProbability
-
-
-
-
Field Detail
-
innerDistribution
protected final EnumeratedDistribution<java.lang.Integer> innerDistribution
EnumeratedDistributioninstance (using theIntegerwrapper) used to generate the pmf.
-
-
Constructor Detail
-
EnumeratedIntegerDistribution
public EnumeratedIntegerDistribution(int[] singletons, double[] probabilities) throws DimensionMismatchException, NotPositiveException, MathArithmeticException, NotFiniteNumberException, NotANumberExceptionCreate a discrete distribution.- Parameters:
singletons- array of random variable values.probabilities- array of probabilities.- Throws:
DimensionMismatchException- ifsingletons.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.
-
EnumeratedIntegerDistribution
public EnumeratedIntegerDistribution(int[] data)
Create a discrete integer-valued distribution from the input data. Values are assigned mass based on their frequency.- Parameters:
data- input dataset
-
-
Method Detail
-
probability
public double probability(int x)
For a random variableXwhose values are distributed according to this distribution, this method returnsP(X = x). In other words, this method represents the probability mass function (PMF) for the distribution.- Parameters:
x- Point at which the PMF is evaluated.- Returns:
- the value of the probability mass function at
x.
-
cumulativeProbability
public double cumulativeProbability(int x)
For a random variableXwhose values are distributed according to this distribution, this method returnsP(X <= x). In other, words, this method represents the (cumulative) distribution function (CDF) for this distribution.- Parameters:
x- Point at which the CDF is evaluated.- Returns:
- the probability that a random variable with this distribution
takes a value less than or equal to
x.
-
getMean
public double getMean()
Gets the mean of this distribution.- Returns:
sum(singletons[i] * probabilities[i])
-
getVariance
public double getVariance()
Gets the variance of this distribution.- Returns:
sum((singletons[i] - mean) ^ 2 * probabilities[i])
-
getSupportLowerBound
public int getSupportLowerBound()
Gets the lower bound of the support. This method must return the same value asinverseCumulativeProbability(0), i.e.inf {x in Z | P(X <= x) > 0}. By convention,Integer.MIN_VALUEshould be substituted for negative infinity. Returns the lowest value with non-zero probability.- Returns:
- the lowest value with non-zero probability.
-
getSupportUpperBound
public int getSupportUpperBound()
Gets the upper bound of the support. This method must return the same value asinverseCumulativeProbability(1), i.e.inf {x in R | P(X <= x) = 1}. By convention,Integer.MAX_VALUEshould be substituted for positive infinity. Returns the highest value with non-zero probability.- Returns:
- the highest value with non-zero probability.
-
isSupportConnected
public boolean isSupportConnected()
Indicates whether the support is connected, i.e. whether all integers between the lower and upper bound of the support are included in the support. The support of this distribution is connected.- Returns:
true
-
createSampler
public DiscreteDistribution.Sampler createSampler(UniformRandomProvider rng)
Creates a sampler.- Specified by:
createSamplerin interfaceDiscreteDistribution- Overrides:
createSamplerin classAbstractIntegerDistribution- Parameters:
rng- Generator of uniformly distributed numbers.- Returns:
- a sampler that produces random numbers according this distribution.
-
-