案例说明
泊松过程是一种随机过程,它的特点是在任意时刻,发生事件的概率与时刻之前发生的事件数量无关。
本案例使用Python的stats.poissn和scipy.stas.possion库实现泊松过程。
已知某路口上午9点至9:30内通过的大货车数量是5辆,那么在该时间内通过7辆大货车的概率是多少?
泊松分布输出的是一个数列,包含了通过0辆,1辆,2辆,3辆,4辆,5辆,6辆直到12辆的概率
实现思路
第1种方法:使用stats.poisson.pmf函数得出泊松过程的概率质量函数,再用matplotlib.pyplot.plot函数绘制出泊松过程的概率质量函数图像.
第2种方法:使用scipy.stats.possion.rvs函数从泊松分布中生成指定个数的随机数,再使用matplotlib.pyplot.hist函数绘制出泊松过程的概率质量函数图像.
第1种方法
from matplotlib import pyplot as plt
from scipy import stats
import numpy as np
rate = 6
n = np.arange(0, 13)
#参数说明:n表示发生n次事件,rate表示平均发生rate次
y = stats.poisson.pmf(n, rate)
print(y)
print(f'the probability of 8:{y[8]}')
plt.plot(n, y, 'o--')
plt.title('Poisson', fontsize=18)
# 横坐标标题
plt.xlabel('Number of Big Truck')
# 纵坐标标题
plt.ylabel('probability of number')
plt.show()
第2种方法
data = stats.poisson.rvs(mu=6, loc=0, size=1100)
target = [i for i in data if i == 8]
# 输出该时刻通过8辆大货车的实验次数
print(f'the probability of number 8:{len(target) / 1100.0}')
plt.hist(data, bins=12, range=(0, 13), density=True)
plt.title('Poisson', fontsize=18)
plt.xlabel('Number of Big Truck')
plt.ylabel('probability of number')
# 网格显示
plt.grid(axis='y', alpha=0.75)
plt.show()