Mímisbrunnr知恵の泉

← 確率過程 一覧

🎓 レベル:標準 | 重要度:A(必須) 📎 前提:マルコフ連鎖とは・遷移行列

要点(BLUF)

概念

遷移行列を眺めるだけでは長期挙動は分かりません。まず状態を仕分けます。「行ったきり戻れない状態(過渡)」「必ず戻ってくる状態(再帰)」「決まった周期でしか戻れない状態(周期的)」。この分類が、定常分布が存在するか・一意か・収束するかを決めます。

数式による定式化

状態 ii から jj到達可能 iji\to j とは、ある n0n\ge 0pij(n)>0p_{ij}^{(n)}>0。互いに到達可能(iji\to j かつ jij\to i)なら同じ連結クラス。全状態が1クラスなら既約です。

初回到達時刻 Ti=min{n1:Xn=i}T_i=\min\{n\ge 1: X_n=i\}、戻る確率 fi=P(Ti<X0=i)f_i = P(T_i<\infty\mid X_0=i) とすると、

i は再帰    fi=1    n=1pii(n)=i \text{ は再帰} \iff f_i=1 \iff \sum_{n=1}^{\infty} p_{ii}^{(n)} = \infty i は過渡    fi<1    n=1pii(n)<i \text{ は過渡} \iff f_i<1 \iff \sum_{n=1}^{\infty} p_{ii}^{(n)} < \infty

過渡状態の訪問回数は幾何分布で、期待値 11fi<\frac{1}{1-f_i}<\infty周期

d(i)=gcd{n1:pii(n)>0}d(i) = \gcd\{ n\ge 1 : p_{ii}^{(n)} > 0 \}

直観

具体例(過渡と周期)

過渡状態の訪問回数が有限(幾何分布、期待値2)であること、周期2の連鎖で PnP^n が振動して収束しないことを確認します。

import numpy as np
# 周期2の連鎖(0<->1 を必ず往復)
Pp = np.array([[0.0, 1.0], [1.0, 0.0]])
print("周期2 P^10 第0行:", np.linalg.matrix_power(Pp, 10)[0])  # [1. 0.]
print("周期2 P^11 第0行:", np.linalg.matrix_power(Pp, 11)[0])  # [0. 1.]

# 過渡状態:0は自己ループ0.5で1へ0.5、1は吸収(0へ戻れない)
rng = np.random.default_rng(3)
def visits_to0_once():
    s, v = 0, 0
    while s == 0:
        v += 1
        s = 0 if rng.random() < 0.5 else 1
    return v
mean_visits = np.mean([visits_to0_once() for _ in range(200000)])
print(f"過渡状態0の平均訪問回数 = {mean_visits:.3f} (理論 1/(1-0.5)=2 =有限)")
# 周期2 P^10 第0行: [1. 0.]
# 周期2 P^11 第0行: [0. 1.]
# 過渡状態0の平均訪問回数 = 1.998 (理論 1/(1-0.5)=2 =有限)

周期2では偶数歩で元に戻り奇数歩で反対側 — 永遠に振動します。過渡状態は平均2回しか訪れず(有限)、やがて吸収状態1へ消えます。

他過程との関係

数式の直観的意味

npii(n)\sum_n p_{ii}^{(n)} は「状態 ii への期待総訪問回数」。これが発散(再帰)か収束(過渡)かで状態の運命が決まります。この量は定常分布と収束の定常確率 πi\pi_i と直結し、正再帰なら πi=1/E[Ti]>0\pi_i = 1/\mathbb{E}[T_i] > 0(平均回帰時間の逆数)になります。

⚠️ よくある誤解

対応シミュレーション

本文の過渡カウントの自己ループ確率を変えると、平均訪問回数 1/(1p)1/(1-p) が変化し、p1p\to1 で再帰へ近づく境界が見えます。

関連