🎓 レベル:発展 | 重要度:A(必須) 📎 前提:確率過程とは、条件付き確率(統計)
要点(BLUF)
- 条件付き期待値 は「情報 を知った上での の最良予測」。二乗誤差を最小にする予測( 射影)です。
- タワー則 :粗い情報で予測してから平均すると、元の平均に戻る。
- フィルトレーション は時間とともに増えていく情報の系列()。過程が で測れる(適合)とき、過去の観測情報を表します。
概念
マルチンゲールを定義するには、まず「現時点で持っている情報の下での期待値」を厳密にする必要があります。それが条件付き期待値で、確率変数を「知っている情報で粗視化したもの」。情報が増えていく様子を表すのがフィルトレーションです。時刻が進むほど観測が積み重なり、不確実性が(少しずつ)減っていきます。
数式による定式化
確率変数 ()と部分 -加法族 に対し、条件付き期待値 は次を満たす -可測な確率変数:
主要な性質:
では は「-可測な関数の中で を最小にする 」、すなわち射影です。フィルトレーションは増大する -加法族の族 で、過程 が各 -可測なとき**適合(adapted)**といいます。
直観
要するに は「情報 の解像度でぼかした 」。 が細かいほど予測は鋭く、粗いほどぼやけます。タワー則は「粗くぼかしてから全体平均しても、いきなり全体平均しても同じ」。フィルトレーションは「時間とともにピントが合っていくカメラ」で、観測が進むほど世界の解像度が上がります。
具体例
粗い情報 と について、条件付き期待値が群ごとの平均、タワー則が成立、そして真の条件付き期待値が二乗誤差最小(最良予測)であることを確認します。
import numpy as np
rng = np.random.default_rng(1)
N = 2_000_000
g = rng.integers(0, 3, N) # 粗い情報 G
X = g*1.0 + rng.normal(0, 1, N) # E[X|G=g]=g
condexp = np.array([X[g == k].mean() for k in range(3)])
print("E[X|G=k] =", np.round(condexp, 3), "(理論 0,1,2)")
tower = sum((g == k).mean()*condexp[k] for k in range(3))
print(f"E[E[X|G]]={tower:.4f} vs E[X]={X.mean():.4f} (タワー則)")
mse_true = ((X - g)**2).mean()
mse_wrong = ((X - (g + 0.5))**2).mean()
print(f"MSE(真の条件期待値)={mse_true:.3f} < MSE(ずらした予測)={mse_wrong:.3f}")
# E[X|G=k] = [0.001 1.001 2.003] (理論 0,1,2)
# E[E[X|G]]=1.0013 vs E[X]=1.0013 (タワー則)
# MSE(真の条件期待値)=1.000 < MSE(ずらした予測)=1.248
条件付き期待値は群平均()、タワー則は厳密に成立、真の条件付き期待値()からずらすと二乗誤差が増える=条件付き期待値が最良予測です。
他過程との関係
- マルコフ連鎖とは・遷移行列のマルコフ性は、条件付き期待値の言葉で (過去全体で条件づけても現在だけで条件づけても同じ)と書けます。
- フィルトレーションは停止時刻と任意停止定理の停止時刻()と伊藤積分の被積分過程の可測性で本質的に効きます。
数式の直観的意味
条件付き期待値が射影であることは、ピタゴラスの定理 (予測の分散+残差の分散)を与えます。「説明された分散+説明されない分散」という回帰の分解は、まさにこの射影構造です。マルチンゲールの収束や不等式は、すべてこの幾何(直交性)に支えられています。
⚠️ よくある誤解
- は数ではなく確率変数(-可測な)。具体的な事象 を代入して初めて数になります。
- タワー則の向きに注意。情報を粗くする方向()で 。「粗いほうが勝つ」と覚えます。
- 適合性は予言の禁止。 は で測れる(時刻 までの情報で決まる)必要があり、未来を覗く過程は適合しません。
対応シミュレーション
本文コードの群の数や雑音分散を変えても、群平均=条件付き期待値・タワー則・最良予測の3点は保たれます。
関連
- 前提:確率過程とは
- 次に読む:マルチンゲールの定義と例
- 応用:停止時刻と任意停止定理、伊藤積分