A binomial discrete random variable.
As an instance of the
rv_discrete
class, binom
object inherits from it a collection of generic methods [see below for the full list], and completes them with details specific for this particular
distribution.
Notes
The probability mass function for binom
is:
\[f[k] = \binom{n}{k} p^k [1-p]^{n-k}\]
for \[k \in \{0, 1, \dots, n\}\], \[0 \leq p \leq 1\]
binom
takes \[n\] and \[p\] as shape parameters, where \[p\] is the probability of a single success and \[1-p\] is the probability of a single failure.
The probability mass function above is defined in the “standardized” form. To shift distribution use the loc
parameter. Specifically,
binom.pmf[k, n, p, loc]
is identically equivalent to binom.pmf[k - loc, n, p]
.
Examples
>>> from scipy.stats import binom >>> import matplotlib.pyplot as plt >>> fig, ax = plt.subplots[1, 1]
Calculate the first four moments:
>>> n, p = 5, 0.4 >>> mean, var, skew, kurt = binom.stats[n, p, moments='mvsk']
Display the probability mass function [pmf
]:
>>> x = np.arange[binom.ppf[0.01, n, p], ... binom.ppf[0.99, n, p]] >>> ax.plot[x, binom.pmf[x, n, p], 'bo', ms=8, label='binom pmf'] >>> ax.vlines[x, 0, binom.pmf[x, n, p], colors='b', lw=5, alpha=0.5]
Alternatively, the distribution object can be called [as a function] to fix the shape and location. This returns a “frozen” RV object holding the given parameters fixed.
Freeze the distribution and display the frozen pmf
:
>>> rv = binom[n, p] >>> ax.vlines[x, 0, rv.pmf[x], colors='k', linestyles='-', lw=1, ... label='frozen pmf'] >>> ax.legend[loc='best', frameon=False] >>> plt.show[]
Check accuracy of cdf
and ppf
:
>>> prob = binom.cdf[x, n, p] >>> np.allclose[x, binom.ppf[prob, n, p]] True
Generate random numbers:
>>> r = binom.rvs[n, p, size=1000]
Methods
rvs[n, p, loc=0, size=1, random_state=None] | Random variates. |
pmf[k, n, p, loc=0] | Probability mass function. |
logpmf[k, n, p, loc=0] | Log of the probability mass function. |
cdf[k, n, p, loc=0] | Cumulative distribution function. |
logcdf[k, n, p, loc=0] | Log of the cumulative distribution function. |
sf[k, n, p, loc=0] | Survival function [also defined as |
logsf[k, n, p, loc=0] | Log of the survival function. |
ppf[q, n, p, loc=0] | Percent point function [inverse of |
isf[q, n, p, loc=0] | Inverse survival function [inverse of |
stats[n, p, loc=0, moments=’mv’] | Mean[‘m’], variance[‘v’], skew[‘s’], and/or kurtosis[‘k’]. |
entropy[n, p, loc=0] | [Differential] entropy of the RV. |
expect[func, args=[n, p], loc=0, lb=None, ub=None, conditional=False] | Expected value of a function [of one argument] with respect to the distribution. |
median[n, p, loc=0] | Median of the distribution. |
mean[n, p, loc=0] | Mean of the distribution. |
var[n, p, loc=0] | Variance of the distribution. |
std[n, p, loc=0] | Standard deviation of the distribution. |
interval[confidence, n, p, loc=0] | Confidence interval with equal areas around the median. |