如何在 python 中使用二项式分布


二项式分布是统计学中最常用的分布之一。它描述了在n次二项式实验中获得k次成功的概率。

如果随机变量X服从二项式分布,则X = k成功的概率可以通过以下公式求出:

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

金子:

  • n:试验次数
  • k:成功次数
  • p:给定试验的成功概率
  • n C kn次试验中获得k次成功的方法数

本教程介绍如何在 Python 中使用二项式分布。

如何生成二项式分布

您可以使用 numpy 库的random.binomial函数生成遵循二项分布的值数组:

 from numpy import random

#generate an array of 10 values that follows 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

如何使用二项分布计算概率

您还可以使用 scipy 库的binom 函数回答有关二项式概率的问题。

问题 1:内森的罚球命中率为 60%。如果他罚球 12 次,他罚中 10 次的概率是多少?

 from scipy.stats import binom

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

0.0639

Nathan 恰好罚球 10 次的概率是0.0639

问题 2: Marty 抛一枚均匀的硬币 5 次。硬币正面朝上两次或更少的概率是多少?

 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

如何可视化二项式分布

您可以使用seabornmatplotlib库在 Python 中可视化二项式分布:

 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 中的二项式分布图

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注