有了故事,就能做模拟!
有时,用来描述概率分布的故事并没有一个具名分布与之对应。遇到这种情况也不用担心!您总是可以通过模拟来解决。本题和下一题将演示这一点。
在前面的练习中,我们研究过美国职业棒球大联盟中「无安打」这一罕见事件。完全打击(hitting the cycle),即击球员在一场比赛中集齐四种安打,也同样是一个罕见事件。与无安打相似,这类事件可建模为 Poisson 过程,因此两次完全打击之间的时间也服从 Exponential 分布。
我们需要等待多久才能看到一次无安打,接着又看到一次完全打击?思路是:先等待无安打发生的时间,然后在无安打之后,再等待完全打击发生的时间。换句话说,两个不同 Poisson 过程依次到达时的总等待时间是多少?总等待时间等于等待无安打的时间加上等待完全打击的时间。
现在,您将编写一个函数,从这个故事所描述的分布中进行采样。
本练习是课程的一部分
Python 中的统计思维(第 1 部分)
练习说明
- 定义一个函数,调用签名为
successive_poisson(tau1, tau2, size=1),用于采样一次无安打和一次完全打击的总等待时间。- 从以
tau1为参数的指数分布中为无安打抽取等待时间(size个样本),并赋值给t1。 - 从以
tau2为参数的指数分布中为完全打击抽取等待时间(size个样本),并赋值给t2。 - 函数返回两个事件等待时间之和。
- 从以
交互式实操练习
通过完成这段示例代码来试试这个练习。
def successive_poisson(tau1, tau2, size=1):
"""Compute time for arrival of 2 successive Poisson processes."""
# Draw samples out of first exponential distribution: t1
t1 = ____(____, ____)
# Draw samples out of second exponential distribution: t2
t2 = ____(____, ____)
return t1 + t2