Class PoissonDistribution
java.lang.Object
smile.stat.distribution.DiscreteDistribution
smile.stat.distribution.PoissonDistribution
- All Implemented Interfaces:
Serializable, DiscreteExponentialFamily, Distribution
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 Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondoublecdf(double k) Cumulative distribution function.doubleentropy()Returns Shannon entropy of the distribution.static PoissonDistributionfit(int[] data) Estimates the distribution parameters by MLE.intlength()Returns the number of parameters of the distribution.doublelogp(int k) The probability mass function in log scale.M(int[] x, double[] posteriori) The M step in the EM algorithm, which depends on the specific distribution.doublemean()Returns the mean of distribution.doublep(int k) The probability mass function.doublequantile(double p) The quantile, the probability to the left of quantile is p.doublerand()This function generates a random variate with the poisson distribution.doublesd()Returns the standard deviation of distribution.toString()doublevariance()Returns the variance of distribution.Methods inherited from class DiscreteDistribution
likelihood, logLikelihood, logp, p, quantile, randi, randiMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface Distribution
inverseTransformSampling, likelihood, logLikelihood, quantile, quantile, rand, rejectionSampling
-
Field Details
-
lambda
public final double lambdaThe 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
Estimates the distribution parameters by MLE.- Parameters:
data- the training data.- Returns:
- the distribution.
-
length
public int length()Description copied from interface:DistributionReturns the number of parameters of the distribution. The "length" is in the sense of the minimum description length principle.- Specified by:
lengthin interfaceDistribution- Returns:
- The number of parameters.
-
mean
public double mean()Description copied from interface:DistributionReturns the mean of distribution.- Specified by:
meanin interfaceDistribution- Returns:
- The mean.
-
variance
public double variance()Description copied from interface:DistributionReturns the variance of distribution.- Specified by:
variancein interfaceDistribution- Returns:
- The variance.
-
sd
public double sd()Description copied from interface:DistributionReturns the standard deviation of distribution.- Specified by:
sdin interfaceDistribution- Returns:
- The standard deviation.
-
entropy
public double entropy()Description copied from interface:DistributionReturns Shannon entropy of the distribution.- Specified by:
entropyin interfaceDistribution- Returns:
- Shannon entropy.
-
toString
-
p
public double p(int k) Description copied from class:DiscreteDistributionThe probability mass function.- Specified by:
pin classDiscreteDistribution- Parameters:
k- a real value.- Returns:
- the probability.
-
logp
public double logp(int k) Description copied from class:DiscreteDistributionThe probability mass function in log scale.- Specified by:
logpin classDiscreteDistribution- Parameters:
k- a real value.- Returns:
- the log probability.
-
cdf
public double cdf(double k) Description copied from interface:DistributionCumulative distribution function. That is the probability to the left of x.- Specified by:
cdfin interfaceDistribution- Parameters:
k- a real number.- Returns:
- the probability.
-
quantile
public double quantile(double p) Description copied from interface:DistributionThe quantile, the probability to the left of quantile is p. It is actually the inverse of cdf.- Specified by:
quantilein interfaceDistribution- Parameters:
p- the probability.- Returns:
- the quantile.
-
M
Description copied from interface:DiscreteExponentialFamilyThe M step in the EM algorithm, which depends on the specific distribution.- Specified by:
Min interfaceDiscreteExponentialFamily- Parameters:
x- the input data for estimationposteriori- 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-6numerical inaccuracy is avoided by direct calculation.- Specified by:
randin interfaceDistribution- Returns:
- a random number.
-