

同學們,在前面的章節中,我們學會了什麼是機率,也探討了臨床篩檢中的不確定性。但是,每次做醫學研究,我們拿到的都是各式各樣的數據——有時是「患者是否康復」(是/否),有時是「患者的存活天數」(天數),有時是「急診室送進來的車禍傷患數」(人數)。
在統計學上,我們需要一個「數學橋樑」把這些真實世界的觀測結果與機率聯繫起來。這個橋樑就叫做隨機變項 (random variable)。
隨機變項並不是一個固定數值的變數,而是一個將隨機試驗的結果對應到數值的函數。一般我們用大寫字母(如 \(X\))表示隨機變項本身,用小寫字母(如 \(x\))表示它具體取出的某個數值。
隨機變項主要可以分成兩大家族:
本章,我們將全神貫注在第一大成員——離散機率分布上。
當我們想描述一個離散隨機變項 \(X\) 的脾氣時,有兩個核心概念是必須掌握的:
這是一個幫每一個可能的取值 \(x\) 指派其發生機率的函數,記作 \(P(X = x)\) 或 \(p(x)\)。 它必須遵守兩大憲法:
期望值 \(E(X)\) 就是當試驗重複無數次之後,這個隨機變項的長期平均值。 計算公式是把每個可能的值乘以它發生的機率,然後全部加起來:
\[E(X) = \mu = \sum x P(X=x)\]
💡 教授的診間比喻: 假設有一種輕微手術,有 80% 的患者完全沒有併發症(併發症數 \(X = 0\)),有 15% 的人有 1 個輕微併發症(\(X = 1\)),有 5% 的人有 2 個併發症(\(X = 2\))。 請問一位病患預期會遇到的併發症個數(期望值)是多少? \[E(X) = 0 \times 0.80 + 1 \times 0.15 + 2 \times 0.05 = 0.15 + 0.10 = 0.25 \text{ 個}\] 雖然沒有任何一個病人的併發症個數會是「0.25 個」(你不可能切出 1/4 個倂發症!),但這個期望值告訴醫師:平均而言,每 100 位動這種手術的病人,總共會出現 25 個併發症。
離散隨機變項的變異數 \(Var(X)\) 衡量的是這些取值圍繞在期望值周圍的波動程度:
\[Var(X) = \sigma^2 = E[(X - E(X))^2] = \sum (x - \mu)^2 P(X=x)\]
在臨床研究中,最常見的狀況就是「投藥後,病人要么好了,要么沒好」;「手術後,病人要么活著,要么死了」。這種只有兩種可能結果的單次試驗,在統計學上叫做白努利試驗 (Bernoulli trial)。
如果我們進行了 \(n\) 次獨立的白努利試驗,每一次試驗成功的機率都是固定的 \(p\)(失敗機率為 \(1-p\))。此時,這 \(n\) 次試驗中「成功次數」\(X\) 的機率分布,就稱為二項分布 (binomial distribution),記作 \(X \sim B(n, p)\)。
要計算二項分布的機率,我們必須知道在 \(n\) 次試驗中,出現 \(k\) 次成功的不同組合方式有多少種。我們使用組合 (combination) 公式:
\[\binom{n}{k} = C^n_k = \frac{n!}{k!(n-k)!}\]
在 \(n\) 次試驗中,成功次數剛好為 \(k\) 次的機率為:
\[P(X = k) = \binom{n}{k} p^k (1-p)^{n-k}, \quad k = 0, 1, 2, \dots, n\]
💊 新藥試驗例子: 假設某種新感冒藥的治癒率為 65% (\(p = 0.65\))。今天有 10 位獨立患者服用此藥 (\(n = 10\))。 請問這 10 人中「剛好有 7 人被治癒」的機率是多少? \[P(X = 7) = \binom{10}{7} (0.65)^7 (0.35)^3\] 其中 \(\binom{10}{7} = \frac{10!}{7!3!} = 120\)。 \[P(X = 7) = 120 \times 0.04902 \times 0.042875 \approx 0.2522 \text{ (25.2\%)}\] 平均而言,這 10 位患者中預期會被治癒的人數為 \(E(X) = 10 \times 0.65 = 6.5\) 人。
二項分布適合用在「有固定總試驗次數 \(n\)」的場景。但如果在醫學研究中,我們想觀察的是「在一段時間或空間內,某個罕見事件發生的次數」,那該怎麼辦?
例如:
這類事件的特點是:潛在的「試驗次數」極大(甚至趨近無限大),但單次事件發生的機率極小。此時,我們使用卜瓦松分布 (Poisson distribution),記作 \(X \sim \text{Poisson}(\lambda)\)。
其中 \(\lambda\)(Lambda)代表在該時間/空間區間內,事件發生的平均次數(期望值)。
事件在指定區間內發生 \(k\) 次的機率為:
\[P(X = k) = \frac{\lambda^k e^{-\lambda}}{k!}, \quad k = 0, 1, 2, \dots\]
這裡的 \(e\) 是自然常數(約等於 2.71828)。 卜瓦松分布最神奇也最容易記的特徵就是:
當二項分布的 \(n\) 非常大(例如 \(n \ge 100\)),且 \(p\) 非常小(例如 \(p \le 0.01\))時,直接計算二項分布會非常痛苦。此時我們可以令 \(\lambda = np\),用卜瓦松分布來非常精準地逼近二項分布的計算結果。
現在,我們打開 RStudio,利用 R 的內建機率函數,來幫上述的兩個臨床情境進行建模,並繪製出精美的機率質量函數分布圖。
在 R 中,對於任何分布(如 binom, pois),都有四個核心函數:
d 開頭 (density/probability):計算單點機率 \(P(X = k)\),如 dbinom(), dpois()。p 開頭 (probability cumulative):計算累積機率 \(P(X \le k)\),如 pbinom(), ppois()。q 開 quarter (quantile):給定累積機率,反查隨機變數值。r 開頭 (random):隨機抽樣模擬,如 rbinom(), rpois()。# 1. 載入 ggplot2 繪圖套件
library(ggplot2)
# ==========================================
# 情境一:新藥治療成功人數的二項分布 B(10, 0.65)
# ==========================================
n_binom <- 10
p_binom <- 0.65
x_binom <- 0:10
prob_binom <- dbinom(x_binom, size = n_binom, prob = p_binom)
df_binom <- data.frame(
Successes = factor(x_binom),
Probability = prob_binom,
Label = ifelse(prob_binom >= 0.05, sprintf("%.3f", prob_binom), "")
)
p1 <- ggplot(df_binom, aes(x = Successes, y = Probability)) +
geom_col(fill = "#3182ce", color = "#2b6cb0", alpha = 0.8, width = 0.7) +
geom_text(aes(label = Label), vjust = -0.45, size = 3.5, color = "#2d3748", family = "Noto Sans CJK TC") +
scale_y_continuous(limits = c(0, 0.30), expand = expansion(mult = c(0, 0.05))) +
labs(
title = "新藥臨床試驗成功療效人數\n二項分布",
subtitle = paste("試驗人數 (n) = 10 人, 單次成功率 (p) = 0.65"),
x = "成功療效人數 (k)",
y = "發生機率 P(X = k)"
) +
theme_minimal(base_family = "Noto Sans CJK TC", base_size = 12) + # Windows 請更換為 Microsoft JhengHei
theme(
plot.title = element_text(size = 15, hjust = 0.5, color = "#2d3748", lineheight = 1.1),
plot.subtitle = element_text(size = 11, hjust = 0.5, color = "#718096"),
axis.title = element_text(size = 12, color = "#4a5568"),
axis.title.x = element_text(margin = margin(t = 10)),
axis.title.y = element_text(margin = margin(r = 12)),
axis.text = element_text(size = 11, color = "#2d3748"),
panel.background = element_rect(fill = "#f7fafc", color = NA),
plot.background = element_rect(fill = "white", color = NA),
plot.margin = margin(12, 18, 12, 18)
)
# 顯示二項分布圖
print(p1)
# ==========================================
# 情境二:急診室每小時病患抵達人數的卜瓦松分布 Poisson(4)
# ==========================================
lambda_pois <- 4
x_pois <- 0:12
prob_pois <- dpois(x_pois, lambda = lambda_pois)
df_pois <- data.frame(
Arrivals = factor(x_pois),
Probability = prob_pois,
Label = ifelse(prob_pois >= 0.03, sprintf("%.3f", prob_pois), "")
)
p2 <- ggplot(df_pois, aes(x = Arrivals, y = Probability)) +
geom_col(fill = "#319795", color = "#234e52", alpha = 0.8, width = 0.7) +
geom_text(aes(label = Label), vjust = -0.45, size = 3.5, color = "#2d3748", family = "Noto Sans CJK TC") +
scale_y_continuous(limits = c(0, 0.23), expand = expansion(mult = c(0, 0.05))) +
labs(
title = "急診室每小時病患抵達人數\n卜瓦松分布",
subtitle = paste("平均抵達率 (lambda) =", lambda_pois, "人/小時"),
x = "每小時抵達人數 (k)",
y = "發生機率 P(X = k)"
) +
theme_minimal(base_family = "Noto Sans CJK TC", base_size = 12) + # Windows 請更換為 Microsoft JhengHei
theme(
plot.title = element_text(size = 15, hjust = 0.5, color = "#2d3748", lineheight = 1.1),
plot.subtitle = element_text(size = 11, hjust = 0.5, color = "#718096"),
axis.title = element_text(size = 12, color = "#4a5568"),
axis.title.x = element_text(margin = margin(t = 10)),
axis.title.y = element_text(margin = margin(r = 12)),
axis.text = element_text(size = 11, color = "#2d3748"),
panel.background = element_rect(fill = "#f7fafc", color = NA),
plot.background = element_rect(fill = "white", color = NA),
plot.margin = margin(12, 18, 12, 18)
)
# 顯示卜瓦松分布圖
print(p2)

