Рубрики
Без рубрики

Многономиальные вероятности

Биномиальные, триномиальные и мультиномиальные вероятности в биномиальном распределении, я переоделся … помеченным данных DataScience, Python, Machinelearning, Beginters.

Биномиальные, триномиальные и многономиальные вероятности

В посте биномиального распределения я рассмотрел примеры, где выходы были либо успешными с вероятностью p, либо сбой с дополнительной вероятностью (1-P). Что если мы хотим узнать вероятности, где возможны более двух результатов. Например, результаты игры могут быть победой, проигрыш или рисования, что является триномиальным распределением. Поскольку существует множество результатов, это называется многономиальным распределением вероятностей.

Итак, биномиальная вероятность массовой функции (PMF):

Потому что у нас есть 2 возможные результаты, такие как успех и неудача), где, и мы можем переписать его как:

Multinomial PMF – это обобщение биномиального PMF, где и::

Мы видим, что биномиальный PMF является особым случаем многономиального PMF, где.

Многономиальные и гипергеометрические вероятности

Давайте сделаем практическое пример, используя Python.

Мы запускаем новый продукт, и первоначальное тестирование показало, что из 100 обзоров продукт получил положительную обратную связь ⅔ времен, отрицательный 2/15 времен, а остальные были нейтральными. Если мы выходим из случайных обзоров базы данных 3 для презентации продукта, какова вероятность того, что по крайней мере один будет положительным? Хотя бы один негатив? Ровно 1 положительный, 1 отрицательный и 1 нейтральный?

Приблизительное решение

Практически, мы не собираемся использовать один и тот же обзор дважды для презентации, так что это так называемый эксперимент без замены. Таким образом, мы не можем использовать многономиальное распределение, поскольку мы вынимаем какой -либо обзор, это меняет долю оставшихся обзоров, и вероятности не останутся прежними от одного испытания на другое. Но я предполагаю, что здесь мы вынимаем только 3 отзывов из 100, мы не изменяем вероятности в каждом следующем испытании.

from scipy.stats import multinomial

# exactly 1 positive, 1 negative, and 1 neutral
one = multinomial.pmf([1, 1, 1], n=3, p=[2/3, 2/15, 1/5])

# at least on negative
min_one_neg = \
multinomial.pmf([1, 1, 1], n=3, p=[2/3, 2/15, 1/5]) + \
multinomial.pmf([2, 1, 0], n=3, p=[2/3, 2/15, 1/5]) + \
multinomial.pmf([0, 1, 2], n=3, p=[2/3, 2/15, 1/5]) + \
multinomial.pmf([1, 2, 0], n=3, p=[2/3, 2/15, 1/5]) + \
multinomial.pmf([0, 2, 1], n=3, p=[2/3, 2/15, 1/5]) + \
multinomial.pmf([0, 3, 0], n=3, p=[2/3, 2/15, 1/5])

# at least on positive

min_one_pos = \
multinomial.pmf([1, 1, 1], n=3, p=[2/15, 2/3, 1/5]) + \
multinomial.pmf([2, 1, 0], n=3, p=[2/15, 2/3, 1/5]) + \
multinomial.pmf([0, 1, 2], n=3, p=[2/15, 2/3, 1/5]) + \
multinomial.pmf([1, 2, 0], n=3, p=[2/15, 2/3, 1/5]) + \
multinomial.pmf([0, 2, 1], n=3, p=[2/15, 2/3, 1/5]) + \
multinomial.pmf([0, 3, 0], n=3, p=[2/15, 2/3, 1/5])

one, min_one_neg, min_one_pos

Результаты: (0,10666666666666669, 0,34903703703703703, 0,962962962962963)

Точное решение

Чтобы учесть фактор, который мы экспериментируем с заменой, я буду использовать многомерную функцию массы гипергеометрической вероятности. Несмотря на сложное имя, это очень интуитивное распределение и основанное на подсчете вероятностей с использованием комбинаций. В случае, если кто -то заинтересован в более подробной информации, вот ссылка для видео с хорошим объяснением концепции.

from math import factorial
def comb(n,x):
    # calculates combination of n choose k
    return factorial(n)/(factorial(x)*(factorial(n-x)))

# exactly 1 positive, 1 negative, and 1 neutral
one = (comb(67,1)*comb(13,1)*comb(20,1))/(comb(100,3))

# at least on negative
min_one_neg = \
(comb(67,1)*comb(13,1)*comb(20,1))/(comb(100,3))+\
(comb(67,0)*comb(13,1)*comb(20,2))/(comb(100,3))+\
(comb(67,2)*comb(13,1)*comb(20,0))/(comb(100,3))+\
(comb(67,0)*comb(13,2)*comb(20,1))/(comb(100,3))+\
(comb(67,1)*comb(13,2)*comb(20,0))/(comb(100,3))+\
(comb(67,0)*comb(13,3)*comb(20,0))/(comb(100,3))


# at least on positive
min_one_pos = \
(comb(67,1)*comb(13,1)*comb(20,1))/(comb(100,3))+\
(comb(67,1)*comb(13,2)*comb(20,0))/(comb(100,3))+\
(comb(67,1)*comb(13,0)*comb(20,2))/(comb(100,3))+\
(comb(67,2)*comb(13,0)*comb(20,1))/(comb(100,3))+\
(comb(67,2)*comb(13,1)*comb(20,0))/(comb(100,3))+\
(comb(67,3)*comb(13,0)*comb(20,0))/(comb(100,3))

one, min_one_neg, min_one_pos

Результаты: (0,10773036487322202, 0,3444959802102659, 0,9662585034013607)

Вывод

Как мы и ожидали, приблизительные и точные результаты решения довольно близки. Помимо понимания основных концепций, может быть более интересно, как они применяются и используются в мире практической науки и машинного обучения. Я постараюсь описать свои выводы по теме приложения в следующих нескольких сообщениях.

Оригинал: “https://dev.to/xsabzal/multinomial-probabilities-2hpf”