iPAS AI 應用規劃師 中級 科目二 大數據處理分析與應用

scipy.stats.poisson 的 pmf 和 cdf 在算什麼?

原題 42

考慮某生產線每小時出現瑕疵品的個數符合卜瓦松分佈(Poisson Distribution),已知平均每小時產生 5 個瑕疵品,附圖程式碼展示資料處理,請問下列敘述何者正確? import numpy as np from scipy.stats import poisson lambda_poisson = 5 print(poisson.pmf(5, lambda_poisson))

白話

生產線每小時平均出現 5 個瑕疵品,這個事件的次數分佈符合卜瓦松分佈。程式碼用 scipy.stats.poisson 計算 pmf(5, 5),並搭配四個關於 lambda、pmf、適用條件和 cdf 的敘述,要你判斷哪一個描述是正確的。

問你:對於這段程式碼和卜瓦松分佈的性質,哪一個敘述正確?

點選你的答案。

01 總結

一句話總結

正確答案是 C:卜瓦松分佈的適用條件是事件彼此獨立,且平均發生率(λ)固定不變。lambda 是平均發生次數(不是上限)、pmf 算的是「恰好等於 k」的機率、cdf 算的是「小於等於 k」的機率。

02 情境

先感受問題:工廠品管要預測瑕疵品個數的機率

「精準製造」工廠的品管工程師小嘉需要分析生產線,每小時平均出現 5 個瑕疵品。她想回答幾個問題:

「某一小時內恰好出現 5 個瑕疵品的機率是多少?」→ pmf
「某一小時內瑕疵品不超過 10 個的機率?」→ cdf
「這個分佈模型的使用前提是什麼?」→ 適用條件

小嘉用 scipy.stats.poisson 計算。關鍵是要搞清楚:lambda 代表什麼意義、pmf 和 cdf 各算哪一段機率。

卜瓦松分佈能用的前提是:每次瑕疵品出現的事件互相獨立(一個瑕疵品不會影響下一個),而且平均發生率(每小時 5 個)在觀察期間保持穩定,不會忽多忽少。這就是選項 C 描述的內容。

03 對照

三個常見對卜瓦松分佈的誤解

  1. 把 λ 誤解為「上限」:lambda(λ)是「平均發生次數」,不是「最多幾次」。lambda = 5 表示長期觀察下平均每小時 5 個,某小時可能是 3 個、也可能是 9 個,理論上可以到無限大(只是機率越來越小)。
  2. 把 pmf 誤解為「小於 k」的機率:pmf(probability mass function,機率質量函數)算的是「恰好等於 k」的機率,例如 pmf(5, 5) = P(X = 5),不是 P(X < 5)。「小於等於 k」要用 cdf(cumulative distribution function)。
  3. 把 cdf 誤解為「大於等於 k」的機率:cdf(10, 5) = P(X ≤ 10),算的是「10 個以內(含 10 個)」的累積機率。「大於等於 10」的機率要用 1 - cdf(9, 5),不是直接呼叫 cdf(10, 5)。
  4. 忽略適用條件:卜瓦松分佈有三個適用前提:事件獨立、時間段內平均率固定、單位時間內事件發生次數為整數(計數型資料)。如果瑕疵品之間有關聯(例如某個機器故障導致連續產生瑕疵品),就不符合獨立性條件,不能直接套用。
  5. 把卜瓦松分佈的 λ 和高斯分佈的參數混淆:高斯分佈(正態分佈)有兩個參數 μ(均值)和 σ(標準差),卜瓦松只有一個 λ,而且 λ 同時等於均值和變異數,這是卜瓦松分佈的特殊性質。
04 解法

逐一驗證四個選項

小嘉對每個選項做驗證:

選項 A:lambda = 5 表示「最多 5 個」?
→ 錯。lambda 是均值,不是上限。卜瓦松分佈的取值範圍是 0, 1, 2, 3... 無上限。

選項 B:pmf(5, 5) 表示「小於 5 個」的機率?
→ 錯。pmf 是點機率 P(X = k),pmf(5, 5) = P(X = 5) ≈ 0.1755,不是 P(X < 5)。

