SSJ
V. 1.2.5.

umontreal.iro.lecuyer.probdist
Class PoissonDist

java.lang.Object
  extended by umontreal.iro.lecuyer.probdist.DiscreteDistributionInt
      extended by umontreal.iro.lecuyer.probdist.PoissonDist
All Implemented Interfaces:
Distribution

public class PoissonDist
extends DiscreteDistributionInt

Extends the class DiscreteDistributionInt for the Poisson distribution with mean λ >=  0. The mass function is

p(x) = e-λλx/(x!),        for x = 0, 1,...

and the distribution function is

F(x) = e-λj=0x  λj/(j!),        for x = 0, 1,....

If one has to compute p(x) and/or F(x) for several values of x with the same λ, where λ is not too large, then it is more efficient to instantiate an object and use the non-static methods, since the functions will then be computed once and kept in arrays.

For the static methods that compute F(x) and bar(F)(x), we exploit the relationship F(x) = 1 - Gx+1(λ), where Gx+1 is the gamma distribution function with parameters (α, λ) = (x + 1, 1).


Field Summary
static double MAXLAMBDA
           
 
Fields inherited from class umontreal.iro.lecuyer.probdist.DiscreteDistributionInt
EPSILON
 
Constructor Summary
PoissonDist(double lambda)
          Creates an object that contains the probability and distribution functions, for the Poisson distribution with parameter lambda, which are computed and stored in dynamic arrays inside that object.
 
Method Summary
static double barF(double lambda, int x)
          Computes and returns the value of the complementary Poisson distribution function, bar(F)(x), for λ = lambda.
 double barF(int x)
          Returns bar(F)(x), the complementary distribution function.
static double cdf(double lambda, int x)
          Computes and returns the value of the Poisson distribution function, F(x), for λ = lambda.
 double cdf(int x)
          Returns the distribution function F evaluated at x (see).
static PoissonDist getInstanceFromMLE(int[] x, int n)
          Creates a new instance of a Poisson distribution with parameter λ estimated using the maximum likelihood method based on the n observations in table x[i], i = 0, 1,…, n - 1.
 double getLambda()
          Returns the λ associated with this object.
static double[] getMaximumLikelihoodEstimate(int[] x, int n)
          Estimates and returns the parameter [ hat(λ)] of the Poisson distribution using the maximum likelihood method based on the n observations in table x[i], i = 0, 1,…, n - 1.
 double getMean()
          Returns the mean of the distribution function.
static double getMean(double lambda)
          Computes and returns the mean E[X] = λ of the Poisson distribution with parameter λ.
 double[] getParams()
          Return a table containing the parameter of the current distribution.
 double getStandardDeviation()
          Returns the standard deviation of the distribution function.
static double getStandardDeviation(double lambda)
          Computes and returns the standard deviation of the Poisson distribution with parameter λ.
 double getVariance()
          Returns the variance of the distribution function.
static double getVariance(double lambda)
          Computes and returns the variance = λ of the Poisson distribution with parameter λ.
static int inverseF(double lambda, double u)
          Performs a linear search to get the inverse function without precomputed tables.
 int inverseFInt(double u)
          Returns the inverse distribution function F-1(u), where 0 <= u <= 1.
static double prob(double lambda, int x)
          Computes and returns the value of the Poisson probability p(x), for λ = lambda.
 double prob(int x)
          Returns p(x), the probability of x, which should be a real number in the interval [0, 1].
 void setLambda(double lambda)
          Sets the λ associated with this object.
 String toString()
          Returns a String containing information about the current distribution.
 
Methods inherited from class umontreal.iro.lecuyer.probdist.DiscreteDistributionInt
barF, cdf, inverseF
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

MAXLAMBDA

public static double MAXLAMBDA
Constructor Detail

PoissonDist

public PoissonDist(double lambda)
Creates an object that contains the probability and distribution functions, for the Poisson distribution with parameter lambda, which are computed and stored in dynamic arrays inside that object.

Method Detail

prob

public double prob(int x)
Description copied from class: DiscreteDistributionInt
Returns p(x), the probability of x, which should be a real number in the interval [0, 1].

