Python - 统计中的泊松离散分布2025年3月17日 | 阅读 12 分钟 统计学中的基本概念之一是随机变量及其分布的研究。本教程将帮助您全面理解泊松离散分布,这是统计学/概率论的关键组成部分,并最终学习如何使用 Python 计算其各种属性。 现在,让我们从理解涉及的随机变量术语开始讨论。 随机变量随机变量是随机实验的结果。它是一个数值量,其值属于随机实验或事件的可能结果集。 例如
随机变量可分为两类
泊松离散分布泊松分布是一种离散概率分布,用于表示在固定时间或空间间隔内出现给定数量事件的概率。 离散概率分布是只能取可数个值的随机变量的概率分布。 - 维基百科 它通常用于描述罕见的随机事件,例如呼叫中心在一小时内接到的电话数量、交叉路口一天内的事故数量或每小时收到的电子邮件数量。 泊松分布的关键特征
概率质量函数概率质量函数为随机变量的每个可能值分配一个概率。 泊松分布的概率质量函数 (PMF) 由下式给出 ![]() 其中
您可能会在不同来源上找到表示 pmf 公式的不同符号,因此请勿混淆。 让我们通过几个例子来探讨泊松分布。 示例 1:呼叫中心的电话 假设一个呼叫中心平均每小时接到 5 个电话。下一个小时接到正好 3 个电话的概率是多少? 这里,λ = 5(每小时平均电话数量)和 k = 3(期望的电话数量)。将这些值代入泊松 PMF 公式 因此,下一个小时接到正好 3 个电话的概率约为 0.14037,或约 14.04%。 如何在 Python 中使用泊松分布计算概率?要使用泊松分布计算概率,我们有 'scipy.stats.poisson.pmf' 函数,它是 SciPy 库的一部分。此函数用于计算从分布中观察到特定值“k”的概率。 语法 参数
在上面的例子中,已知平均电话数量=每小时 5 个,我们需要找到下一个小时正好接到三个电话的概率。 输出 Poisson PMF: 0.1403738958142805 上述输出与我们手动计算的结果相同。 示例 2:十字路口的事故 假设一个十字路口平均每天发生 2 起事故。一天内至少发生 4 起事故且最多发生 6 起事故的概率是多少? 这里,λ = 2,我们要找 P(X ≥ 4 且 X<=6),这是发生 4、5 和 6 起事故的概率之和。计算每种概率并将其相加 因此,一天内至少发生 4 起事故且最多发生 6 起事故的概率约为 0.1383,或约 13.83%。 Python 代码 输出 Poisson PMF: 0.13834273397520408 如何生成泊松分布?方法 1 - 使用 NumPy让我们创建一个 λ = 3 的随机(1 x 15)分布。 在这里,我们从 NumPy 模块导入了 random 方法。 此行返回一个列表,其中包含来自泊松分布的 15 个随机样本。我们传入 lam=3,这意味着事件的平均发生次数是 3。 数组中的每个数字表示在固定时间间隔内发生的事件数量。 运行程序时,我们得到 **输出:** Poisson Distribution: [4 1 7 2 3 4 4 3 3 7 7 5 2 2 0] 在此输出中,每个数字表示在固定时间间隔内发生的事件数量,并且该分布反映了平均发生率为 3 的泊松分布的特征。 方法 2 - 使用 SciPy我们可以使用 **poisson.rvs(mu, size)** 来生成泊松分布。 输出 Poisson Distribution: [8 2 2 4 2 2 3 3 1 3 3 2 0 1 3] 如何绘制泊松分布图?要绘制泊松分布图,我们首先需要创建一个样本。这里,我们使用 scipy.stats.poisson.rvs() 方法从泊松分布生成随机样本,并使用 matplotlib 库绘制直方图。 输出 ![]() 运行此代码时,它将生成一个直方图,表示从平均值为 3 的泊松分布中抽取的 5000 个随机数的分布。直方图显示了在指定范围内不同值出现的频率,帮助我们可视化泊松分布的形状。 计算每个样本值的概率输出 ![]() 说明 在上面的代码中,我们首先使用平均值为 3 和样本大小为 5000 的泊松分布创建了一个随机样本。 我们创建了一个列表 `prob_dist` 来存储样本中每个值的概率。 然后,我们使用一个 for 循环,计算数组 'x' 中每个值的概率质量函数 (PMF)。 最后,我们显示条形图,显示给定参数的泊松分布。该图表示在假设平均每天发生 3 起事故(λ = 3)的情况下,每天发生不同数量事故的概率。 我们也可以绘制具有不同平均值的泊松分布。 绘制 λ = [2, 3, 4, 5] 的泊松分布输出 ![]() 说明 在上面的代码中
它为不同的 λ 值生成了四个不同的泊松分布子图。 累积分布函数 (CDF)累积分布函数 (CDF) 描述了随机变量取小于或等于特定值的概率。 数学上,随机变量 X 的累积分布函数定义为 其中
我们可以利用泊松 CDF 函数来计算累积概率。 问。一个电子邮件服务器平均每小时收到 6 封电子邮件。下一个小时收到少于 5 封电子邮件的概率是多少? 答。 输出 Probability using PMF P(X < 5) = 0.2850565003166312 Cumulative Probability of X < 5 = 0.2850565003166312 在此代码中: 我们将 k 设置为 4,因为我们要查找收到少于 5 封电子邮件的概率,这对应于泊松随机变量 X 小于 5。
最终结果代表下一个小时收到少于 5 封电子邮件的概率。 以下是一些您可以解决的练习题。我们鼓励您在继续查看给定解决方案之前独立解决问题。 问。 1 一个工厂平均每周生产 10 件次品。一周内正好有 8 件次品的概率是多少? 解。 平均发生率,λ = 10 计算 pmf 的值,k = 8 输出 Poisson PMF: 0.11259903214902009 问。 2 一个网站平均每小时有 500 次访问。在随机选择的一个小时内访问次数超过 600 次的概率是多少? 解。 平均发生率,λ = 500 计算 pmf 的值,k = 600 输出 Poisson PMF: 1.3566714436562893e-06 问。 3 一家餐厅在午餐时间平均供应 15 份素食餐。午餐时间供应正好 10 份素食餐的概率是多少? 解。 平均发生率,λ = 500 计算 pmf 的值,k = 600 输出 Poisson PMF: 0.04861075082960534 问。一家汽车租赁公司平均每天租出 4 辆豪华车。某一天租出少于 3 辆豪华车的概率是多少? 解。 平均汽车数量,λ = 4 计算 cdf 的汽车数量,k < 3 输出 Poisson CDF: 0.23810330555354436 问。 5 一家零售店平均每小时有 12 位顾客。下一个小时有超过 15 位顾客的概率是多少? 解。 平均顾客数量 = 12 要计算 CDF 的顾客数量,k > 15 输出 Poisson CDF of attending customers <= 15: 0.7720245323035447 Poisson CDF of attending customers > 15: 0.22797546769645527 总结
在整篇文章中,我们提供了使用泊松 PMF 和 CDF 函数计算概率的 Python 代码示例。这些示例说明了如何处理泊松分布并将其应用于现实场景。 |
| 生成安全的随机数 在本教程中,我们将学习一个有趣的 Python 模块,名为 secret。我们还将学习它的方法以及它与 random 模块的区别。它发布于 Python 3.6,并被广泛称为...
5 分钟阅读
切比雪夫多项式是正交多项式家族,用于数学的各个分支,例如信号处理、数值分析和近似理论。切比雪夫多项式可用于使用切比雪夫级数近似函数。切比雪夫级数是切比雪夫多项式的集合...
阅读 3 分钟
在本文中,我想讨论 PyCaret,一个新 Python 机器学习库。PyCaret 被誉为数据科学家的低代码资源,旨在缩短机器学习实验的“假设到见解的周期时间”。它使数据科学家能够完成实验...
阅读 6 分钟
xxhash 是 Yann Collet 的 xxHash 库的 Python 模块。xxHash 是一种极其快速的哈希计算,运行速度达到 RAM 速度限制。它有效地完成了 SMHasher 测试套件,该套件评估哈希能力的冲击、散射和不规则特性。代码高度便携,并且哈希是...
5 分钟阅读
在下面的教程中,我们将了解如何借助 Python 编程语言创建身体质量指数 (BMI) 计算器。但在开始创建之前;让我们简要讨论一下身体质量指数 (BMI) 是什么。了解身体质量指数 (BMI) BMI,简称...
阅读 4 分钟
本文涵盖了 8 谜题问题的解决方案。提供一个 3x3 的棋盘,上面有 8 个瓦片(每个瓦片上有一个从 1 到 8 的数字)和一个空格。目标是利用空格来排列数字...
阅读 6 分钟
障碍对象允许一组线程在继续执行之前相互等待。它对于需要按特定顺序执行的任务,或需要同步以避免竞争条件的任务非常有用。它们用于...
阅读 3 分钟
GitHub, Inc 提供了一个在线托管服务,用于使用 Git 进行应用程序开发和变更控制。它提供了每个软件功能请求、项目访问控制、持续集成、任务管理、错误跟踪以及 Git 的分布式版本控制。它是一家总部位于...的微软公司。
7 分钟阅读
在您的 Python 之旅中,您可能需要在某个不确定的点找到 Python 可迭代对象(如列表或字典)中的第一个满足特定要求的项。唯一的例外是当需要确认“一个”特定项是否存在于……
阅读 13 分钟
OpenCV是一个开源的Python库,用于理解数字图像的内容。CV是计算机视觉的缩写形式。它从实时图像或数字图像中提取描述,这可能是一个对象、一段文本描述等等。
阅读1分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India