選項 C:適用條件是事件獨立且平均發生率固定?
→ 正確。這是卜瓦松分佈的核心假設,也是最重要的適用前提。

選項 D:cdf(10, 5) 表示「大於等於 10 個」?
→ 錯。cdf 是累積分佈函數 P(X ≤ k),cdf(10, 5) = P(X ≤ 10),不是 P(X ≥ 10)。

這就是選項 C 講的:卜瓦松分佈的適用條件為事件彼此獨立,且平均發生率固定

技術版:scipy.stats.poisson 的 API 精讀與公式

中級考試大概率會考程式碼跟公式,所以這部分你還是要學。但如果現在學起來很痛苦,可以先跳過,等讀完其他題目回頭再來。

Step 1 純故事版

想像投擲一顆骰子。「pmf」是問「恰好出現 5 點的機率是多少?」是一個點的機率。「cdf」是問「出現 1 到 5 點(含)的機率是多少?」是把 1、2、3、4、5 的機率都加起來。lambda 是說「長期平均丟出幾點」,不是說「最多幾點」。

Step 2 中文 ↔ 程式碼對照
白話說法程式碼
平均每小時 5 個瑕疵品lambda_poisson = 5
恰好 5 個瑕疵品的機率poisson.pmf(5, lambda_poisson)
不超過 10 個(含 10)的機率poisson.cdf(10, lambda_poisson)
超過 10 個(含 11+)的機率1 - poisson.cdf(10, lambda_poisson)
恰好大於等於 10 個的機率1 - poisson.cdf(9, lambda_poisson)
Step 3 符號角色表
λ(lambda)
卜瓦松分佈的唯一參數,等於均值也等於變異數:E(X) = Var(X) = λ。
pmf(k, λ)
機率質量函數,計算 P(X = k):在觀察期間內恰好發生 k 次事件的機率。
cdf(k, λ)
累積分佈函數,計算 P(X ≤ k):發生次數不超過 k 次的累積機率。
獨立性(independence)
每次事件的發生不受其他事件影響,是卜瓦松分佈的必要假設。
固定發生率(stationary rate)
觀察期間內 λ 不隨時間改變,是卜瓦松分佈的另一必要假設。
Step 4 完整公式對應
意義公式
pmf:P(X = k)P(X=k) = (λᵏ · e⁻λ) / k!
cdf:P(X ≤ k)P(X≤k) = Σᵢ₌₀ᵏ (λⁱ · e⁻λ) / i!
pmf(5, 5) 的實際計算P(X=5) = (5⁵ · e⁻⁵) / 5! = 3125 × 0.0067 / 120 ≈ 0.1755
Step 5 自我複述
  1. lambda = 5 代表什麼?為什麼不是「最多 5 個」?
  2. pmf(k, λ) 和 cdf(k, λ) 各算什麼範圍的機率?怎麼用 cdf 算「超過 k」的機率?
  3. 卜瓦松分佈的兩個必要假設是什麼?違反其中一個會怎樣?
  4. 卜瓦松分佈的均值和變異數各是什麼?和高斯分佈有何不同?
  5. 什麼時候用卜瓦松分佈而不用二項分佈?兩者的關係是什麼?
05 陷阱

為什麼其他選項是錯的

選項 A lambda = 5 表示最多 5 個

字面在說什麼:lambda_poisson = 5 代表每小時最多只會出現 5 個瑕疵品。

為什麼不對:lambda(λ)是卜瓦松分佈的「平均發生次數」,是期望值(mean),不是上限(maximum)。卜瓦松分佈的取值範圍是 0, 1, 2, 3, ...,理論上可以到無限大。某小時可能只有 0 個瑕疵品,也可能有 15 個,只是機率越偏離 λ=5 就越低。

誰會選錯:把 lambda 當成「容量上限」或「閾值」的人,混淆了機率分佈的「參數」和「取值範圍」。

選項 B pmf(5, 5) 表示小於 5 個的機率

