🎓 レベル:標準 | 重要度:A(必須)
📎 前提:リターンの測り方 | 数理:確率過程(マルコフ連鎖・ポアソン過程)(統計)・時系列解析(定常性・ACF/PACF・AR・MA・ARMA・ARIMA)(統計)
要点(BLUF)
- ランダムウォークは、対数価格が「前の値+独立なショック」で動くモデル。次のリターンは過去のリターンから予測できません。
- **効率的市場仮説(EMH)**は、価格が利用可能な情報を即座に織り込むため、系統的に超過リターンを得続けることはできないとする考え。弱・準強・強の3形態があります。
- ランダムウォークの数値的な指紋は2つ:リターンの自己相関がほぼ 0、そして分散が時間に比例する(分散比 ≈ 1)。
1. ランダムウォークモデル
もっとも単純な価格モデルは、価格が毎期ランダムなショックを足されて動くというものです。対数価格 を使うと
このとき、対数リターン は独立同分布になります。価格そのものは で、ショックの累積です(対数で考えるので価格は常に正に保たれます——これが 幾何ブラウン運動による資産価格モデル につながる「幾何」ランダムウォーク)。シミュレートして眺めます。
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib
rng = np.random.default_rng(0)
T = 2000
log_ret = rng.normal(0.0003, 0.01, T) # iid なリターン(ショック)
log_price = np.cumsum(log_ret) # 対数価格=ショックの累積
price = 100*np.exp(log_price)
fig, ax = plt.subplots(1, 2, figsize=(11, 4))
ax[0].plot(price); ax[0].set_title("価格(幾何ランダムウォーク)")
ax[0].set_xlabel("時点"); ax[0].set_ylabel("価格")
ax[1].plot(log_ret, lw=0.5); ax[1].set_title("リターン(iid なショック)")
ax[1].set_xlabel("時点"); ax[1].set_ylabel("対数リターン")
plt.tight_layout(); plt.show()
出力の意味:左の価格はトレンドや「クセ」があるように見えますが、それは独立なショックを積み上げただけの錯覚です。右のリターンは中心0付近で無秩序に振動し、規則性がありません。「価格にはパターンがあるように見えるが、リターンはただのノイズ」——これがランダムウォークの本質で、人間がチャートに見出すパターンの多くが後知恵だと示唆します。
2. 効率的市場仮説(EMH)
なぜ価格はランダムウォークになるのか。効率的市場仮説はこう説明します——もし「明日上がる」と分かる情報があれば、投資家は今日買い、価格は即座に上がってしまう。結果、予測可能な部分は瞬時に価格へ織り込まれ、残るのは予測不能なニュース(ショック)だけになります。情報集合の範囲で3形態に分かれます。
- 弱効率:過去の価格・出来高はすべて織り込み済み。テクニカル分析で勝ち続けられない。
- 準強効率:公開情報(決算・ニュース)もすべて織り込み済み。公表情報を使ったファンダメンタル分析でも超過収益は続かない。
- 強効率:内部情報すら織り込み済み(現実には成り立たないとされる)。
数学的には、(リスク中立化した)価格がマルチンゲール——、つまり「今持っている情報での最善の予測は現在値」——になることに対応します。これは第4章のリスク中立評価の伏線です。
3. リターンの予測不能性:自己相関
ランダムウォークなら、リターンに時間方向の相関がないはずです。今日のリターンと明日のリターンの相関(ラグ1自己相関)を測ります。
import numpy as np
rng = np.random.default_rng(0)
T = 2000
log_ret = rng.normal(0.0003, 0.01, T)
# ラグ1の自己相関:今日のリターンと「翌日」のリターンの相関
ac1 = np.corrcoef(log_ret[:-1], log_ret[1:])[0, 1]
print(f"リターンのラグ1自己相関: {ac1:.4f}")
出力:
リターンのラグ1自己相関: -0.0083
出力の意味:自己相関は で、ほぼ 0。「昨日上がったから今日も上がる」といった連動はありません。これがリターンの予測不能性の数値的な証拠です(実際の株式リターンも、日次の自己相関はほぼ 0 と知られています——ただしボラティリティには相関があり、これは 時系列解析(定常性・ACF/PACF・AR・MA・ARMA・ARIMA)(統計)の GARCH などで扱います)。
4. 分散の時間比例:分散比
ランダムウォークのもう1つの指紋は、分散が時間に比例することです。リターンが独立なら、 期間ぶんを足したリターンの分散は1期間分散の 倍。これを使った分散比
は、ランダムウォークなら 1 に近づきます(リスクの測り方 の √t則の裏返し)。
import numpy as np
rng = np.random.default_rng(0)
T = 2000
log_ret = rng.normal(0.0003, 0.01, T)
# k期間リターンの分散 ÷ (k×1期間分散)。ランダムウォークなら VR≈1
for k in [1, 5, 20]:
n_blocks = T // k
kret = log_ret[:n_blocks*k].reshape(n_blocks, k).sum(axis=1)
vr = kret.var() / (k * log_ret.var())
print(f"k={k:>2}: 分散比 VR = {vr:.4f}")
出力:
k= 1: 分散比 VR = 1.0000
k= 5: 分散比 VR = 0.9693
k=20: 分散比 VR = 1.0065
出力の意味:どの集計期間でも分散比は 1 の近く(0.97〜1.01)。分散が時間にきれいに比例しています。実データで なら正の自己相関(トレンド追随)、 なら平均回帰(リバーサル)の兆候——分散比検定は、市場がランダムウォークから外れていないかを調べる標準的な道具です(ロー=マッキンレー)。
⚠️ よくある誤解
- 「ランダムウォーク=リターンの平均が0」ではない:ドリフト (上のコードでは 0.0003/日)があってよく、長期では右肩上がりです。予測不能なのは「平均からのズレ」の部分です。
- 「効率的市場=価格が正しい」ではない:EMH が言うのは「公開情報で系統的に勝ち続けられない」こと。価格が常にファンダメンタルズと一致する保証ではなく、バブルや暴落と矛盾しません(要最新確認:行動ファイナンスからの批判もあります)。
- リターンが無相関でも独立とは限らない:自己相関 0 は「線形の」予測不能性。リターンの2乗(ボラティリティ)には強い相関(クラスタリング)があり、リスク管理ではここが本質になります(第8章)。
関連ノート
- 第3章 確率過程と資産価格 目次
- リターンの測り方 — 前提:対数リターンの加法性
- ブラウン運動と幾何ブラウン運動 — 次のトピック:連続時間版のランダムウォーク
- 確率過程(マルコフ連鎖・ポアソン過程)(統計)・時系列解析(定常性・ACF/PACF・AR・MA・ARMA・ARIMA)(統計)— 確率過程・自己相関の土台
- 金融工学テキスト 全体目次