Class GeometricDistribution

java.lang.Object
smile.stat.distribution.DiscreteDistribution
smile.stat.distribution.GeometricDistribution
All Implemented Interfaces:
Serializable, DiscreteExponentialFamily, Distribution

public class GeometricDistribution extends DiscreteDistribution implements DiscreteExponentialFamily
The geometric distribution is a discrete probability distribution of the number X of Bernoulli trials needed to get one success, supported on the set {1, 2, 3, …}. Sometimes, people define that the probability distribution of the number Y = X - 1 of failures before the first success, supported on the set {0, 1, 2, 3, …}. To reduce the confusion, we denote the latter as shifted geometric distribution. If the probability of success on each trial is p, then the probability that the k-th trial (out of k trials) is the first success is Pr(X = k) = (1 - p)k-1 p.

Like its continuous analogue (the exponential distribution), the geometric distribution is memoryless. That means that if you intend to repeat an experiment until the first success, then, given that the first success has not yet occurred, the conditional probability distribution of the number of additional trials does not depend on how many failures have been observed. The geometric distribution is in fact the only memoryless discrete distribution.

Among all discrete probability distributions supported on {1, 2, 3, …} with given expected value μ, the geometric distribution X with parameter p = 1/μ is the one with the largest entropy.

See Also:
  • Field Details Link icon

    • p Link icon

      public final double p
      Probability of success on each trial.
  • Constructor Details Link icon

    • GeometricDistribution Link icon

      public GeometricDistribution(double p)
      Constructor.
      Parameters:
      p - the probability of success.
  • Method Details Link icon

    • fit Link icon

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

      public int length()
      Description copied from interface: Distribution
      Returns 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 Link icon

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

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

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

      public double entropy()
      Shannon's entropy. Not supported.
      Specified by:
      entropy in interface Distribution
      Returns:
      Shannon entropy.
    • toString Link icon

      public String toString()
      Overrides:
      toString in class Object
    • rand Link icon

      public double rand()
      Description copied from interface: Distribution
      Generates a random number following this distribution.
      Specified by:
      rand in interface Distribution
      Returns:
      a random number.
    • p Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      public DiscreteMixture.Component M(int[] x, double[] posteriori)
      Description copied from interface: DiscreteExponentialFamily
      The M step in the EM algorithm, which depends on 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.