字面在說什麼:poisson.pmf(5, 5) 計算的是出現小於 5 個瑕疵品的機率。

為什麼不對:pmf 是 probability mass function(機率質量函數),pmf(k, λ) 計算的是「恰好等於 k 次」的機率,即 P(X = k)。pmf(5, 5) 計算 P(X = 5) ≈ 0.1755。「小於 5 個」的機率是 P(X < 5) = cdf(4, 5),不是 pmf。

誰會選錯:不確定 pmf 和 cdf 差異的人,或誤把 pmf 當成「累積機率」的人。

選項 D cdf(10, 5) 表示大於等於 10 個的機率

字面在說什麼:poisson.cdf(10, 5) 計算的是出現大於等於 10 個瑕疵品的機率。

為什麼不對:cdf 是 cumulative distribution function(累積分佈函數),cdf(k, λ) 計算的是 P(X ≤ k),也就是「不超過 k 次(含 k)」的累積機率。cdf(10, 5) = P(X ≤ 10),是 0 到 10 個瑕疵品的機率總和(約 0.9863)。「大於等於 10 個」的機率是 P(X ≥ 10) = 1 - cdf(9, 5),需要用補數計算。

誰會選錯:記得 cdf 和「累積」有關,但搞混了是「累積到 k」還是「k 之後」的人。

06 變形

同個考點下次怎麼變形

變形 1 邊界

直覺:lambda = 5 時,P(X = 0) 是多少?有瑕疵品都沒出現的可能嗎?

答案:有可能。P(X = 0) = e⁻⁵ ≈ 0.0067,大約 0.67%,機率很小但不為零。這反映卜瓦松分佈的特性:即使平均值是 5,還是存在某小時一個瑕疵品都沒有的可能性,只是機率非常低。

變形 2 反例

直覺:如果瑕疵品的出現有「群聚效應」(一個壞掉後面幾個也壞),還能用卜瓦松分佈嗎?

答案:不能。群聚效應破壞了「事件獨立」這個假設。前一個瑕疵品的出現增加了後面出現瑕疵品的機率,不再獨立。這種情況下卜瓦松分佈低估了「多個瑕疵品聚在一起」的機率,實際分佈的尾部會更厚。應改用負二項分佈(Negative Binomial Distribution)來描述這種過度離散(overdispersion)的情況。

變形 3 升級版

直覺:怎麼用 scipy.stats.poisson 計算「至少 8 個瑕疵品」的機率?

答案:P(X ≥ 8) = 1 - P(X ≤ 7) = 1 - poisson.cdf(7, 5)。不能直接用 poisson.cdf(8, 5),因為那是 P(X ≤ 8),包含了 X=8 的情況。「至少 8 個」意思是 X=8, 9, 10, ...,要用 1 減掉「7 個以內(含 7)」的累積機率。

變形 4 跨領域

直覺:除了工廠瑕疵品,還有哪些現實場景符合卜瓦松分佈?

答案:網站每分鐘的請求數(流量分析)、電話客服每分鐘接到的來電數(排隊理論)、每平方公里的閃電次數(氣象統計)、每單位時間的 DNA 突變次數(生物統計)。共同特徵是:計算「稀有事件在固定時間/空間內的發生次數」,且事件彼此獨立、平均率固定。

變形 5 評估指標

直覺:怎麼驗證一組資料是否真的符合卜瓦松分佈?

答案:卜瓦松分佈有一個獨特性質:均值等於變異數(E(X) = Var(X) = λ)。如果計算出樣本的均值和變異數,看它們是否接近,是最快的初步檢驗。更嚴格的方法是用卡方適合度檢定(Chi-squared goodness-of-fit test),比較實際頻次分佈和理論卜瓦松分佈的差異。scipy 可以用 scipy.stats.chisquare 做這個檢定。

07 延伸

想再往下看,這 5 個

出處

iPAS 經濟部產業人才能力鑑定 ・ 114 年第二梯次 iPAS AI 應用規劃師 中級 科目二 大數據處理分析與應用 第 42 題

查看官方原文 PDF