M3.0 醉漢一小時後在哪:Random Walk 到 Brownian Motion
本篇重用1 篇
一條長街,一個喝醉的人
深夜,一條筆直的長街。一個喝醉的人站在路燈下,每一秒鐘隨機往左或往右踏一步,一步一公尺,左右各半、跟上一步完全無關。一小時後,他大概離路燈多遠?
左右有機會抵消,所以不能把 3600 步直接加成 3600 公尺。但也不會每次剛好回到路燈下。要怎麼描述這種「有時偏左、有時偏右」的距離? 平均位置可能是零,散開程度卻不是零;先選對要計算的量,才能知道時間增加後會走多遠。
課堂提問Q1
翻成數學。「每秒隨機一步」是什麼隨機變數?「一小時後的位置」是什麼?「大概離多遠」該用哪個量來衡量——為什麼不能直接算「平均位置」?
先想一想,再展開看整理後的答案
課堂上第一個答案通常是「算平均位置」,然後發現平均位置是 0(左右對稱),這顯然不是「大概多遠」的意思——他不會一直站在路燈下。
寫清楚:第 秒的那一步是隨機變數 ,各半機率,且 彼此 independent(互不影響)。一小時後的位置是
是隨機變數,這個過程叫 random walk(隨機漫步)。「大概多遠」問的不是 (它是 0),而是 的散開程度:最方便的量是 variance ,它的平方根 ——均方根距離——才是「典型的離家距離」。
所以問題變成: 怎麼隨 長?
抵消的不是距離,是方向
想像把一小時的 3600 步分成兩段,各 1800 步。第一段走完他在某處,第二段從那裡重新開始。第二段有一半機率往回走、一半機率繼續往外——所以第二段平均而言既不把他帶遠、也不把他帶回。兩段合起來的距離,不是兩段距離相加(那是「一直往同一邊」才會有的事),也不是互相抵消(那是「第二段剛好反向」才會有的事),而是介於中間:像直角三角形的兩條邊,合起來的長度是平方和再開根號。
這不是說一維的腳步真的互相垂直,而是期望中的交叉項會消失,留下平方和。3600 步的均方根距離是 60 公尺;它不是每次必走的距離,也不是平均絕對距離,後者在 Gaussian 近似下約為 公尺。
圖:獨立、有限 variance 的步伐在 √t 尺度內擴散;3600 步的終點標準差是 60,並逐漸接近 Gaussian。
variance 相加、極限、
定理。 若 independent、、,則 、。
證明(五行)。展開平方:
第二個等號用了 independence:;第三個等號用了 。交叉項全部消失——這就是「垂直的邊」的代數版本。
所以均方根距離是 。若腳步還是同分布的,就可使用 iid 的中央極限定理: 趨近 。這是非 Gaussian 小步的極限結論,不是 Gaussian 加法封閉性;只有獨立、各自有限 variance,而沒有其他條件,不能直接套用這個版本。
取極限:Brownian motion。 現在把時間切細。每 秒走一步,走到時刻 需要 步。若步長維持 ,;要讓 時位置不退化(既不停在原地、也不爆到無限遠),必須讓 維持常數——步長必須是 的尺度,。這樣極限下的過程 有三個性質:
- ,;
- 增量獨立且平穩:對 ,,且與 之前的一切 independent;
- 軌跡 continuous。
這個極限叫 Brownian motion(或 Wiener process)[3]。性質 2 用一句話說就是:時間 內的位移是一個 ,。 這句話是下一篇模擬 SDE 的全部依據。
展開細節為什麼步長取 h 會讓一切消失、取常數會爆掉
步長 δ、步頻 1/h,走到時刻 t 的 variance 是 δ²·(t/h)。
- δ = h(步長與時間同尺度,像等速前進):variance = h·t → 0。極限是靜止不動——「隨機成分」在細分之下蒸發了。這也是為什麼把噪聲寫成「每步加 h·ε」是錯的。
- δ = 常數:variance = δ²t/h → ∞。爆掉。
- δ = √h:variance = t,有限且非零,且不依賴 h。只有這個尺度能活到極限。 √h 尺度提示了為什麼不能把增量除以 h 當成普通速度;但這個尺度觀察本身不是不可微的完整證明。Brownian motion 的軌跡幾乎必然連續且處處不可微,是另外的定理 [3]。因此下一篇會用增量與隨機積分,而不是普通的速度導數。
平均回到原點,不表示每次都回去
與均方根距離 60 可以同時成立:一批人偏左、另一批人偏右,平均位置仍是原點。個別人也可能走到幾百公尺外,只是比較少見;不能由一次偏遠的結果,就推論腳步一定有相關。
若改成傾向沿上一步繼續走,就要重新計算交叉項。下面採用特定模型:初始方向左右各半,每步以 的機率保持方向,,因此相隔 步的 covariance 是 。此時大 下 variance 約為 ,仍是平方根尺度但係數改變。只知道相鄰兩步的相關係數,還不足以推出這個公式。 若 variance 不存在,則這裡的均方根量與 Gaussian 極限定理都不能直接使用。
展開細節相關步伐的 variance(AR(1) 型的 ±1 步)
令每步以機率 (1+ρ)/2 與上一步同向、否則反向,則 E[ξᵢξᵢ₊ₖ] = ρ^k。 Var(Sₙ) = Σᵢ E[ξᵢ²] + 2Σᵢ<ⱼ E[ξᵢξⱼ] = n + 2Σₖ₌₁ⁿ⁻¹ (n−k)ρ^k ≈ n[1 + 2ρ/(1−ρ)] = n(1+ρ)/(1−ρ)(大 n 時)。 ρ = 0 回到 n;ρ → 1(永遠同向)時因子發散,對應 Var ~ n² 的「等速前進」;ρ < 0(傾向折返)因子小於 1,走得比獨立更近。指數仍是 √n,改變的只是常數——除非 ρ 本身隨 n 趨近 1。
模擬一次,再把假設弄壞
import numpy as np
rng = np.random.default_rng(0)
def walk(n=3600, rho=0.0, trials=5000):
keep = rng.random((trials, n)) < (1+rho)/2 # 這一步是否沿用上一步的方向
flips = np.where(keep, 1, -1); flips[:, 0] = 1
steps = rng.choice([-1, 1], trials)[:, None] * np.cumprod(flips, axis=1)
return np.sqrt(np.mean(steps.sum(axis=1)**2)) # 均方根距離
for rho in [0.0, 0.5, 0.9]:
print(rho, round(walk(rho=rho)), round(60*np.sqrt((1+rho)/(1-rho))))
# 0.0: 60 對 60;0.5: 103 對 104;0.9: 257 對 262(模擬值隨種子略有變動)
獨立時模擬與 吻合;加入相關,均方根距離按 放大,理論預測與模擬一致——而且指數仍是 (把 改成 14400 再跑,距離變兩倍)。最後把步長換成重尾分佈(例如 Cauchy),均方根距離會隨 trials 增加而不收斂:這時 variance 不存在, 規律與 Gaussian 極限都失效。
檢查理解
參考文獻
- Grimmett, G., Stirzaker, D. Probability and Random Processes. Oxford University Press, 3rd ed., 2001.(第 3 章 random walk;第 13 章 Brownian motion 的定義與性質。)
- Feller, W. An Introduction to Probability Theory and Its Applications, Vol. 1. Wiley, 3rd ed., 1968.(第 III 章:簡單 random walk 的組合與極限。)
- Mörters, P., Peres, Y. Brownian Motion. Cambridge University Press, 2010.(第 1 章:Brownian motion 的存在、增量獨立、軌跡連續但不可微。)
- Einstein, A. Über die von der molekularkinetischen Theorie der Wärme geforderte Bewegung von in ruhenden Flüssigkeiten suspendierten Teilchen. Annalen der Physik 17, 1905.(歷史出處:懸浮粒子的均方位移與時間成正比。)