🎓 レベル:標準 | 重要度:A(橋渡し) 📎 前提:定常分布と収束、詳細釣り合いと可逆連鎖、出生死亡過程
要点(BLUF)
- MCMC は定常分布と収束の収束理論と詳細釣り合いと可逆連鎖の詳細釣り合いの直接の応用。狙った分布 を定常分布に持つ連鎖を作り、走らせてサンプルします。
- 待ち行列 M/M/1 は出生死亡過程そのもの。定常分布(幾何分布)から平均系内数 ・平均滞在時間 が出ます。
- 両者を貫く一般法則がリトルの法則 (系内の平均数=到着率×平均滞在時間)。確率過程の収束・定常理論が、推論と運用の両方を支えます。
概念
確率過程の理論は2つの実務に直結します。1つは MCMC:複雑な分布から直接サンプルできなくても、その分布を定常分布とするマルコフ連鎖を設計すれば、エルゴード定理(定常分布と収束)で長期サンプルが目標分布に従います。もう1つは待ち行列:客の到着と退去を出生死亡過程で表せば、混雑の指標が定常分布から計算できます。
数式による定式化
MCMC(メトロポリス法):目標 に対し対称提案で採択確率 。これは詳細釣り合い (詳細釣り合いと可逆連鎖)を満たすので が定常分布となり、
待ち行列 M/M/1:到着率 、サービス率 、。定常分布 (出生死亡過程)より
直観
- MCMC:要するに「狙った分布を平衡点に持つ酔歩を設計する」。詳細釣り合いという「料金所」で、行き先の確率が に比例するよう調整します。十分長く歩けば滞在割合が になる(エルゴード)。
- 待ち行列:要するに「混み具合は到着と処理の綱引き」。 が1に近いほど系内数が爆発的に増えます。リトルの法則は「平均何人いるか=1秒に何人来るか×1人が平均何秒いるか」という、ほとんど会計恒等式のように普遍的な関係です。
具体例
(a) メトロポリス法が目標分布に収束すること、(b) M/M/1 のシミュレーションでリトルの法則 が成り立つことを確認します。
import numpy as np
# (a) メトロポリス法で離散目標分布をサンプル
rng = np.random.default_rng(3)
target = np.array([1., 3., 5., 4., 2.]); target /= target.sum()
K = len(target); N = 1_500_000
s = 0; counts = np.zeros(K)
for _ in range(N):
counts[s] += 1
prop = rng.integers(0, K) # 対称提案
if rng.random() < min(1.0, target[prop]/target[s]):
s = prop
print("メトロポリス標本:", np.round(counts/N, 3))
print("目標分布 :", np.round(target, 3))
# (b) M/M/1 待ち行列とリトルの法則
rng = np.random.default_rng(4)
lam, mu, Tsim = 0.7, 1.0, 300000.0
t = 0.0; n = 0; area = 0.0; arr_q = []; soj = 0.0; n_dep = 0
next_arr = rng.exponential(1/lam); next_dep = np.inf
while t < Tsim:
if next_arr < next_dep:
area += n*(next_arr - t); t = next_arr; n += 1; arr_q.append(t)
next_arr = t + rng.exponential(1/lam)
if n == 1: next_dep = t + rng.exponential(1/mu)
else:
area += n*(next_dep - t); t = next_dep; n -= 1
soj += t - arr_q.pop(0); n_dep += 1
next_dep = t + rng.exponential(1/mu) if n > 0 else np.inf
L = area/Tsim; W = soj/n_dep
print(f"L={L:.4f}(理論 rho/(1-rho)={(lam/mu)/(1-lam/mu):.4f}) "
f"W={W:.4f}(理論 1/(mu-lam)={1/(mu-lam):.4f})")
print(f"リトルの法則 L={L:.4f} vs lam*W={lam*W:.4f}")
# メトロポリス標本: [0.067 0.2 0.334 0.266 0.133]
# 目標分布 : [0.067 0.2 0.333 0.267 0.133]
# L=2.3332(理論 rho/(1-rho)=2.3333) W=3.3408(理論 1/(mu-lam)=3.3333)
# リトルの法則 L=2.3332 vs lam*W=2.3386
メトロポリス標本は目標分布に一致(収束理論+詳細釣り合い)。M/M/1 では 、、そして が成立します。
他過程との関係
- MCMC は定常分布と収束(収束)と詳細釣り合いと可逆連鎖(設計)の合流。混合の速さ(収束時間)はスペクトルギャップで決まります。
- 待ち行列は出生死亡過程の応用で、到着過程はポアソン過程、一般サービス時間は再生過程と再生定理(M/G/1)へ拡張されます。
数式の直観的意味
リトルの法則 が分布の詳細に依らず成り立つのは、それが本質的に「面積の二通りの数え方」だからです(時間軸で見た系内数の積分=客ごとの滞在時間の総和)。これは再生過程と再生定理の再生報酬定理の一例で、確率過程の長期平均の普遍性を体現します。MCMC の収束も待ち行列の安定も、根は同じ「エルゴード性=時間平均が空間平均に等しい」です。
⚠️ よくある誤解(※詳細は各分野へ)
- MCMC のサンプルは独立ではない(自己相関を持つ)。有効サンプルサイズは見かけより小さく、収束診断が必要です。詳細はベイズ統計へ。
- 待ち行列の安定には が必須。 で系は発散します(出生死亡過程)。
- ここでは過程の収束・定常の構造に集中します。MCMC の実装・診断はシミュレーション/ベイズへ、待ち行列の設計・最適化は operations へ。
対応シミュレーション
連続値目標へのメトロポリス、M/M/c や M/G/1 への拡張は stochastic-processes-study/simulations/ に置きます。
関連
- 前提:定常分布と収束、詳細釣り合いと可逆連鎖、出生死亡過程
- 深掘り:MCMC(→ベイズ・シミュレーション)、待ち行列・リトルの法則(→オペレーションズ)
- 章のまとめ:応用と他分野への接続 目次