2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Julia言語】自己励起閾値モデル (TAR model) の実装

Posted at

閾値モデルとは

まず閾値モデルとはなにか、沖本本によると

ある状態変数 $s_t$ がある閾値を超えているかどうかによって, $y_t$ が従うモデルが変化するモデル

とあります。以下沖本本にそって物語が進んでいきます.
さて, 時系列モデルの基本となるARモデル( 自己回帰モデル )について閾値モデルを考えていきます. ARモデル + 閾値モデル は特にTARモデル( threshold AR model )といいます。

TARモデルとは

TARモデルのイメージをつかむには数式を見るのが一番早いです。2状態TAR(1) を見てみましょう。

\begin{align}
y_t &= \phi_{01} + \phi_{11} y_{t-1} + \sigma_1 \epsilon_t \quad s_t < c \\
y_t &= \phi_{02} + \phi_{12} y_{t-1} + \sigma_2 \epsilon_t \quad s_t \geq c  
\end{align}

ここで, $\epsilon_t ~ \mathcal{N}(0, 1)$, $c$ は閾値である。閾値モデルとは, 閾値 $c$ を $s_t$ が上回るか下回るかでモデルが切り替わると一体感じです。

ここで重要なのは, 状態数はいくつに増やしてもいいし, もちろん状態が切り替わるごとに $\epsilon_t$ の分布も変えてもよく, さらに言えば各状態におけるARモデルのラグ $p$ も状態によって変化させてもいいです。パラメータの一部だけを変化させても問題ありません。それらはすべてモデルにおく仮定によって柔軟に対応できます。

さて, 実際にTARモデルを考えていこうとすると $s_t$ をどうやって決めるかで困ると思います. $s_t$ の設定は $t$ 期の時点ですでに手に入っている観測値であれば, どんな値でも構わないです。一般に使われているのは $s_t = y_{t-d}$ または, $s_t = |y_{t-d}|$ です。$d$ の選択としては $d = 1$ がよく使われるみたいです.

パラメータの推定

パラメータ $d, c$ を所与とすれば, 簡単に最尤推定を行うことができます. 例えば, 2状態TAR(1)の場合, $s_t < c$ の場合, $\mathcal{N}(\phi_{01} + \phi_{11} y_{t-1}, \sigma_1^2)$ を使い, $s_t \geq c$ の場合, $\mathcal{N}(\phi_{02} + \phi_{12} y_{t-1}, \sigma_2^2)$ を使って密度を計算すればいいです.

しかし, 一般にTARモデルは最尤推定で解が定まりません.そのためMCMC法を用いたベイズ統計学に基づいた推定方法など, いろいろな工夫がされてきています[砂田 2004].
今回はベイズ統計学に基づいた方法は取り扱いません. 先ほど説明したパラメータ $d, c$ を所与としたときの最尤推定を行っていこうと思います.

実装

実装はこちらにあります。R言語ではパラメータ $c$ をデータから学習できるみたいです。どういう計算をしているのか、時間があるときにプログラムを確認してみたいと思います。

実装内容としては、状態を判定した後にARモデルを推定しているだけなので、複雑なことをしているわけではありません。

参考

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?