smile.stat.distribution

## Class BernoulliDistribution

• All Implemented Interfaces:
java.io.Serializable, Distribution

```public class BernoulliDistribution
extends DiscreteDistribution```
Bernoulli 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.

Serialized Form
• ### Field Summary

Fields
Modifier and Type Field and Description
`double` `p`
Probability of success.
`double` `q`
Probability of failure.
• ### Constructor Summary

Constructors
Constructor and Description
`BernoulliDistribution(boolean[] data)`
Construct an Bernoulli from the given samples.
`BernoulliDistribution(double p)`
Constructor.
• ### Method Summary

All Methods
Modifier and Type Method and Description
`double` `cdf(double k)`
Cumulative distribution function.
`double` `entropy()`
Shannon entropy of the distribution.
`static BernoulliDistribution` `fit(int[] data)`
Estimates the distribution parameters by MLE.
`int` `length()`
The number of parameters of the distribution.
`double` `logp(int k)`
The probability mass function in log scale.
`double` `mean()`
The mean of distribution.
`double` `p(int k)`
The probability mass function.
`double` `quantile(double p)`
The quantile, the probability to the left of quantile is p.
`double` `rand()`
Generates a random number following this distribution.
`java.lang.String` `toString()`
`double` `variance()`
The variance of distribution.
• ### Methods inherited from class smile.stat.distribution.DiscreteDistribution

`likelihood, logLikelihood, logp, p, quantile, randi, randi`
• ### Methods inherited from class smile.stat.distribution.AbstractDistribution

`inverseTransformSampling, quantile, quantile, rejection`
• ### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
• ### Methods inherited from interface smile.stat.distribution.Distribution

`likelihood, logLikelihood, rand, sd`
• ### Field Detail

• #### p

`public final double p`
Probability of success.
• #### q

`public final double q`
Probability of failure.
• ### Constructor Detail

• #### BernoulliDistribution

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

`public BernoulliDistribution(boolean[] data)`
Construct an 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 Detail

• #### 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.
• #### 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.
• #### mean

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

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

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

`public java.lang.String toString()`
Overrides:
`toString` in class `java.lang.Object`
• #### rand

`public double rand()`
Description copied from interface: `Distribution`
Generates a random number following this distribution.
• #### p

`public double p(int k)`
Description copied from class: `DiscreteDistribution`
The probability mass function.
Specified by:
`p` in class `DiscreteDistribution`
• #### logp

`public double logp(int k)`
Description copied from class: `DiscreteDistribution`
The probability mass function in log scale.
Specified by:
`logp` in class `DiscreteDistribution`
• #### cdf

`public double cdf(double k)`
Description copied from interface: `Distribution`
Cumulative distribution function. That is the probability to the left of x.
• #### 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.