Binomial 與 Poisson 分佈的關係
你剛剛聽到:對於罕見事件,Poisson 分佈可視為 Binomial 分佈的極限。把它和故事連起來就很好理解。假設我們每分鐘做一次 Bernoulli 試驗,持續 1 小時,每次成功機率為 0.1。總共會有 60 次試驗,成功次數服從 Binomial 分佈,期望大約得到 6 次成功。這就像影片中提到的 Poisson 故事:一個網站每小時平均有 6 次點擊。因此,抵達率為 \(np\) 的 Poisson 分佈可以近似描述進行 \(n\) 次 Bernoulli 試驗且成功機率為 \(p\) 的 Binomial 分佈(其中 \(n\) 大且 \(p\) 小)。重要的是,Poisson 分佈通常更好用,因為它只有 1 個參數,而 Binomial 分佈有 2 個參數。
現在我們用電腦來探索這兩個分佈。你會先從抵達率為 10 的 Poisson 分佈抽樣,並計算樣本的平均數與標準差。接著,從滿足 \(np = 10\) 的 Binomial 分佈抽樣,並計算其樣本平均數與標準差。
本練習屬於課程
Statistical Thinking in Python (Part 1)
練習說明
- 使用
rng.poisson(),從平均數為10的 Poisson 分佈抽取10000個樣本。 - 為 Binomial 分佈建立要考慮的
n與p清單。選擇n = [20, 100, 1000]與p = [0.5, 0.1, 0.01],使得 \(np\) 都等於 10。 - 在提供的
for迴圈中使用rng.binomial(),針對每一組n, p抽取10000個 Binomial 分佈樣本,並印出樣本的平均數與標準差。共有 3 組n, p:20, 0.5、100, 0.1、1000, 0.01。在迴圈中可用n[i], p[i]取得這些組合。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Draw 10,000 samples out of Poisson distribution: samples_poisson
# Print the mean and standard deviation
print('Poisson: ', np.mean(samples_poisson),
np.std(samples_poisson))
# Specify values of n and p to consider for Binomial: n, p
# Draw 10,000 samples for each n,p pair: samples_binomial
for i in range(3):
samples_binomial = ____
# Print results
print('n =', n[i], 'Binom:', np.mean(samples_binomial),
np.std(samples_binomial))