Class BinomialDistribution
- All Implemented Interfaces:
Serializable, Distribution
n = 1, the binomial distribution is a Bernoulli
distribution. The probability of getting exactly k successes in n trials
is given by the probability mass function:
Pr(K = k) = nCk pk (1-p)n-k
where nCk is n choose k.
It is frequently used to model number of successes in a sample of size n from a population of size N. Since the samples are not independent (this is sampling without replacement), the resulting distribution is a hypergeometric distribution, not a binomial one. However, for N much larger than n, the binomial distribution is a good approximation, and widely used.
Binomial distribution describes the number of successes for draws with replacement. In contrast, the hypergeometric distribution describes the number of successes for draws without replacement.
Although Binomial distribution belongs to exponential family, we don't implement DiscreteExponentialFamily interface here since it is impossible and meaningless to estimate a mixture of Binomial distributions.
- 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.intlength()Returns the number of parameters of the distribution.doublelogp(int k) The probability mass function in log scale.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 binomial 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
-
p
public final double pThe probability of success. -
n
public final int nThe number of experiments.
-
-
Constructor Details
-
BinomialDistribution
public BinomialDistribution(int n, double p) Constructor.- Parameters:
n- the number of experiments.p- the probability of success.
-
-
Method Details
-
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.- Returns:
- The number of parameters.
-
mean
public double mean()Description copied from interface:DistributionReturns the mean of distribution.- Returns:
- The mean.
-
variance
public double variance()Description copied from interface:DistributionReturns the variance of distribution.- Returns:
- The variance.
-
sd
public double sd()Description copied from interface:DistributionReturns the standard deviation of distribution.- Returns:
- The standard deviation.
-
entropy
public double entropy()Description copied from interface:DistributionReturns Shannon entropy of the distribution.- 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.- 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.- Parameters:
p- the probability.- Returns:
- the quantile.
-
rand
public double rand()This function generates a random variate with the binomial distribution.Uses down/up search from the mode by chop-down technique for
n*p < 55, and patchwork rejection method forn*p >= 55.For
n*p < 1E-6numerical inaccuracy is avoided by poisson approximation.- Returns:
- a random number.
-