Specified by:
prob in class DiscreteDistributionInt
Parameters:
x - value at which the mass function must be evaluated
Returns:
the mass function evaluated at x

cdf

public double cdf(int x)
Description copied from class: DiscreteDistributionInt
Returns the distribution function F evaluated at x (see).

Specified by:
cdf in class DiscreteDistributionInt
Parameters:
x - value at which the distribution function must be evaluated
Returns:
the distribution function evaluated at x

barF

public double barF(int x)
Description copied from class: DiscreteDistributionInt
Returns bar(F)(x), the complementary distribution function.

Overrides:
barF in class DiscreteDistributionInt
Parameters:
x - value at which the complementary distribution function must be evaluated
Returns:
the complementary distribution function evaluated at x

inverseFInt

public int inverseFInt(double u)
Description copied from class: DiscreteDistributionInt
Returns the inverse distribution function F-1(u), where 0 <= u <= 1. The default implementation uses binary search.

Overrides:
inverseFInt in class DiscreteDistributionInt
Parameters:
u - value in the interval (0, 1) for which the inverse distribution function is evaluated
Returns:
the inverse distribution function evaluated at u

getMean

public double getMean()
Description copied from interface: Distribution
Returns the mean of the distribution function.


getVariance

public double getVariance()
Description copied from interface: Distribution
Returns the variance of the distribution function.


getStandardDeviation

public double getStandardDeviation()
Description copied from interface: Distribution
Returns the standard deviation of the distribution function.


prob

public static double prob(double lambda,
                          int x)
Computes and returns the value of the Poisson probability p(x), for λ = lambda. If λ >= 20, this (static) method uses the logarithm of the gamma function, defined in, to estimate the density.


cdf

public static double cdf(double lambda,
                         int x)
Computes and returns the value of the Poisson distribution function, F(x), for λ = lambda.


barF

public static double barF(double lambda,
                          int x)
Computes and returns the value of the complementary Poisson distribution function, bar(F)(x), for λ = lambda. Computes and adds the non-negligible terms in the tail.


inverseF

public static int inverseF(double lambda,
                           double u)
Performs a linear search to get the inverse function without precomputed tables.


getInstanceFromMLE

public static PoissonDist getInstanceFromMLE(int[] x,
                                             int n)
Creates a new instance of a Poisson distribution with parameter λ estimated using the maximum likelihood method based on the n observations in table x[i], i = 0, 1,…, n - 1.

Parameters:
x - the list of observations to use to evaluate parameters
n - the number of observations to use to evaluate parameters

getMaximumLikelihoodEstimate

public static double[] getMaximumLikelihoodEstimate(int[] x,
                                                    int n)
Estimates and returns the parameter [ hat(λ)] of the Poisson distribution using the maximum likelihood method based on the n observations in table x[i], i = 0, 1,…, n - 1.

Parameters:
x - the list of observations used to evaluate parameters
n - the number of observations used to evaluate parameters
Returns:
returns the parameter [ hat(λ)]

getMean

public static double getMean(double lambda)
Computes and returns the mean E[X] = λ of the Poisson distribution with parameter λ.

Returns:
the mean of the Poisson distribution E[X] = λ

getVariance

public static double getVariance(double lambda)
Computes and returns the variance = λ of the Poisson distribution with parameter λ.

Returns:
the variance of the Poisson distribution Var[X] = λ

getStandardDeviation

public static double getStandardDeviation(double lambda)
Computes and returns the standard deviation of the Poisson distribution with parameter λ.

Returns:
the standard deviation of the Poisson distribution

getLambda

public double getLambda()
Returns the λ associated with this object.


setLambda

public void setLambda(double lambda)
Sets the λ associated with this object.


getParams

public double[] getParams()
Return a table containing the parameter of the current distribution.


toString

public String toString()
Returns a String containing information about the current distribution.

Overrides:
toString in class Object

SSJ
V. 1.2.5.

To submit a bug or ask questions, send an e-mail to Pierre L'Ecuyer.