Class BernoulliDistribution

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

public class BernoulliDistribution extends DiscreteDistribution
Bernoulli's distribution is a discrete probability distribution, which takes value 1 with success probability p and value 0 with failure probability q = 1 - p.

Although Bernoulli distribution belongs to exponential family, we don't implement DiscreteExponentialFamily interface here since it is impossible and meaningless to estimate a mixture of Bernoulli distributions.

See Also:
  • Field Details

    • p

      public final double p
      Probability of success.
    • q

      public final double q
      Probability of failure.
  • Constructor Details

    • BernoulliDistribution

      public BernoulliDistribution(double p)
      Constructor.
      Parameters:
      p - the probability of success.
    • BernoulliDistribution

      public BernoulliDistribution(boolean[] data)
      Construct a Bernoulli from the given samples. Parameter will be estimated from the data by MLE.
      Parameters:
      data - the boolean array to indicate if the i-th trail success.
  • Method Details

    • fit

      public static BernoulliDistribution fit(int[] data)
      Estimates the distribution parameters by MLE.
      Parameters:
      data - data[i] == 1 if the i-th trail is success. Otherwise, 0.
      Returns:
      the distribution.
    • length

      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.
      Returns:
      The number of parameters.
    • mean

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

      public double variance()
      Description copied from interface: Distribution
      Returns the variance of distribution.
      Returns:
      The variance.
    • entropy

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

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

      public double rand()
      Description copied from interface: Distribution
      Generates a random number following this distribution.
      Returns:
      a random number.
    • 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.
      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.
      Parameters:
      p - the probability.
      Returns:
      the quantile.