Class BinomialDistribution
- java.lang.Object
-
- smile.stat.distribution.AbstractDistribution
-
- smile.stat.distribution.DiscreteDistribution
-
- smile.stat.distribution.BinomialDistribution
-
- All Implemented Interfaces:
- Distribution
public class BinomialDistribution extends DiscreteDistribution
The binomial distribution is the discrete probability distribution of the number of successes in a sequence of n independent yes/no experiments, each of which yields success with probability p. Such a success/failure experiment is also called a Bernoulli experiment or Bernoulli trial. In fact, when 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 constrast, the hypergeometric distribution describes the number of successes for draws without replacement.
Although Binomial distribtuion 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:
HyperGeometricDistribution
-
-
Constructor Summary
Constructors Constructor and Description BinomialDistribution(int n, double p)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description doublecdf(double k)Cumulative distribution function.doubleentropy()Shannon entropy of the distribution.intgetN()Returns the parameter n, the number of experiments.doublegetProb()Returns the probability of success.doublelogp(int k)The probability mass function in log scale.doublemean()The mean of distribution.intnpara()The number of parameters of the 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()The standard deviation of distribution.java.lang.StringtoString()doublevar()The variance of distribution.-
Methods inherited from class smile.stat.distribution.DiscreteDistribution
likelihood, logLikelihood, logp, p
-
Methods inherited from class smile.stat.distribution.AbstractDistribution
likelihood, logLikelihood
-
-
-
-
Constructor Detail
-
BinomialDistribution
public BinomialDistribution(int n, double p)Constructor.- Parameters:
p- the probability of success.n- the number of experiments.
-
-
Method Detail
-
getProb
public double getProb()
Returns the probability of success.
-
getN
public int getN()
Returns the parameter n, the number of experiments.
-
npara
public int npara()
Description copied from interface:DistributionThe number of parameters of the distribution.
-
mean
public double mean()
Description copied from interface:DistributionThe mean of distribution.
-
var
public double var()
Description copied from interface:DistributionThe variance of distribution.
-
sd
public double sd()
Description copied from interface:DistributionThe standard deviation of distribution.
-
entropy
public double entropy()
Description copied from interface:DistributionShannon entropy of the distribution.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
p
public double p(int k)
Description copied from class:DiscreteDistributionThe probability mass function.- Specified by:
pin classDiscreteDistribution
-
logp
public double logp(int k)
Description copied from class:DiscreteDistributionThe probability mass function in log scale.- Specified by:
logpin classDiscreteDistribution
-
cdf
public double cdf(double k)
Description copied from interface:DistributionCumulative distribution function. That is the probability to the left of x.
-
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.
-
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 for n*p ≥ 55. For n*p < 1.E-6 numerical inaccuracy is avoided by poisson approximation.
-
-
DataMelt 3.0 © DataMelt by jWork.ORG