Как использовать полиномиальное распределение в Python


Полиномиальное распределение описывает вероятность получения определенного количества отсчетов для k различных исходов, когда каждый исход имеет фиксированную вероятность появления.

Если случайная величина X подчиняется полиномиальному распределению, то вероятность того, что исход 1 произойдет ровно x 1 раз, исход 2 произойдет ровно x 2 раза и т. д., можно найти по следующей формуле:

Вероятность = n! * (p 1 x 1 * p 2 x 2 * … * p k x k ) / (x 1 ! * x 2 ! … * x k !)

куда:

  • n: общее количество событий
  • x 1 : количество раз, когда возникает результат 1
  • p 1 : вероятность того, что исход 1 произойдет в данном испытании.

В следующих примерах показано, как использовать функцию scipy.stats.multinomial() в Python для ответа на различные вопросы вероятности, касающиеся полиномиального распределения.

Пример 1

На трехсторонних выборах мэра кандидат А получает 10 % голосов, кандидат В получает 40 % голосов, а кандидат С получает 50 % голосов.

Если мы выберем случайную выборку из 10 избирателей, какова вероятность того, что 2 проголосовали за кандидата А, 4 проголосовали за кандидата В и 4 проголосовали за кандидата С?

Мы можем использовать следующий код в Python, чтобы ответить на этот вопрос:

from scipy. stats import multinomial

#calculate multinomial probability
multinomial. pmf (x=[2, 4, 4], n=10, p=[.1, .4, .5])

0.05040000000000001

Вероятность того, что ровно 2 человека проголосовали за А, 4 проголосовали за В и 4 проголосовали за С, равна 0,0504 .

Пример 2

Предположим, в урне 6 желтых, 2 красных и 2 розовых шарика.

Если мы случайным образом выберем из урны 4 шара с возвратом на место, какова вероятность того, что все 4 шара будут желтыми?

Мы можем использовать следующий код в Python, чтобы ответить на этот вопрос:

from scipy. stats import multinomial

#calculate multinomial probability
multinomial. pmf (x=[4, 0, 0], n=4, p=[.6, .2, .2])

0.1295999999999999

Вероятность того, что все 4 шара желтые, равна примерно 0,1296 .

Пример 3

Предположим, два студента играют в шахматы друг против друга. Вероятность того, что студент А выиграет данную игру, равна 0,5, вероятность того, что студент Б выиграет данную игру, равна 0,3, а вероятность того, что он сыграет вничью в данной игре, равна 0,2.

Если они сыграют 10 игр, какова вероятность того, что игрок А выиграет 4 раза, игрок Б выиграет 5 раз и 1 раз у них будет ничья?

Мы можем использовать следующий код в Python, чтобы ответить на этот вопрос:

from scipy. stats import multinomial

#calculate multinomial probability
multinomial. pmf (x=[4, 5, 1], n=10, p=[.5, .3, .2])

0.03827249999999997

Вероятность того, что игрок А выиграет 4 раза, игрок Б выиграет 5 раз и у них будет ничья 1 раз, составляет около 0,038 .

Дополнительные ресурсы

В следующих руководствах представлена дополнительная информация о полиномиальном распределении:

Введение в полиномиальное распределение
Калькулятор мультиномиального распределения
Что такое полиномиальный тест? (Определение и пример)

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.