モデル自身の数を学ぶ
これまでモデルの数(q、r、μ、φ、σ など)は与えられていました。実際には同じデータから学ぶ必要があります。粒子フィルタは2通りで役立ちます。第一に、数の選び方 θ ごとにデータの尤度を推定できます。毎日、粒子の重みの平均がその日のリターンの起こりやすさを推定し、その平均の対数を足したものが対数尤度です。格子上の複数の θ についてフィルタを動かし、比較が滑らかになるよう毎回同じ乱数を使い、最良のものを選びます。推定は雑音を含み、17750 付近の対数尤度に対して約 3 のばらつきがあるので、それより大きな差だけが意味をもちます。
logL^(θ)=t∑log(N1i∑wt(i)),h2=1−(2δ3δ−1)2,a=1−h2,θ′=aθ+(1−a)θˉ+hVz(1) 2つ目の方法は未知の数を状態に入れることです。各粒子が自分の θ を持ちます。θ をまったく動かさないと、リサンプリングが少数の値をコピーして θ の雲が1点に潰れるため失敗します。Liu-West の対策は、リサンプリングのたびに各粒子の θ を雲の平均と広がりを保つ形で少しだけ動かすことです。1 に近い割引 δ(たとえば 0.95)を選ぶと、h2=1−((3δ−1)/(2δ))2、a=1−h2 です。各値をまず雲の平均 θˉ のほうへ係数 a で引き寄せ、次に分散 h2V(V は雲の分散)のノイズで揺らします。δ が小さいほど揺らぎは大きくなります。
Liu-West と SPY の数字δ=0.95 のとき
(3δ−1)/(2δ)=0.9737 なので
h2=1−0.97372=0.0519、
a=0.9737 です。平均
0.97 の雲の中で
θ=0.90 の粒子は
0.9737×0.90+0.0263×0.97=0.902 に引き寄せられます。雲の分散が
V=0.0004 なら、揺らぎの分散は
0.0519×0.0004、標準偏差は
0.0046 です。SPYでは、確率的ボラティリティの対数尤度が格子上で
φ=0.98、
σ=0.25 のとき最大の
17793(一定ボラティリティは
16252)になります。数が3つのBICは
−2×17793.1+3ln5404=−35560 で、3状態の隠れマルコフモデル(
−35485)や4状態のもの(
−35557)をも上回ります。
- フィルタリングによる尤度:平均重みの対数の和。選び方ごとに同じ乱数を使う。
- 状態に入れたパラメータ:リサンプリング後に小さな揺らぎが必要で、さもないとパラメータの雲が潰れる。
- モデルを公平に比べる:対数尤度にはBICのようにパラメータ数への罰則が必要。
ラボ:採点される内容
- 対数尤度の改善10点
- Liu-West の定数 h の2乗15点
- 縮小係数 a10点
- 引き寄せられた粒子15点
- 揺らぎの大きさ10点
- BIC15点
- 揺らぎのないパラメータ10点
- なぜ約3の差で比べるのか15点