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)