開始使用免費開始

有了情境,就能模擬!

有時候,描述機率分配的情境並沒有對應到一個已命名的分配。遇到這種情況別擔心!你一樣可以用模擬來處理。這一題與下一題就要這麼做。

在前面的練習中,我們看過美國職棒大聯盟的「無安打」這種罕見事件。打者在單場集齊四種類型安打的「完全打擊(hitting the cycle)」也是另一種罕見事件。和無安打一樣,這可以用 Poisson 程序建模,因此兩次完全打擊之間的時間服從 Exponential 分配。

我們要等多久才能先看到一次無安打,接著再看到一次完全打擊?也就是說,我們先等無安打發生,之後再等完全打擊發生。換句話說,連續發生的兩個不同 Poisson 程序,其總等候時間是多少?總等候時間就是等無安打的時間,加上等完全打擊的時間。

現在,請你撰寫一個函式,用來從這個情境描述的分配中取樣。

本練習屬於課程

Statistical Thinking in Python (Part 1)

檢視課程

練習說明

  • 定義一個呼叫介面為 successive_poisson(tau1, tau2, size=1) 的函式,用來取樣一次無安打與一次完全打擊的總等候時間。
    • 從以 tau1 為參數的 exponential 分配中,為無安打抽取等候時間(共 size 個樣本),指派給 t1
    • 從以 tau2 為參數的 exponential 分配中,為完全打擊抽取等候時間(共 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
編輯並執行程式碼