scipy.stats.dirichlet_multinomial#

scipy.stats.дирихле_мультиномиальное = object>[источник]#

Случайная величина Дирихле-мультиномиального распределения.

Дирихле мультиномиальное распределение является составным вероятностным распределением: это мультиномиальное распределение с количеством испытаний n и вероятности классов p случайно выбранные из распределения Дирихле с параметрами концентрации alpha.

Параметры:
alphaarray_like

Параметры концентрации. Количество записей вдоль последней оси определяет размерность распределения. Каждая запись должна быть строго положительной.

nint или array_like

Количество испытаний. Каждый элемент должен быть неотрицательным целым числом.

seed{None, int, np.random.RandomState, np.random.Generator}, опционально

Используется для генерации случайных величин. Если 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]

Распределение Дирихле-мультиномиальное, Википедия, 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

All methods are fully vectorized. Each element of 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)