Mímisbrunnr知恵の泉

← 確率過程 一覧

🎓 レベル:基礎 | 重要度:A(必須) 📎 前提:確率過程とは有限次元分布とコルモゴロフの拡張定理

要点(BLUF)

概念

天気を「晴れ/雨」で記録するとき、「明日の天気は今日の天気だけで決まる(先週がどうだったかは無関係)」と仮定するのがマルコフ連鎖です。過去の全履歴ではなく現在の状態だけが未来を左右するので、必要な情報は「各状態から各状態へ移る確率」の表だけ。これが遷移行列です。

数式による定式化

状態空間 S={1,,m}S=\{1,\dots,m\} 上の過程 {Xn}\{X_n\}マルコフ性を持つとは、

P(Xn+1=jXn=i, Xn1=in1,,X0=i0)=P(Xn+1=jXn=i)P(X_{n+1}=j \mid X_n=i,\ X_{n-1}=i_{n-1},\dots,X_0=i_0) = P(X_{n+1}=j \mid X_n=i)

が成り立つこと。右辺を pijp_{ij} と書き、遷移行列 P=(pij)P=(p_{ij}) を作ります。各行は確率分布なので

pij0,jpij=1 (行確率的)p_{ij}\ge 0, \qquad \sum_{j} p_{ij} = 1 \ (\text{行確率的})

nn ステップ遷移確率 pij(n)=P(Xn=jX0=i)p_{ij}^{(n)}=P(X_n=j\mid X_0=i)チャップマン・コルモゴロフ方程式

pij(n+k)=rpir(n)prj(k)p_{ij}^{(n+k)} = \sum_{r} p_{ir}^{(n)}\, p_{rj}^{(k)}

を満たし、行列で書けば P(n+k)=P(n)P(k)P^{(n+k)}=P^{(n)}P^{(k)}、したがって P(n)=PnP^{(n)}=P^n です。初期分布を行ベクトル μ0\mu_0 とすると、時刻 nn の分布は μn=μ0Pn\mu_n = \mu_0 P^n

直観

要するに「未来は現在を通してのみ過去とつながる」。現在の状態が過去の情報を要約する十分統計量になっている、ということです。だから遷移は掛け算で積み上がります。「2歩進む」は「1歩進んで、また1歩進む」を全中継点について足し合わせたもの — これがチャップマン・コルモゴロフの中身で、行列の積そのものです。

状態遷移図(例)

graph LR
    A["晴れ"] -->|0.8| A
    A -->|0.2| B["雨"]
    B -->|0.6| A
    B -->|0.4| B

この図の遷移行列は P=(0.80.20.60.4)P=\begin{pmatrix}0.8 & 0.2\\ 0.6 & 0.4\end{pmatrix} です。

具体例

3状態の連鎖で「2歩後の分布」を、理論 P2P^2 と1歩ずつのシミュレーションで突き合わせます。

import numpy as np
P = np.array([[0.5, 0.4, 0.1],
              [0.2, 0.5, 0.3],
              [0.3, 0.3, 0.4]])
rng = np.random.default_rng(1)
N = 300000
state = np.zeros(N, dtype=int)
cP = np.cumsum(P, axis=1)
for _ in range(2):                          # 状態0から2歩進める
    u = rng.random(N)
    nxt = np.empty(N, dtype=int)
    for i in range(3):
        m = state == i
        nxt[m] = np.searchsorted(cP[i], u[m])
    state = nxt
emp = np.array([(state == j).mean() for j in range(3)])
print("理論 P^2 の第0行:", np.round(np.linalg.matrix_power(P, 2)[0], 3))
print("シミュ 2歩後分布:", np.round(emp, 3))
# 理論 P^2 の第0行: [0.36 0.43 0.21]
# シミュ 2歩後分布: [0.36 0.43 0.21]

行列のべき乗 P2P^2 の第0行と、状態0から2歩動かした実測分布が一致します。チャップマン・コルモゴロフの数値確認です。

他過程との関係

数式の直観的意味

μn=μ0Pn\mu_n=\mu_0 P^n は「分布が線形写像 PP を繰り返し受ける」という形です。後の定常分布と収束では、この反復が PP の固有値・固有ベクトルで支配され、固有値1に対応する固有ベクトルが定常分布になります。マルコフ連鎖の長期挙動は線形代数の問題に翻訳されるのです。

⚠️ よくある誤解

対応シミュレーション

本文コードのステップ数を変えれば任意 nnPnP^n との一致が確認できます。stochastic-processes-study/simulations/ に汎用サンプラを置きます。

関連