通过案例研究二项分布和泊松分布之间关系
通过案例研究二项分布和泊松分布之间关系
- 试验名称:
- 案例分析:
- 建模求解:
- 1.固定概率p为0.01,计算盈利不少于200000概率P
- (1) 参数定义
- (2) 二项分布的计算
- (3) 泊松分布的计算
- (4) 二项分布与泊松分布的对比
- (5) 程序设计
- 附录1:Python代码仿真
试验名称:
通过案例研究二项分布和泊松分布之间关系
案例分析:
某运输公司有600辆汽车参加保险,在一年内每辆汽车出事故的概率为p,每辆参加保险的汽车每年交保费1000元,若一辆车出事故保险公司最多赔偿100000元,计算保险公司一年赚钱不少于200000元的概率,并考察二项分布和泊松分布的关系.
建模求解:
由于案例中未直接给出一年内每辆车出事故的概率p的具体取值,故接下来的所有计算将围绕p进行讨论。
1.固定概率p为0.01,计算盈利不少于200000概率P
(1) 参数定义
(2) 二项分布的计算
运输公司共有n=600辆汽车参加保险,在一年内每辆汽车出事故的概率为p,且每辆汽车之间是否出事故相互独立, 因此一年内出事故的汽车数量X服从二项分布:X∼b(n,p),其中n=600,p=0.01。
由于保险公司的总盈利为
n
∗
C
−
X
∗
L
,
n*C-X*L,
n∗C−X∗L,
则保险公司盈利不少于W=200000的概率为
P
[
n
×
C
−
X
×
L
≥
W
]
=
P
[
X
≤
(
n
×
C
−
W
)
/
L
]
。
P[n×C-X×L≥W]=P[X≤(n×C-W)/L]。
P[n×C−X×L≥W]=P[X≤(n×C−W)/L]。
代入相应数值,即计算概率
P
(
X
≤
4
)
P(X≤4)
P(X≤4)
根据分布函数定义可知
F
(
x
)
=
P
(
X
≤
x
)
F(x)=P(X≤x)
F(x)=P(X≤x)即:
下面将根据上述推导结果,利用计算机程序计算概率 P{X≤4} ,并绘制二项分布的概率分布图像。
(3) 泊松分布的计算
根据泊松定理可知,当参数n很大且概率值p很小时,参数为n,p的二项分布可由参数λ=np的泊松分布进行近似计算。
因此可知,出事故的汽车数量X近似服从泊松分布:X∼ ̇π(λ),其中λ=np。从而可得公司盈利不少于W=200000的概率为:
根据泊松分布的推导结果,利用计算机程序计算概率P{X≤4},并绘制参数为λ=np的泊松分布的概率分布图像。
(4) 二项分布与泊松分布的对比
为了定量研究二项分布和泊松分布之间的关系,下面通过计算二者概率值的差值的平方对比二者之间概率分布的差异:
S
E
=
(
P
(
X
1
=
k
)
−
P
(
X
2
=
k
)
)
2
SE=(P(X_1=k)-P(X_2=k))^2
SE=(P(X1=k)−P(X2=k))2
(5) 程序设计
根据上述分析和计算推导,利用Python 程序进行编程计算,相应的参数数值如(1)中表格所示,程序具体设计过程参见附录一,具体计算结果如下。
保险公司一年盈利不少于200000的概率为:
- 二项分布计算结果: P ( W ≥ 200000 ) = P ( X ≤ 4 ) = 0.2837 P(W≥200000)=P(X≤4)=0.2837 P(W≥200000)=P(X≤4)=0.2837
- 泊松分布计算结果:
P
(
W
≥
200000
)
=
P
(
X
≤
4
)
=
0.2851
P(W≥200000)=P(X≤4)=0.2851
P(W≥200000)=P(X≤4)=0.2851
通过上述计算结果发现,采用二项分布和泊松分布分别计算盈利概率值P的误差很小。为了进一步比较二项分布和泊松分布之间的关系,绘制两个分布的概率分布图像和对应概率的平方误差,如下图I 所示。
根据图I所示, 二项分布b(600,0.01)与泊松分布π(6)的概率分布图像几乎一致,通过计算其对应概率值的平方误差可知,其平方误差小于10-7。再次从定量角度验证了泊松定理的正确性,即当参数n很大且概率值p很小时,参数为n,p的二项分布可由参数λ=np的泊松分布进行近似计算。
附录1:Python代码仿真
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import binom, poisson
# 参数定义
n = 600 # 汽车数量
p = 0.01 # 每辆车出事故的概率
C = 1000 # 每辆车的保险费
L = 100000 # 每辆车的赔偿金额
P = 200000 # 保险公司希望盈利不少于的金额
# 设置字体
plt.rcParams['font.sans-serif'] = ['SimHei'] # 使用黑体
plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题
# 计算盈利不少于 P 的最大事故数量
k_max = (n * C - P) // L
# 计算泊松分布的均值
lambda_poisson = n * p
# 可视化二项分布和泊松分布
x = np.arange(0, n + 1-570) # 事故数量范围
binom_dist = binom.pmf(x, n, p) # 二项分布概率质量函数
poisson_dist = poisson.pmf(x, lambda_poisson) # 泊松分布概率质量函数
# 输出结果
print(f"保险公司一年盈利不少于 {P} 的概率(使用二项分布):{binom.cdf(k_max, n, p):.4f}")
print(f"保险公司一年盈利不少于 {P} 的概率(使用泊松分布):{poisson.cdf(k_max, lambda_poisson):.4f}")
# 计算二项分布与泊松分布的差值
difference = binom_dist - poisson_dist
difference_squared = difference ** 2
# 可视化二项分布和泊松分布
plt.figure(figsize=(12, 8))
# 绘制二项分布和泊松分布
plt.subplot(2, 1, 1) # 一行两列的第一个子图
plt.plot(x, binom_dist, 'bD', label='二项分布', alpha=0.5, markersize=5) # 圆点
plt.plot(x, poisson_dist, 'ro', label='泊松分布', alpha=0.5, markersize=3) # 菱形
plt.title('二项分布与泊松分布的比较',fontsize=16)
plt.xlabel('事故数量',fontsize=14)
plt.ylabel('概率',fontsize=14)
plt.legend()
plt.grid()
# 绘制二项分布和泊松分布的差值平方
plt.subplot(2, 1, 2) # 一行两列的第二个子图
plt.plot(x, difference_squared, 'g-', label='差值平方', alpha=0.7) # 绘制差值平方线
plt.title('二项分布与泊松分布的差值平方',fontsize=16)
plt.xlabel('事故数量',fontsize=14)
plt.ylabel('差值平方',fontsize=14)
plt.axhline(0, color='black', linewidth=0.8, linestyle='--') # 绘制差值为0的水平线
plt.legend()
plt.grid()
plt.tight_layout() # 自动调整子图参数,使之填充整个图像区域
plt.show()
本次系第一次使用md编辑器,操作还是不太熟练,希望大家多多指正。
这个试验是2024年秋季学期概率论课程的一次试验实践的内容,在这里放出来,欢迎讨论学习!