🎓 レベル:発展 | 重要度:A(必須) 📎 前提:マルチンゲールの定義と例
要点(BLUF)
- 停止時刻 :「今止めるか」を未来を覗かずに決められる時刻。 が で測れる(時刻 までの情報で判断できる)。
- 任意停止定理(OST):適切な条件下で、マルチンゲールを停止時刻で止めても期待値は保たれる:。
- 応用の威力:ギャンブラーの破産確率や平均ゲーム時間が、微分方程式を解かずに期待値の保存だけから出ます。
概念
「うまく止めれば公平な賭けに勝てるのでは?」という問いへの答えが任意停止定理です。停止のルールが未来を予知しない限り(停止時刻である限り)、そして暴走しない限り、止めた時点の期待値は出発点と同じ。これは「公平な賭けに必勝法はない」ことの数学的保証であり、同時に、止めた瞬間の値の期待を計算する強力な道具になります。
数式による定式化
が停止時刻とは、各 で 。任意停止定理は、 がマルチンゲールで が停止時刻のとき、次のいずれかの条件下で :
ギャンブラーの破産:対称単純ランダムウォーク ()、。 はマルチンゲールなので OST より :
平均時間は補正二乗 がマルチンゲールであることから 、 なので
直観
要するに「未来を知らずに止める限り、公平はくつがえせない」。OST は2つのマルチンゲール( と )の期待値保存を、止めた瞬間に適用するだけで、到達確率も平均時間も芋づる式に出します。微分方程式(境界値問題)を解く代わりに、「公平性は止めても消えない」という一文で答えが落ちてくるのが、マルチンゲール法の美しさです。
具体例
対称ランダムウォークを または に到達するまで走らせ(出発 )、 への到達確率が 、平均時間が に一致することを確認します。
import numpy as np
rng = np.random.default_rng(3)
a, N = 3, 10
n = 200000
s = np.full(n, a); t = np.zeros(n, dtype=int)
active = np.ones(n, dtype=bool)
while active.any():
step = np.where(rng.random(n) < 0.5, 1, -1)
s[active] += step[active]
t[active] += 1
active = (s > 0) & (s < N)
print(f"P(N に到達)={np.mean(s == N):.3f} (理論 a/N={a/N:.3f})")
print(f"E[継続時間]={t.mean():.2f} (理論 a(N-a)={a*(N-a)})")
# P(N に到達)=0.300 (理論 a/N=0.300)
# E[継続時間]=21.01 (理論 a(N-a)=21)
到達確率 0.300、平均時間 21.0 — どちらも OST から導いた理論値に一致します。シミュレーションは答え合わせで、答えそのものは「期待値の保存」から出ています。
他過程との関係
- ギャンブラーの破産はランダムウォークと再帰性の有限区間版(吸収壁つき)で、状態の分類の吸収・到達確率の具体計算です。
- 連続時間版はブラウン運動の定義と性質に対する OST で、 と のマルチンゲール性から到達時刻の分布が出ます(反射原理と最大値分布と連動)。
数式の直観的意味
OST の条件(有界性・一様可積分性)は「止め方で無限のエネルギーを引き出せない」ことを保証します。条件を外すと反例が作れます:マルチンゲール を「 になったら止める」()と、 は確率1で に到達するので 。これは で条件(iii)が破れる例で、「無限に粘れば勝てる(が、平均無限の時間がかかる)」という、いわゆるマーチンゲール必勝法の正体です。
⚠️ よくある誤解
- OST は無条件には成り立たない。上の で止める例のように、停止時刻が有界でも一様可積分でもないと公平性が破れます。条件の確認は必須です。
- 停止時刻 ≠ 任意の時刻。未来を見て「ピークで売る」は停止時刻ではありません( が で決まらない)。後知恵の最適停止は使えません。
- 「勝てない」は期待値の話。分散や中央値の意味では一時的に勝てます。OST が否定するのは期待値で得をする戦略です。
対応シミュレーション
本文コードの や上昇確率(非対称ウォーク)を変えると、非対称の場合は指数マルチンゲール を使った到達確率公式に切り替わります(stochastic-processes-study/simulations/)。
関連
- 前提:マルチンゲールの定義と例
- 章のまとめ:マルチンゲール 目次
- 応用:反射原理と最大値分布、無裁定価格付け(→金融工学)