| 中文名稱 | 英文名稱 | 定義與說明 |
|---|---|---|
| 隨機變項 | Random variable | 將隨機試驗之結果對應到具體實數數值的數學函數。 |
| 離散隨機變項 | Discrete random variable | 取值個數有限或屬於可數無限個(通常是整數)的隨機變項。 |
| 連續隨機變項 | Continuous random variable | 取值可以在某實數區間內任意取值的隨機變項。 |
| 機率質量函數 | Probability mass function (PMF) | 給定離散隨機變項各別可能取值之精確發生機率的函數。 |
| 期望值 | Expected value | 隨機變項無限次重複試驗後的長期平均值,即以機率為權重的加權平均。 |
| 變異數 | Variance | 衡量隨機變項取值與期望值之間偏差平方和的加權平均。 |
| 白努利試驗 | Bernoulli trial | 只有兩種可能結果(成功/失敗)的單次獨立隨機試驗。 |
| 排列 | Permutation | 從物件中取出部分進行有順序之排列的方式種類數。 |
| 組合 | Combination | 從物件中取出部分且不考慮順序之組合的種類數。 |
| 二項分布 | Binomial distribution | 進行 n 次獨立白努利試驗中,成功次數的機率分布。 |
| 卜瓦松分布 | Poisson distribution | 描述在固定時間或空間區間內,某罕見隨機事件發生次數的機率分布。 |
| 卜瓦松逼近 | Poisson approximation | 當二項分布之試驗次數 n 極大且成功率 p 極小時,以卜瓦松分布代替計算的近似法。 |