オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【金融時系列解析】CUSUM フィルタ #アルゴリズム編

Index

CUSUM フィルタ とは

CUSUM (Cumulative Sum / 累積和) を利用することで、データをサンプリングする.

yhayato1320.hatenablog.com

CUSUM フィルタは、測定した値の平均値が目標値から離れていくかを検出するための手法.

累積値を以下のように定義する.

 S_t = \max\ (0,\ S_{t-1} + y_t - E_{t-1} [y_{t}]),\ S_0 = 0



初期値は 0 .
加算する値は  y_t - E_{t-1} [ y_{t} ] となり、 ある時点  t と1 時点前の値の差分を意味する.

 y_t - E_{t-1} [ y_{t} ] = y_t - y_{t-1} = \Delta y_t



と考えられるので、 S_t は、以下のように表現でき、差分の累積和と考えられる.

 S_t = \max\ ( 0,\ S_{t-1} + \Delta y_t ),\ S_0 = 0



また、 \max を使用して、差分の累積和が 0 以下にならないように設計されている.

つまり、差分の累積和が 0 を下回らないようにして、累積計算をしていることになる.

そして、ある閾値  h (フィルタサイズ、例えば30ポイント) に対し、 S_t \leq h を満たした最初の時点  t で、 投資家が何らかの行動を起こすというような場面を想定した予測モデルを作成することができる.

差分の累積和がある閾値を超すということは、上昇方向に進んでいる.

今は、累積和が 0 を下回らないように、累積計算をするように設計しましたが、逆も考えられる.

つまり、累積和が 0 を上回らないように、累積計算をするように設計するということ.

 S_t^{+} = \max\ (0,\ S_{t-1}^{+} + y_t - E_{t-1} [y_{t}]),\ S_0^{+} = 0  S_t^{-} = \min\ (0,\ S_{t-1}^{-} + y_t - E_{t-1} [y_{t}]),\ S_0^{-} = 0



 S_t^{-} はある閾値(対称性を持たすとするなら -h )を下回ると、投資家はなんらかの行動を起こすと考えれば良い.

参考