public class PoissonDistribution extends AbstractIntegerDistribution
Modifier and Type | Field and Description |
---|---|
static double |
DEFAULT_EPSILON
Default convergence criterion.
|
static int |
DEFAULT_MAX_ITERATIONS
Default maximum number of iterations for cumulative probability calculations.
|
private double |
epsilon
Convergence criterion for cumulative probability.
|
private ExponentialDistribution |
exponential
Distribution needed for the
sample() method. |
private int |
maxIterations
Maximum number of iterations for cumulative probability.
|
private double |
mean
Mean of the distribution.
|
private NormalDistribution |
normal
Distribution used to compute normal approximation.
|
private static long |
serialVersionUID
Serializable version identifier.
|
random, randomData
Constructor and Description |
---|
PoissonDistribution(double p)
Creates a new Poisson distribution with specified mean.
|
PoissonDistribution(double p,
double epsilon)
Creates a new Poisson distribution with the specified mean and
convergence criterion.
|
PoissonDistribution(double p,
double epsilon,
int maxIterations)
Creates a new Poisson distribution with specified mean, convergence
criterion and maximum number of iterations.
|
PoissonDistribution(double p,
int maxIterations)
Creates a new Poisson distribution with the specified mean and maximum
number of iterations.
|
PoissonDistribution(RandomGenerator rng,
double p,
double epsilon,
int maxIterations)
Creates a new Poisson distribution with specified mean, convergence
criterion and maximum number of iterations.
|
Modifier and Type | Method and Description |
---|---|
double |
cumulativeProbability(int x)
For a random variable
X whose values are distributed according
to this distribution, this method returns P(X <= x) . |
double |
getMean()
Get the mean for the distribution.
|
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.
|
int |
getSupportLowerBound()
Access the lower bound of the support.
|
int |
getSupportUpperBound()
Access the upper bound of the support.
|
boolean |
isSupportConnected()
Use this method to get information about whether the support is
connected, i.e.
|
private long |
nextPoisson(double meanPoisson) |
double |
normalApproximateProbability(int x)
Calculates the Poisson distribution function using a normal
approximation.
|
double |
probability(int x)
For a random variable
X whose values are distributed according
to this distribution, this method returns P(X = x) . |
int |
sample()
Generate a random value sampled from this distribution.
|
cumulativeProbability, inverseCumulativeProbability, reseedRandomGenerator, sample, solveInverseCumulativeProbability
public static final int DEFAULT_MAX_ITERATIONS
public static final double DEFAULT_EPSILON
private static final long serialVersionUID
private final NormalDistribution normal
private final ExponentialDistribution exponential
sample()
method.private final double mean
private final int maxIterations
Gamma.regularizedGammaP(double, double, double, int)
or continued fraction approximation of
Gamma.regularizedGammaQ(double, double, double, int)
.private final double epsilon
public PoissonDistribution(double p) throws NotStrictlyPositiveException
p
- the Poisson meanNotStrictlyPositiveException
- if p <= 0
.public PoissonDistribution(double p, double epsilon, int maxIterations) throws NotStrictlyPositiveException
p
- Poisson mean.epsilon
- Convergence criterion for cumulative probabilities.maxIterations
- the maximum number of iterations for cumulative
probabilities.NotStrictlyPositiveException
- if p <= 0
.public PoissonDistribution(RandomGenerator rng, double p, double epsilon, int maxIterations) throws NotStrictlyPositiveException
rng
- Random number generator.p
- Poisson mean.epsilon
- Convergence criterion for cumulative probabilities.maxIterations
- the maximum number of iterations for cumulative
probabilities.NotStrictlyPositiveException
- if p <= 0
.public PoissonDistribution(double p, double epsilon) throws NotStrictlyPositiveException
p
- Poisson mean.epsilon
- Convergence criterion for cumulative probabilities.NotStrictlyPositiveException
- if p <= 0
.public PoissonDistribution(double p, int maxIterations)
p
- Poisson mean.maxIterations
- Maximum number of iterations for cumulative
probabilities.public double getMean()
public double probability(int 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 evaluatedx
public double cumulativeProbability(int 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 evaluatedx
public double normalApproximateProbability(int x)
N(mean, sqrt(mean))
distribution is used
to approximate the Poisson distribution. The computation uses
"half-correction" (evaluating the normal distribution function at
x + 0.5
).x
- Upper bound, inclusive.public double getNumericalMean()
p
, the mean is p
.Double.NaN
if it is not definedpublic double getNumericalVariance()
p
, the variance is p
.Double.POSITIVE_INFINITY
or
Double.NaN
if it is not defined)public int getSupportLowerBound()
inverseCumulativeProbability(0)
. In other words, this
method must return
inf {x in Z | P(X <= x) > 0}
.
public int getSupportUpperBound()
inverseCumulativeProbability(1)
. In other words, this
method must return
inf {x in R | P(X <= x) = 1}
.
Integer.MAX_VALUE
.Integer.MAX_VALUE
for
positive infinity)public boolean isSupportConnected()
true
public int sample()
Algorithm Description:
Devroye, Luc. (1981).The Computer Generation of Poisson Random Variables Computing vol. 26 pp. 197-207.
sample
in interface IntegerDistribution
sample
in class AbstractIntegerDistribution
private long nextPoisson(double meanPoisson)
meanPoisson
- Mean of the Poisson distribution.Copyright (c) 2003-2013 Apache Software Foundation