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

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

Биномиальное распределение является одним из наиболее часто используемых распределений в статистике. Он описывает вероятность получения k успехов в n биномиальных экспериментах.

Если случайная величина X подчиняется биномиальному распределению, то вероятность того, что X = k успехов, можно найти по следующей формуле:

P(X=k) = n C k * p k * (1-p) nk

куда:

  • n: количество испытаний
  • k: количество успехов
  • p: вероятность успеха в данном испытании
  • n C k : количество способов добиться k успехов в n испытаниях.

В этом руководстве объясняется, как использовать биномиальное распределение в Python.

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

Вы можете сгенерировать массив значений, которые следуют биномиальному распределению, используя функцию random.binomial из библиотеки numpy:

from numpy import random

#generate an array of 10 values that follow a binomial distribution
random.binomial(n=10, p=.25, size=10)

array([5, 2, 1, 3, 3, 3, 2, 2, 1, 4])

Каждое число в результирующем массиве представляет собой количество «успехов», полученных в течение 10 испытаний, где вероятность успеха в данном испытании составляла 0,25 .

Как рассчитать вероятности с помощью биномиального распределения

Вы также можете ответить на вопросы о биномиальных вероятностях, используя функцию binom из библиотеки scipy.

Вопрос 1: Натан выполняет 60% штрафных бросков. Если он выполнит 12 штрафных бросков, какова вероятность того, что он сделает ровно 10?

from scipy.stats import binom

#calculate binomial probability
binom.pmf(k= 10 , n= 12 , p= 0.6 )

0.0639

Вероятность того, что Натан сделает ровно 10 штрафных бросков, равна 0,0639 .

Вопрос 2: Марти подбрасывает правильную монету 5 раз. Какова вероятность того, что монета выпадет орлом 2 раза или меньше?

from scipy.stats import binom

#calculate binomial probability
binom.cdf(k= 2 , n= 5 , p= 0.5 )

0.5

Вероятность того, что монета выпадет орлом 2 раза или менее, равна 0,5 .

Вопрос 3: Известно, что 70% людей поддерживают тот или иной закон. Если наугад выбрать 10 человек, какова вероятность того, что от 4 до 6 из них поддержат закон?

from scipy.stats import binom

#calculate binomial probability
binom.cdf(k= 6 , n= 10 , p= 0.7 ) - binom.cdf(k= 3 , n= 10 , p= 0.7 )

0.3398

Вероятность того, что от 4 до 6 случайно выбранных лиц поддержат закон, равна 0,3398 .

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

Вы можете визуализировать биномиальное распределение в Python, используя библиотеки seaborn и matplotlib :

from numpy import random
import matplotlib.pyplot as plt
import seaborn as sns

x = random.binomial(n= 10 , p= 0.5 , size= 1000 )

sns.distplot(x, hist= True , kde= False )

plt.show()
График биномиального распределения в Python

Ось x описывает количество успешных результатов в течение 10 испытаний, а ось y показывает, сколько раз каждое количество успешных результатов произошло в течение 1000 экспериментов.

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