scipy.stats.dirichlet_multinomial#
- scipy.stats.dirichlet_multinomial = <scipy.stats._multivariate.dirichlet_multinomial_gen object>[source]#
- 狄利克雷多项随机变量。 - 狄利克雷多项分布是一种复合概率分布:它是具有试验次数 n 和类别概率 - p的多项分布,这些概率是从具有集中参数- alpha的狄利克雷分布中随机抽样的。- 参数:
- alphaarray_like
- 集中参数。沿最后一个轴的条目数决定了分布的维数。每个条目必须是严格正数。 
- nint 或 array_like
- 试验次数。每个元素必须是非负整数。 
- seed{None, int, np.random.RandomState, np.random.Generator}, optional
- 用于绘制随机变量。 如果 seed 为 None,则使用 RandomState 单例。 如果 seed 是一个 int,则使用一个新的 - RandomState实例,并使用 seed 进行播种。 如果 seed 已经是- RandomState或- Generator实例,则使用该对象。 默认为 None。
 
 - 方法 - logpmf(x, alpha, n) - 概率质量函数的对数。 - pmf(x, alpha, n) - 概率质量函数。 - mean(alpha, n) - 狄利克雷多项分布的均值。 - var(alpha, n) - 狄利克雷多项分布的方差。 - cov(alpha, n) - 狄利克雷多项分布的协方差。 - 另请参阅 - scipy.stats.dirichlet
- 狄利克雷分布。 
- scipy.stats.multinomial
- 多项分布。 
 - 参考文献 [1]- Dirichlet-multinomial distribution, Wikipedia, https://www.wikipedia.org/wiki/Dirichlet-multinomial_distribution - 示例 - >>> from scipy.stats import dirichlet_multinomial - 获取 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 - 如果类别计数的总和不等于试验次数,则概率质量为零。 - >>> dirichlet_multinomial.pmf(x, alpha, n=7) 0.0 - 获取 PMF 的对数 - >>> dirichlet_multinomial.logpmf(x, alpha, n) -2.4669689491013327 - 获取均值 - >>> dirichlet_multinomial.mean(alpha, n) array([1.5, 2. , 2.5]) - 获取方差 - >>> dirichlet_multinomial.var(alpha, n) array([1.55769231, 1.84615385, 2.01923077]) - 获取协方差 - >>> dirichlet_multinomial.cov(alpha, n) array([[ 1.55769231, -0.69230769, -0.86538462], [-0.69230769, 1.84615385, -1.15384615], [-0.86538462, -1.15384615, 2.01923077]]) - 或者,可以调用该对象(作为函数)来固定 - alpha和 n 参数,从而返回“冻结”的狄利克雷多项随机变量。- >>> dm = dirichlet_multinomial(alpha, n) >>> dm.pmf(x) 0.08484162895927579 - 所有方法都是完全向量化的。 x 和 - alpha的每个元素都是一个向量(沿最后一个轴),n 的每个元素都是一个整数(标量),并且结果是按元素计算的。- >>> 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) - 支持根据标准 NumPy 约定进行广播。 在这里,我们有四组集中参数(每个参数都是一个包含两个元素的向量),对应于三个试验次数(每个试验次数都是一个标量)。 - >>> alpha = [[3, 4], [4, 5], [5, 6], [6, 7]] >>> n = [[6], [7], [8]] >>> dirichlet_multinomial.mean(alpha, n).shape (3, 4, 2)