Class PoissonDistribution

All Implemented Interfaces:
Serializable, DiscreteExponentialFamily, Distribution

public class PoissonDistribution extends DiscreteDistribution implements DiscreteExponentialFamily
Poisson distribution expresses the probability of a number of events occurring in a fixed period of time if these events occur with a known average rate and independently of the time since the last event. The Poisson distribution can also be used for the number of events in other specified intervals such as distance, area or volume. If the expected number of occurrences in this interval is λ, then the probability that there are exactly n occurrences (n = 0, 1, 2, ...) is equal to f(n; λ) = λn e / n!. For sufficiently large values of λ, (say λ > 1000), the normal distribution with mean λ and variance λ, is an excellent approximation to the Poisson distribution. If λ is greater than about 10, then the normal distribution is a good approximation if an appropriate continuity correction is performed, i.e., P(X <= x), where (lower-case) x is a non-negative integer, is replaced by P(X <= x + 0.5).

When a variable is Poisson distributed, its square root is approximately normally distributed with expected value of about λ1/2 and variance of about 1/4.

See Also:
  • Field Details

    • lambda

      public final double lambda
      The average number of events per interval.
  • Constructor Details

    • PoissonDistribution

      public PoissonDistribution(double lambda)
      Constructor.
      Parameters:
      lambda - the average number of events per interval.
  • Method Details

    • fit

      public static PoissonDistribution fit(int[] data)
      Estimates the distribution parameters by MLE.
      Parameters:
      data - the training data.
      Returns:
      the distribution.
    • length

      public int length()
      Description copied from interface: Distribution
      The number of parameters of the distribution. The "length" is in the sense of the minimum description length principle.
      Specified by:
      length in interface Distribution
      Returns:
      The number of parameters.
    • mean

      public double mean()
      Description copied from interface: Distribution
      The mean of distribution.
      Specified by:
      mean in interface Distribution
      Returns:
      The mean.
    • variance

      public double variance()
      Description copied from interface: Distribution
      The variance of distribution.
      Specified by:
      variance in interface Distribution
      Returns:
      The variance.
    • sd

      public double sd()
      Description copied from interface: Distribution
      The standard deviation of distribution.
      Specified by:
      sd in interface Distribution
      Returns:
      The standard deviation.
    • entropy

      public double entropy()
      Description copied from interface: Distribution
      Shannon entropy of the distribution.
      Specified by:
      entropy in interface Distribution
      Returns:
      Shannon entropy.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • p

      public double p(int k)
      Description copied from class: DiscreteDistribution
      The probability mass function.
      Specified by:
      p in class DiscreteDistribution
      Parameters:
      k - a real value.
      Returns:
      the probability.
    • logp

      public double logp(int k)
      Description copied from class: DiscreteDistribution
      The probability mass function in log scale.
      Specified by:
      logp in class DiscreteDistribution
      Parameters:
      k - a real value.
      Returns:
      the log probability.
    • cdf

      public double cdf(double k)
      Description copied from interface: Distribution
      Cumulative distribution function. That is the probability to the left of x.
      Specified by:
      cdf in interface Distribution
      Parameters:
      k - a real number.
      Returns:
      the probability.
    • quantile

      public double quantile(double p)
      Description copied from interface: Distribution
      The quantile, the probability to the left of quantile is p. It is actually the inverse of cdf.
      Specified by:
      quantile in interface Distribution
      Parameters:
      p - the probability.
      Returns:
      the quantile.
    • M

      public DiscreteMixture.Component M(int[] x, double[] posteriori)
      Description copied from interface: DiscreteExponentialFamily
      The M step in the EM algorithm, which depends the specific distribution.
      Specified by:
      M in interface DiscreteExponentialFamily
      Parameters:
      x - the input data for estimation
      posteriori - the posteriori probability.
      Returns:
      the (unnormalized) weight of this distribution in the mixture.
    • rand

      public double rand()
      This function generates a random variate with the poisson distribution.

      Uses down/up search from the mode by chop-down technique for λ < 20, and patchwork rejection method for λ >= 20.

      For λ < 1E-6 numerical inaccuracy is avoided by direct calculation.

      Specified by:
      rand in interface Distribution
      Returns:
      a random number.