2.5 隨機變數#
本節目標#
- 理解隨機變數的本質:定義在樣本空間上的函數,不是「會變的數」
- 區分離散與連續隨機變數,掌握 pmf 與 CDF
- 用正式定義寫出期望值與變異數,並證明 \(E[aX+b] = aE[X]+b\) 、 \(\mathrm{Var}(aX+b) = a^2\mathrm{Var}(X)\)
- 用模擬驗證線性性質,為第 3 章(常見分配)與第 4 章(多變量)鋪路
問題:樣本空間太笨重了#
前四節我們做什麼都背著樣本空間:丟兩顆骰子要枚舉 36 點。但實際上我們常常只關心一個彙總量:「和是多少」「正面有幾個」。丟 100 次銅板,樣本空間有 \(2^{100} \approx 10^{30}\) 個點,可我們只問「正面次數 \(X\) 」——一個 0 到 100 的整數。
隨機變數就是這個彙總動作的數學化:一個從樣本空間映射到實數的函數
$$ X : S \to \mathbb{R}
$$ 丟兩顆骰子時, \(X((3,5)) = 8\) 。樣本點 \((3,5)\) 是過程的全紀錄, \(X\) 是我們挑出來關心的量。名字裡的「變數」有點誤導——它不是未知的常數,而是每一次試驗會取不同值的函數,取哪個值由隨機性決定。習慣上用大寫字母 \(X, Y, Z\) 表示。
這一步「從結果到數值」看似只是換包裝,卻是機率論歷史上的關鍵躍升:有了 \(X\) ,我們就能談 \(X + Y\) 、 \(2X\) 、甚至 \(E[X]\) 這種「對隨機性求平均」的運算——機率論從「數事件」升級成「對函數做分析」,後面所有章節(分配、期望、極限定理、統計推論)都靠它。
離散 vs 連續#
離散隨機變數#
取值是可數的(整數、有限集)。用 pmf(機率質量函數,probability mass function)描述:
$$ p(k) = P(X = k)
$$ 例:丟兩顆骰子的點數和 \(X\) , \(p(2) = 1/36\) 、 \(p(7) = 6/36\) 。pmf 滿足 \(p(k) \ge 0\) 且 \(\sum_k p(k) = 1\) 。
連續隨機變數#
取值是區間上的實數(身高、等待時間)。此時 \(P(X = k) = 0\) 對每個單點成立(數線上一個點的「長度」是 0),pmf 沒有意義,改用 pdf(機率密度函數):
$$ P(a \le X \le b) = \int_a^b f(x)\, dx, \qquad \int_{-\infty}^{\infty} f(x)\, dx = 1
$$ 密度 \(f(x)\) 的值不是機率(可以大於 1),它是「單位長度上的機率濃度」——這個必須先講清楚,否則學第 3 章 \(N(0,1)\) 在 \(x=0\) 的密度 0.399 時會困惑。
CDF:兩種隨機變數的共通語言#
累積分布函數(CDF)對離散、連續一體適用:
$$ F(x) = P(X \le x)
$$ 性質: \(F\) 單調不減、 \(\lim_{x \to -\infty} F(x) = 0\) 、 \(\lim_{x \to \infty} F(x) = 1\) 。離散時 CDF 是階梯函數,連續時 \(F'(x) = f(x)\) 。實務上(包含 rstatistics 的 p* 函數、R 的 p*)CDF 是最常被查的物件: \(P(X > x) = 1 - F(x)\) 、中位數就是 \(F(x) = 0.5\) 的解。
期望值與變異數#
定義#
期望值(均值):隨機變數的「機率加權平均」。
- 離散: \(E[X] = \sum_k k \, p(k)\)
- 連續: \(E[X] = \int x\, f(x)\, dx\)
變異數:取值偏離期望值的平方平均,衡量散布:
$$ \mathrm{Var}(X) = E\big[(X - E[X])^2\big] = E[X^2] - (E[X])^2
$$ 標準差 \(\sigma = \sqrt{\mathrm{Var}(X)}\) 與 \(X\) 同單位。注意「期望值」不是「期望會出現的值」——丟兩顆骰子 \(E[X] = 7\) 但 \(7\) 只是最可能值;對 \(X \sim\) 兩點分布 \(P(X{=}0) = 0.9\) 、 \(P(X{=}100) = 0.1\) ,期望值 10 卻是不可能出現的值。期望值是長期平均(大數法則,第 6 章),不是眾數。
線性性質:期望值最好用的性質#
對常數 \(a, b\) :
$$ E[aX + b] = a\, E[X] + b, \qquad \mathrm{Var}(aX + b) = a^2\, \mathrm{Var}(X)
$$ 證明(離散版,連續版把 \(\sum\) 換成 \(\int\) ):
$$ E[aX+b] = \sum_k (ak+b)\, p(k) = a \sum_k k\, p(k) + b \sum_k p(k) = a\, E[X] + b
$$ 兩個直接推論: \(E[b] = b\) (常數的期望是常數)、 \(\mathrm{Var}(b) = 0\) 。注意平移不改變散布,所以 \(\mathrm{Var}\) 裡沒有 \(b\) 的份。更一般的期望線性性 \(E[X+Y] = E[X] + E[Y]\) 不需要獨立性——這是它在第 4 章大顯身手的原因。
動手:pmf、CDF 與模擬#
離散: \(X = {}\) 兩枚銅板的正面數#
import rstatistics as r
# 擲兩枚銅板,隨機變數 X = 正面次數,pmf 與 CDF
g = r.set_seed(5)
N = 1_000_000
h1 = g.rbinom(N, 1, 0.5)
h2 = g.rbinom(N, 1, 0.5)
X = [a + b for a, b in zip(h1, h2)]
counts = [0, 0, 0]
for x in X:
counts[x] += 1
print("k pmf 模擬 pmf 理論 CDF 模擬 CDF 理論")
cdf_sim = 0.0
for k in range(3):
pmf_sim = counts[k] / N
pmf_th = r.dbinom(k, 2, 0.5)
cdf_sim += pmf_sim
cdf_th = r.pbinom(k, 2, 0.5)
print(f"{k} {pmf_sim:.4f} {pmf_th:.4f} {cdf_sim:.4f} {cdf_th:.4f}")
mean_sim = r.mean([float(x) for x in X])
var_sim = r.var([float(x) for x in X])
mean_th = sum(k * r.dbinom(k, 2, 0.5) for k in range(3))
var_th = sum((k - 1.0)**2 * r.dbinom(k, 2, 0.5) for k in range(3))
print(f"\nE[X] 模擬 = {mean_sim:.5f} 理論 = {mean_th:.5f}")
print(f"Var[X] 模擬 = {var_sim:.5f} 理論 = {var_th:.5f}")
輸出:
k pmf 模擬 pmf 理論 CDF 模擬 CDF 理論
0 0.2512 0.2500 0.2512 0.2500
1 0.4995 0.5000 0.7507 0.7500
2 0.2493 0.2500 1.0000 1.0000
E[X] 模擬 = 0.99816 理論 = 1.00000
Var[X] 模擬 = 0.50053 理論 = 0.50000
程式裡能看到 pmf 與 CDF 的關係:CDF 就是 pmf 的逐項累加(cdf_sim += pmf_sim)。理論欄用 r.dbinom / r.pbinom(第 3 章的主角二項分布 \(B(2, 0.5)\) );模擬欄是對同一批 \(10^6\) 個樣本直接統計。期望值理論: \(E[X] = 0 \cdot \frac14 + 1 \cdot \frac12 + 2 \cdot \frac14 = 1\) , \(\mathrm{Var}(X) = (0{-}1)^2\frac14 + 0 + (2{-}1)^2\frac14 = 0.5\) 。
連續: \(X \sim U(0,1)\) 的線性變換#
import rstatistics as r
g = r.set_seed(88)
N = 1_000_000
# 連續隨機變數:X ~ Uniform(0, 1),驗證 E[aX+b] = a E[X] + b
X = g.runif(N, 0.0, 1.0)
a, b = 3.0, -2.0
Y = [a * x + b for x in X]
print(f"E[X] 模擬 = {r.mean(X):.5f} 理論 = 0.50000")
print(f"E[Y] 模擬 = {r.mean(Y):.5f}")
print(f"a*E[X]+b 理論 = {a*0.5+b:.5f} (= {a}*E[X] + ({b}))")
print(f"Var[X] 模擬 = {r.var(X):.5f} 理論 = 0.08333")
print(f"Var[Y] 模擬 = {r.var(Y):.5f} 理論 = {a*a*0.5*0.5*2/6:.5f}(= a^2 Var[X])")
輸出:
E[X] 模擬 = 0.50065 理論 = 0.50000
E[Y] 模擬 = -0.49804
a*E[X]+b 理論 = -0.50000 (= 3.0*E[X] + (-2.0))
Var[X] 模擬 = 0.08333 理論 = 0.08333
Var[Y] 模擬 = 0.74998 理論 = 0.75000(= a^2 Var[X])
\(E[Y] = 3 \times 0.5 - 2 = -0.5\) 、 \(\mathrm{Var}(Y) = 3^2 \times \frac{1}{12} = 0.75\) ,模擬都吻合( \(U(0,1)\) 的變異數是 \(\frac{1}{12}\) ,第 3 章推導)。注意 \(\mathrm{Var}(X)\) 模擬值 0.08333 與理論撞在小數點後五位是巧合,不是必然——模擬值本來就會有 \(1/\sqrt{N}\) 量級的抖動。
動手:蒙地卡羅估期望值#
期望值的定義是加權和,但蒙地卡羅給了另一條路:** \(E[X]\) 就是大量樣本的算術平均**(大數法則的預告)。這在理論加權和算不出來時(例如複雜的積分)特別有威力:
import rstatistics as r
g = r.set_seed(1234)
# 用蒙地卡羅估 E[sqrt(U)],U ~ Uniform(0,1);理論值 = 積分 ∫√x dx = 2/3
for N in (10**3, 10**4, 10**5, 10**6):
u = g.runif(N, 0.0, 1.0)
est = r.mean([x**0.5 for x in u])
print(f"N = {N:>8}: 估計 = {est:.5f} 理論 = {2/3:.5f} 誤差 = {abs(est-2/3):.5f}")
輸出:
N = 1000: 估計 = 0.67170 理論 = 0.66667 誤差 = 0.00503
N = 10000: 估計 = 0.66840 理論 = 0.66667 誤差 = 0.00173
N = 100000: 估計 = 0.66643 理論 = 0.66667 誤差 = 0.00024
N = 1000000: 估計 = 0.66641 理論 = 0.66667 誤差 = 0.00025
\(N\) 每放大 10 倍,誤差約縮小 \(\sqrt{10} \approx 3.16\) 倍——再次看到 \(1/\sqrt{N}\) 定律。這招「用隨機樣本平均算積分」就是蒙地卡羅積分,統計模擬的基礎工法。
與 R 對照#
set.seed(88)
N <- 1000000
X <- runif(N, 0, 1)
Y <- 3 * X - 2
c(mean(X), mean(Y), var(X), var(Y))
# pmf / CDF 查表
dbinom(0:2, 2, 0.5)
pbinom(1, 2, 0.5)
輸出:
[1] 0.50065277 -0.49804169 0.08333118 0.74998062
[1] 0.25 0.50 0.25
[1] 0.75
前四個數與 Python 版逐位相同(同一個種子與亂數流);dbinom/pbinom 對應 rstatistics 的 r.dbinom/r.pbinom。
小結#
- 隨機變數 = 樣本空間上的函數 \(X : S \to \mathbb{R}\) ,把笨重的結果壓縮成關心的量,機率論因此能做「對隨機量」的運算。
- 離散用 pmf( \(P(X=k)\) ),連續用 pdf(密度,值非機率);CDF \(F(x) = P(X \le x)\) 是兩者共通語言。
- 期望值 \(E[X]\) 是機率加權平均(= 長期平均),變異數 \(\mathrm{Var}(X) = E[X^2] - (E[X])^2\) 衡量散布。
- 線性性 \(E[aX+b] = aE[X]+b\) 、 \(\mathrm{Var}(aX+b) = a^2\mathrm{Var}(X)\) 已由推導與模擬雙重確認;蒙地卡羅估期望值的誤差遵循 \(1/\sqrt{N}\) 。
- 下一章把「特定的 \(X\) 」換成「常見的家族」:二項、Poisson、常態……pmf/pdf 與 CDF 的完整長相,以及第 4 章的多個隨機變數(聯合、共變異數——期望值線性性的主戰場)。
練習#
- 隨機變數 \(X\) 取值 \(-1, 0, 1\) ,pmf 為 \(p(-1) = 0.2\) 、 \(p(0) = 0.5\) 、 \(p(1) = 0.3\) 。求 \(E[X]\) 與 \(\mathrm{Var}(X)\) ,並寫出 CDF 的完整階梯式。(提示: \(E[X] = 0.1\) 、 \(\mathrm{Var}(X) = 0.49\) 。)
- 模擬丟兩顆骰子的點數和 \(X\) (100 萬次),畫出(列表)模擬 pmf 與理論 pmf,驗證 \(E[X] = 7\) 、 \(\mathrm{Var}(X) = 35/6\) 。(提示:和的理論 pmf 是 1,2,3,4,5,6,5,4,3,2,1 除以 36。)
- 連續: \(X \sim U(0,1)\) ,用蒙地卡羅估 \(E[X^2]\) 與 \(E[e^X]\) ,並用積分 \(\int_0^1 x^2 dx = 1/3\) 、 \(\int_0^1 e^x dx = e - 1\) 驗證。(提示:誤差應隨 \(N\) 按 \(1/\sqrt{N}\) 縮小。)
- 若 \(E[X] = 2\) 、 \(\mathrm{Var}(X) = 3\) ,求 \(E[5 - 2X]\) 與 \(\mathrm{Var}(5 - 2X)\) 。(提示: \(-1\) 與 \(12\) ;注意係數平方。)
- 證明 \(\mathrm{Var}(X) = E[X^2] - (E[X])^2\) 。(提示:把 \((X - \mu)^2\) 展開,對每一項取期望,用線性性合併。)