ARモデルのパラメータ最尤推定を思い出す

概要

・RだとARのパラメータはコマンド1つで推定してくれますが,はてこれってどうやって推定してるんだっけというのを思い出すための計量経済学 俺様メモの続編でございます.

適当にサンプルデータ生成

パラメータ生成用にAR過程に従うサンプルパスを生成しておきます.

今回は簡単のため,AR(1)過程を生成.パラメータは0.9としております.

$$
y_t = c + \mu y_{t-1} + \epsilon_t \\
\epsilon_t \sim N \left(0, \sigma^2 \right)
$$

というモデルです.
推定するパラメータは\(c, \mu, \sigma\)の3つですな.

尤度

基本的には\(y_1\)から\(y_{1000}\)までの同時密度が必要なわけですが,AR過程の場合は,ベイズの定理を使って同時密度を分解します.

$$
f \left(y_1, y_2, \cdots | c; \mu, \sigma \right) = \prod_{t} f \left(y_t | y_{t-1}, c; \mu, \sigma \right)
$$

\(t-1\)時点から見て,\(t\)時点の値の確率密度関数は正規分布に従いまして,

$$
y_t | y_{t-1} \sim N\left( c + \mu y_{t-1}, \sigma^2 \right)
$$

と.ということでAR(1)の場合には,1期前より前の値は無視して良いということですな.
で,実際にRで計算させると,

関数lで対数尤度を計算して,optimにぶっこんで最適化させます.

ということで
\(c = 0.046, \mu = 0.899, \sigma = 0.984\)というそれっぽい値が出てきます.
一方で\(\mu\)の真値は0.9

確認

一応既存のarメソッドでも推定してみます.

まあ大体同じような値が出てきますね(― ―)
この微妙な誤差はなんやねんというところですが,どうもoptimの推定は初期値を変えると微妙に推定結果が変わるのと
もしかしたら\(y_0\)の処理とかが微妙に異なるのとか色々考えられますが,まあ時間も時間ですし(もう眠い時間帯です),どう推定するのかがわかったということで良しとしておきます.

今回はAR(1)を推定しましたが,任意のAR(p)過程も,基本的に条件付き密度は正規分布ですので推定できると思います.
次元が上がるので推定に時間がかかると思いますが....

という俺様メモでしたm(_ _)m

参考文献

経済・ファイナンスデータの計量時系列分析 (統計ライブラリー): 沖本 竜義: 本 – http://www.amazon.co.jp/dp/4254127928

ARモデルのパラメータ推定法[ストレスと自律神経の科学]
http://hclab.sakura.ne.jp/stress_nervous_ar.html