ドル円のボラティリティをGARCHで推定

概要

・GARCHでドル円のボラティリティを推定
・tseriesのgarch関数を使えるようになるまで

モデル

GARCHを何となく把握する必要があるような気がしてきたので概観とRの使い方だけメモ

リターン系列\( r_t \)をAR(m)モデルに適用した場合の残差系列\( \epsilon_t \)としたとき、GARCH(p,q)は以下。
$$
\epsilon_t \sim N \left( 0, \sigma_t^2 \right) \\
\epsilon_t = \sigma_t z_t \\
z_t \sim N \left(0, 1 \right) \\
\sigma_t^2 = w + \sum_{i=0}^p \beta_i \sigma_{t-i}^2 + \sum_{j=1}^q \alpha_j \epsilon_{t-j}^2
$$

2-3行目が解釈しづらかったのですが、\( \epsilon_t \)が期待リターンからの実現した乖離。一方で推定したいボラティリティ\( \sigma_t \)は実際にどの程度平均からバラつき得るか( \( \epsilon_t \)の分布の標準偏差)という感じですかねえ。

Rでの使い方

大きくtseriesパッケージとfSeriesパッケージが主流のようですが、fSeriesは安定性に欠けているとのコメントが散見されたのでここは大人しくtseriesで。

データはFRED先生からドル円レートを落としてきて使います。

Japan / U.S. Foreign Exchange Rate – FRED – St. Louis Fed
http://research.stlouisfed.org/fred2/series/DEXJPUS

適当にfxという変数に格納し、とりあえず値を概観。

140622_1

FREDから取れるだけデータを取ると1971年から取得できるのですが、今回は1973年4月からのデータを使います。
(1973年2-3月に日本も変動相場制に移行したため by Wikipedia)

garch関数を使うことで、系列に対してGARCHを適用してくれます。デフォルトはGARCH(1,1)。
モデル選択は面倒なので今回は割愛。
summaryの出力結果は以下

Residualsが残差系列の要約、
CoefficientsがGARCHの推定されたパラメータ、定数項を含めた3つのパラメータはすべて有意となっています。
Diagnostic Testsでは正規性のテストとしてJarque Bera検定、系列相関のテストとしてBox-Ljung検定の結果も表示されます。
Jarque Bera検定は帰無仮説「残差系列が正規分布に従う」となります。p値が非常に小さいことから帰無仮説は棄却され、残差系列は正規分布に従っていないと言えそうです。
Box-Ljung検定は帰無仮説「残差の2乗に1次の系列相関がある」となります。こちらは有意水準5%のもとで帰無仮説が棄却されず、系列相関が無いとは言えないという結果に。

ボラティリティ推定結果

\( \sigma_t \)は日次ボラティリティで、少し見づらいためfx.sigmaに格納するときに年率換算しています。
またこの値はfitted.valuesという変数に格納されています。

140622_2

平均では年率換算で10%をうろちょろし、時々ジャンプして時間とともに落ち着いてという感じですね。
直近(2014年5月末)はニュースなどになっていますように非常に落ち着いた環境であります。
まあこの推定結果を見ると1970年代とかはボラティリティが落ち着いたまま何年も過ごしている期間がありますし、足元でボラティリティが下がっているからといって近々ボラティリティが上昇するという見方はちょっと違うんじゃないんですかという感じですかね。まあいつかは上がるわけですが。

不明点

以下個人的に謎だったメモ
・残差系列の計算方法:教科書的には残差系列はAR(m)過程に適用した残差系列となっておりますが、これが今回使用したgarch関数ではどのように計算されているのかが謎(ソース追いかければ分かりますががが)
・というかそもそもリターン系列をAR過程にぶち込むという発想自体が違和感。特に為替レートなんてゼロサムなもんで期待リターンってあるんですかねえという疑問。普通にリターン2乗を残差系列としても良いような。

参考文献

Amazon.co.jp: ボラティリティ変動モデル (シリーズ 現代金融工学): 渡部 敏明, 木島 正明: 本
http://www.amazon.co.jp/dp/4254275048

Package “tseries”
http://cran.r-project.org/web/packages/tseries/tseries.pdf

Time series analysis using R: Estimation of stationary and non-stationary models(日本語)
http://www.geocities.jp/atsmatsumoto/