從一份氣象紀錄開始
你手上有一個城市過去幾年的天氣紀錄,每天只記「晴」或「雨」。翻過幾頁之後你發現一個規律:晴天的隔天有八成還是晴天;雨天的隔天有四成會放晴。 沒有別的訊息——前天、上週、季節都先不看。
今天是晴天。請先用直覺回答兩個問題,並且寫下你有多確定、依據是什麼:
- 接下來三天都是晴天的機率大概多少?
- 一百天之後那一天是晴天的機率大概多少?——它還跟「今天是晴天」有關嗎?
第一題多數人會算 0.8×0.8×0.8≈0.51,而且很有信心。第二題的答案就分歧了:有人說「一百天太遠了,跟今天無關,晴雨各半」;有人說「晴天比較黏,應該晴天多一點,大概六成?」;也有人說「八成」,因為「天氣傾向不變」。這三個答案裡只有一個對,而且對的那個人通常也說不出為什麼是那個數字、以及什麼時候這個數字會失效。這一篇就是要把這件事說清楚。
課堂提問Q1
先不急著算。把「晴天的隔天八成晴、雨天的隔天四成晴」翻成數學:這裡的隨機變數是什麼?我們要算的量又是什麼?「只看今天」這個假設在數學上要怎麼寫?
先想一想,再展開看整理後的答案
最直覺的說法是「隨機變數是天氣」,這是對的但不夠精確——每一天各有一個。令 Xn∈{S,R} 是第 n 天的天氣(S 晴、R 雨),n=0 是今天。一整串 X0,X1,X2,… 是一個 stochastic process(隨時間演進的一串隨機變數)。
「只看今天」寫成一條關於 conditional probability 的等式:
Pr(Xn+1=y∣Xn=x, Xn−1,…,X0)=Pr(Xn+1=y∣Xn=x).給了今天,再多給過去任何資訊都不改變明天的分佈。這叫 Markov property。紀錄裡那兩個數字則是另一個假設:Pr(Xn+1=y∣Xn=x) 不隨 n 變(time-homogeneous,規則每天一樣)。
我們要算的量有兩個:第一題是一個聯合事件的機率 Pr(X1=X2=X3=S∣X0=S);第二題是一個邊際分佈 Pr(X100=S∣X0=S)。兩個都只由那兩個數字決定——這正是 Markov property 的威力:整個過程的所有機率,都由「一步的規則」生出來。
先抓住這個畫面
想像一顆棋子在兩個格子之間跳。每一天它擲一次骰子決定要不要換格子:站在「晴」格時,八成留下、兩成跳到「雨」格;站在「雨」格時,六成留下、四成跳回「晴」格。棋子沒有記憶——它不知道自己在這一格已經待了幾天,每天擲的骰子都一樣。
現在不放一顆棋子,放一千顆,全部從「晴」格出發。第一天結束後約八百顆留在「晴」、兩百顆到了「雨」。第二天,「晴」格裡的八百顆有八成留下(640),「雨」格裡的兩百顆有四成回來(80),所以「晴」格有 720 顆。第三天再算一次……你會看到「晴」格的數量往某個值靠過去,然後不再動。那個不再動的分配,就是這一篇要找的東西。 而「往它靠過去」的速度,決定了「一百天後跟今天有沒有關係」。
把畫面寫成矩陣
把「一步的規則」排成一張表,列是今天、欄是明天:
P=(P(S,S)P(R,S)P(S,R)P(R,R))=(0.80.40.20.6),P(x,y)=Pr(Xn+1=y∣Xn=x).
這叫 transition matrix。它每一列的和都是 1(今天是 x,明天總得在某一格),元素都非負;符合這兩個條件的矩陣叫 stochastic matrix。
把「今天的分佈」寫成列向量 p0=(Pr(X0=S),Pr(X0=R))。明天的分佈是
p1(y)=x∑p0(x)P(x,y)⟺p1=p0P.
這一行是 law of total probability:明天在 y,要嘛今天在 S 然後跳到 y,要嘛今天在 R 然後跳到 y。再走一天就是再乘一次,所以
pn=p0Pn.
矩陣乘法就是「把一步的規則連續套 n 次」。 兩步的轉移 P2(x,y)=∑zP(x,z)P(z,y) 是「先到某個中繼 z、再到 y」對所有 z 加總,這叫 Chapman–Kolmogorov 等式,它只是矩陣乘法的定義。
第一題現在是三個條件機率相乘(Markov property 讓每一步只看前一步):
Pr(X1=X2=X3=S∣X0=S)=P(S,S)3=0.83=0.512.
直覺答案對了,而且現在知道它為什麼對:三個 0.8 能直接相乘,靠的正是 Markov property;如果「連晴兩天後第三天更容易下雨」,這條就不成立。
不再動的分配
一個分佈 π 如果滿足
πP=π,x∑π(x)=1,
就叫 stationary distribution:今天的分配是 π,明天還是 π。用 2 狀態手算,πP=π 的第一個分量是 0.8πS+0.4πR=πS,整理成 0.2πS=0.4πR。讀法:每天從 S 流出的量等於從 R 流回的量(流量平衡)。加上 πS+πR=1 得
π=(32,31).
一般地,π 是 P 對應 eigenvalue 1 的左 eigenvector。任何 stochastic matrix 都有 eigenvalue 1(因為 P1=1,右 eigenvector 是全 1 向量),所以 π 一定存在;有限狀態、且任兩格互相到得了(irreducible)時它唯一。
多快忘掉今天
第二題問的是 p100。用 π 把 pn(S) 分解成「極限」加「離極限的差」。令 dn=pn(S)−32。從 pn+1(S)=0.8pn(S)+0.4(1−pn(S))=0.4pn(S)+0.4 可得
dn+1=0.4dn⟹pn(S)=32+(p0(S)−32)0.4n.
(驗算:p0(S)=1 時 p1(S)=32+31⋅0.4=0.8,正確。)那個 0.4=0.8+0.6−1 是 P 的第二個 eigenvalue λ2。今天的影響每天縮成 0.4 倍:五天後剩 0.45≈1%,一百天後是 0.4100≈10−40,什麼都不剩。
所以第二題的答案是 32≈0.667,跟今天是晴是雨無關。「各半」錯在忽略了規則不對稱(晴天比雨天黏);「八成」錯在把「一天的規則」當成「長期的比例」——晴天雖然八成留下,但一旦掉進雨天要花幾天才回來,長期比例是兩種黏性相對強弱的結果,πS/πR=P(R,S)/P(S,R)=0.4/0.2=2。
展開細節一般的收斂敘述:Perron–Frobenius 給的三件事
有限狀態、irreducible(任兩格互相到得了)且 aperiodic(不會被鎖在固定的節拍裡,例如「每天一定換格」那種)的 chain,滿足:(i) stationary distribution π 唯一;(ii) 對任何 p0,p0Pn→π;(iii) 收斂速度是幾何的,∥p0Pn−π∥≤C∣λ2∣n,其中 λ2 是 P 絕對值第二大的 eigenvalue。上面 2 狀態的計算就是這個定理的手算版本:λ2=0.4,C=∣p0(S)−32∣。標準證明見 Norris [1] 第 1 章或 Levin–Peres [3] 第 4 章。
另外,π 還有一個「時間平均」的意義:一條單一軌跡裡,晴天所佔的天數比例以機率 1 收斂到 πS(ergodic theorem)。這是為什麼「一千顆棋子的分配」與「看一條紀錄很多年」會給同一個 32。
回頭看那兩個直覺
理論的判斷。 在「只看今天、規則不隨時間變」這兩個假設下:連續三天晴的機率是 0.512;一百天後晴的機率是 32,與今天無關,而且大約五到十天後就已經看不出差別。這兩個結論的全部依據就是 P 的四個數字。直覺答對第一題,是因為「相乘」剛好就是 Markov property;直覺在第二題分歧,是因為「長期比例」不是任何單一數字能讀出來的——它是流量平衡 πSP(S,R)=πRP(R,S) 的解。
哪裡可能失準。 兩個假設都可能不成立。真實天氣有季節(P 隨 n 變,就沒有單一的 π),也可能有超過一天的記憶(連晴幾天後轉雨的機率變高,Markov property 失效——但注意,把「昨天+今天」合起來當一個狀態,它又變回 Markov chain,只是狀態變成四個)。另外 aperiodic 也是必要的:如果 P=(0110)(每天一定變天),π=(21,21) 仍然存在,但 pn 永遠在 (1,0) 與 (0,1) 之間跳,永遠不會「忘掉今天」。
動手跑一次
理論預測有三個數字可以對:0.512、32、以及「dn 每天縮 0.4 倍」。用十行程式驗證,然後刻意違反一個假設。
import numpy as np
rng = np.random.default_rng(0)
P = np.array([[0.8, 0.2], [0.4, 0.6]]) # 0 = S, 1 = R
N, x = 200_000, 0 # 今天晴
path = np.empty(N, dtype=int)
for n in range(N):
x = rng.choice(2, p=P[x]); path[n] = x
print("長期晴天比例", (path == 0).mean()) # ≈ 0.667
p = np.array([1.0, 0.0])
for n in range(1, 6):
p = p @ P; print(n, p[0], p[0] - 2/3) # 差每天 ×0.4
# 違反 Markov:連晴兩天後轉雨機率升到 0.5(二階規則)
先消化一下
參考文獻
- Norris, J. R. Markov Chains. Cambridge University Press, 1997.(第 1 章:離散時間 chain、transition matrix、stationary distribution 與收斂定理。)
- Grimmett, G., Stirzaker, D. Probability and Random Processes, 3rd ed. Oxford University Press, 2001.(第 6 章 Markov chains。)
- Levin, D. A., Peres, Y. Markov Chains and Mixing Times, 2nd ed. AMS, 2017.(第 4 章:收斂速度與 λ2。)