Как использовать полиномиальное распределение в python
Полиномиальное распределение описывает вероятность получения определенного количества отсчетов для k различных результатов, когда каждый результат имеет фиксированную вероятность наступления.
Если случайную величину можно найти по следующей формуле:
Вероятность = 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 .
Дополнительные ресурсы
Следующие руководства предоставляют дополнительную информацию о полиномиальном распределении:
Введение в полиномиальное распределение
Калькулятор полиномиального распределения
Что такое полиномиальный тест? (Определение и пример)