泊松分布证明(Python数据分析)

 2025-08-10 18:33:01  阅读 562  评论 0

摘要:主要内容:一、什么是泊松分布二、用Python解决实际问题三、泊松分布的形态变化泊松分布以法国数学家泊松命名,他在1837年出版了一篇关于泊松分布的论文。一、什么是泊松分布泊松分布通常是与固定时间或空间间隔内的计数相关的离散分布。比如:我平均每周写三篇文章,那我下周

主要内容:

一、什么是泊松分布

二、用Python解决实际问题

三、泊松分布的形态变化

泊松分布以法国数学家泊松命名,他在1837年出版了一篇关于泊松分布的论文。

一、什么是泊松分布

泊松分布通常是与固定时间或空间间隔内的计数相关的离散分布。比如:

我平均每周写三篇文章,那我下周会写几篇文章?小明平均一个月健身7次,那下个月他会健身几次?马路边上平均每1000米停有20辆车,那下一个一千米停了多少辆车?老板平均一天找我两回,假如我明天翘班,他有多大概率不会发现?

在这两个例子中,每周、每月、每1000米对应着固定的时间或空间,而三篇文章、健身七次、20辆车则对应着在固定时间或空间中的计数。泊松分布描述了在类似情境下不同计数的发生概率。

泊松分布对应的概率密度函数为:

在这里,λ就是我们前边提到的固定时间或空间内的计数的均值,或者叫期望,同时,它还是泊松分布的方差。有了概率密度函数之后,剩下的就是计算了,而计算工作交给计算机来完成再好不过。

在实际生活中,泊松分布的应用面非常广,比如在交通规划中,我们需要判断一个小时内经过某路口的车辆有多少;在地铁站中,我们想知道一个小时内的客流量有多大可能会超出承载能力;在网站运维中,我们要弄清楚流量的峰值可能会是多少,有多大概率会发生这种情况等等。

那么接下来,我们就来看一下它是如何解决实际问题的。

二、用Python解决实际问题

我们先写一个poison_pdf(lamb, k)函数,计算期望为lamb的泊松分布中,刚好计数为k的概率是多少;然后写一个poison_pdf(lamb, k)函数,计算期望为lamb的泊松分布中,计数≤k的概率是多少。

from math import exp, factorial
# 概率密度函数
def poison_pdf(lamb, k):
 return lamb ** k * exp(-lamb) / factorial(k)
 
# 累计分布函数
def poison_cdf(lamb, k):
 return sum([poison_pdf(lamb, i) for i in range(k+1)])

好,接下来我们来回答刚才的第一个问题:我平均每周写三篇文章,下周我会写几篇?

s = ('一周刚好写{0}篇文章的概率为{1:.2f}%,'
 '写不超过{2}篇文章的概率为{3:.2f}%')
for i in range(11):
 print(s.format(i, poison_pdf(3, i) * 100,
 i, poison_cdf(3, i) * 100))

可以看到,我下周有90%+的概率会写不超过5篇文章。但是这样看起来不够直观,我们把它画出来看一下:

import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib as mpl
from matplotlib.ticker import FuncFormatter
sns.set(style='white')
mpl.rcParams['font.family'] = 'sans-serif'
mpl.rcParams['font.sans-serif'] = 'WenQuanYi Micro Hei'
# 用来将坐标轴数字转换成百分比
def to_percent(tmp, position):
 return '{0:.1f}%'.format(tmp * 100)
# 计算概率密度和累积概率密度
k = list(range(11))
pdf = [poison_pdf(3, i) for i in range(11)]
cdf = [poison_cdf(3, i) for i in range(11)]
# 绘制概率密度条形图
fig, ax1 = plt.subplots(figsize=(10, 6))
ax1.bar(k, pdf, color='c')
ax1.set_ylabel('概率', fontsize=16)
ax1.yaxis.set_major_formatter(FuncFormatter(to_percent))
# 绘制累积概率密度曲线
ax2 = ax1.twinx()
ax2.plot(k, cdf, '-r')
ax2.set_ylabel('累积概率', fontsize=16)
ax2.yaxis.set_major_formatter(FuncFormatter(to_percent))
# 设置标题
plt.title('我一周会写几篇文章?', fontsize=20)

这样,看起来就直观多了,我大概率下周会写5篇以内(含)。在下边的作图过程中,我们做了一些细节的调整,这些内容在我之前的文章中都有提到,如果不清楚或者忘记了,可以回去看一下《从零开始学Python可视化》、《一天一图学Python可视化》、《7天学会Python最佳可视化工具Seaborn》三个系列,它们的阅读顺序不分先后,可以随意调整顺序。

三、泊松分布随着λ增大的形态变化

接下来,我们看一下,随着λ的逐渐变大,其概率密度函数的形态会发生什么变化。

import numpy as np
xs = np.arange(21)
fig, ax = plt.subplots(figsize=(16, 10))
for i in range(3, 10):
 plt.plot(xs, [poison_pdf(i, j) for j in xs], 
 '-', label=r'$\lambda={0}.format(i))
ax.yaxis.set_major_formatter(FuncFormatter(to_percent))
plt.legend();

可以看到,随着λ的逐渐增大,泊松分布的概率密度函数形态越来越接近正态分布。

版权声明:我们致力于保护作者版权,注重分享,被刊用文章【泊松分布证明(Python数据分析)】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!;

原文链接:https://www.yxiso.com/zhishi/2056130.html

发表评论:

关于我们
院校搜的目标不仅是为用户提供数据和信息,更是成为每一位学子梦想实现的桥梁。我们相信,通过准确的信息与专业的指导,每一位学子都能找到属于自己的教育之路,迈向成功的未来。助力每一个梦想,实现更美好的未来!
联系方式
电话:
地址:广东省中山市
Email:beimuxi@protonmail.com

Copyright © 2022 院校搜 Inc. 保留所有权利。 Powered by BEIMUCMS 3.0.3

页面耗时0.0796秒, 内存占用1.93 MB, 访问数据库24次

陕ICP备14005772号-15