統計與計量‎ > ‎應用總覽‎ > ‎

時間內事件發生率分析 -卜瓦松 (Poisson) 分佈

假設

在一連續時間內 (亦可為長度) 區間 [0, ]t 內,事件以下列方式發生:
  • (A) 在很短時間區間長度 h 內:
    • (1) 恰有一個事件發生之機率大約為 λ*h (與區間的長度成正比),
    • (2) 二個或二個以上事件,在此時間內發生機率大約為 0
  • (B) 在一時間長度為 h 之區間內,某一事件之發生與否,
    並不影響另一不重疊時間區間內事件發生之機率。

機率公式與分佈


情境一

在組裝工廠中,工管人員按表觀察並記錄,作業員在接近中午 30 分鐘內,常未依規定位置貼產品標籤,平均每 5 分鐘會貼錯 3 次,求算貼錯產品標籤位置:
  1. 發生 5 次機率。
  2. 低於 3 次機率。
  3. 高於 6 次機率。
程式 解答
rm(list=ls())

mu <- 3

freq <- 5
ans <- dpois(freq, mu)
print(sprintf('發生次數 =  %d 之機率 = %.4f', freq, ans))

freq <-3 
ans <- ppois(freq, mu, lower.tail = TRUE)
print(sprintf('發生次數 <= %d 之機率 = %.4f', freq, ans))

freq <-6 
ans <- ppois(freq, mu, lower.tail = FALSE)
print(sprintf('發生次數 >  %d 之機率 = %.4f', freq, ans))
[1] "發生次數 =  5 之機率 = 0.1008"
[2] "發生次數 <= 3 之機率 = 0.6472"
[3] "發生次數 >  6 之機率 = 0.0335"

情境二

經過衛生機構統計,每 1000 人中,會有 0.5% 的人對海鮮過敏,假設對海鮮有過敏現象的人數機率分配是一「卜瓦松分配」,求算每 1000 人中海鮮有過敏現象人數:
  1. 2 人發生過敏現象機率。
  2. 低於 4 人以下發生過敏現象機率。
  3. 3 人以上發生過敏現象機率。
程式 解答
rm(list=ls())

mu <- 0.005 * 1000

freq <- 2
ans <- dpois(freq, mu)
print(sprintf('發生人數 =  %d 之機率 = %.4f', freq, ans))

freq <- 4 
ans <- ppois(freq, mu, lower.tail = TRUE)
print(sprintf('發生人數 <= %d 之機率 = %.4f', freq, ans))

freq <- 3 
ans <- ppois(freq, mu, lower.tail = FALSE)
print(sprintf('發生人數 >  %d 之機率 = %.4f', freq, ans))
[1] "發生人數 =  2 之機率 = 0.0842"
[2] "發生人數 <= 4 之機率 = 0.4405"
[3] "發生人數 >  3 之機率 = 0.7350"

情境三

經過捐血中心統計,每 20000 人中,會有 0.03% 的人血液中有 C 型肝炎病毒,假設血液中有 C 型肝炎病毒人數機率分配是一「卜瓦松分配」,求算每 20000 人血液中有 C 型肝炎病毒人數:
  1. 3 人血液中有 C 型肝炎病毒機率。
  2. 低於 4 人以下血液中有 C 型肝炎病毒。
  3. 2 人以上血液中有 C 型肝炎病毒。
程式 解答
rm(list=ls())

mu <- 0.0003 * 20000

freq <- 3
ans <- dpois(freq, mu)
print(sprintf('發生人數 =  %d 之機率 = %.4f', freq, ans))

freq <- 4 
ans <- ppois(freq, mu, lower.tail = TRUE)
print(sprintf('發生人數 <= %d 之機率 = %.4f', freq, ans))

freq <- 2 
ans <- ppois(freq, mu, lower.tail = FALSE)
print(sprintf('發生人數 >  %d 之機率 = %.4f', freq, ans))
[1] "發生人數 =  3 之機率 = 0.0892"
[2] "發生人數 <= 4 之機率 = 0.2851"
[3] "發生人數 >  2 之機率 = 0.9380"