scipy.stats.dirichlet_multinomial#
- scipy.stats.dirichlet_multinomial = <scipy.stats._multivariate.dirichlet_multinomial_gen object>[source]#
- A Dirichlet multinomial random variable. - The Dirichlet multinomial distribution is a compound probability distribution: it is the multinomial distribution with number of trials n and class probabilities - prandomly sampled from a Dirichlet distribution with concentration parameters- alpha.- Parameters:
- alphaarray_like
- The concentration parameters. The number of entries along the last axis determines the dimensionality of the distribution. Each entry must be strictly positive. 
- nint or array_like
- The number of trials. Each element must be a non-negative integer. 
- seed{None, int, np.random.RandomState, np.random.Generator}, optional
- Used for drawing random variates. If seed is None, the RandomState singleton is used. If seed is an int, a new - RandomStateinstance is used, seeded with seed. If seed is already a- RandomStateor- Generatorinstance, then that object is used. Default is None.
 
 - Methods - logpmf(x, alpha, n): - Log of the probability mass function. - pmf(x, alpha, n): - Probability mass function. - mean(alpha, n): - Mean of the Dirichlet multinomial distribution. - var(alpha, n): - Variance of the Dirichlet multinomial distribution. - cov(alpha, n): - The covariance of the Dirichlet multinomial distribution. - See also - scipy.stats.dirichlet
- The dirichlet distribution. 
- scipy.stats.multinomial
- The multinomial distribution. 
 - References [1]- Dirichlet-multinomial distribution, Wikipedia, https://www.wikipedia.org/wiki/Dirichlet-multinomial_distribution - Examples - >>> from scipy.stats import dirichlet_multinomial - Get the PMF - >>> n = 6 # number of trials >>> alpha = [3, 4, 5] # concentration parameters >>> x = [1, 2, 3] # counts >>> dirichlet_multinomial.pmf(x, alpha, n) 0.08484162895927604 - If the sum of category counts does not equal the number of trials, the probability mass is zero. - >>> dirichlet_multinomial.pmf(x, alpha, n=7) 0.0 - Get the log of the PMF - >>> dirichlet_multinomial.logpmf(x, alpha, n) -2.4669689491013327 - Get the mean - >>> dirichlet_multinomial.mean(alpha, n) array([1.5, 2. , 2.5]) - Get the variance - >>> dirichlet_multinomial.var(alpha, n) array([1.55769231, 1.84615385, 2.01923077]) - Get the covariance - >>> dirichlet_multinomial.cov(alpha, n) array([[ 1.55769231, -0.69230769, -0.86538462], [-0.69230769, 1.84615385, -1.15384615], [-0.86538462, -1.15384615, 2.01923077]]) - Alternatively, the object may be called (as a function) to fix the - alphaand n parameters, returning a “frozen” Dirichlet multinomial random variable.- >>> dm = dirichlet_multinomial(alpha, n) >>> dm.pmf(x) 0.08484162895927579 - All methods are fully vectorized. Each element of x and - alphais a vector (along the last axis), each element of n is an integer (scalar), and the result is computed element-wise.- >>> x = [[1, 2, 3], [4, 5, 6]] >>> alpha = [[1, 2, 3], [4, 5, 6]] >>> n = [6, 15] >>> dirichlet_multinomial.pmf(x, alpha, n) array([0.06493506, 0.02626937]) - >>> dirichlet_multinomial.cov(alpha, n).shape # both covariance matrices (2, 3, 3) - Broadcasting according to standard NumPy conventions is supported. Here, we have four sets of concentration parameters (each a two element vector) for each of three numbers of trials (each a scalar). - >>> alpha = [[3, 4], [4, 5], [5, 6], [6, 7]] >>> n = [[6], [7], [8]] >>> dirichlet_multinomial.mean(alpha, n).shape (3, 4, 2)