rugarchパッケージ

Rで学ぶGARCHモデル

Kris Boudt

Professor of finance and econometrics

定数平均を持つ通常のGARCH(1,1)モデル

通常のGARCHモデル

$$ R_t = \mu + e_t $$ $$ e_t \sim N(0, \sigma^2_t) $$ $$ \sigma^2_t = \omega + \alpha e^2_{t-1} + \beta \sigma^2_{t-1} $$

  • 4つのパラメータ:$\mu, \omega, \alpha, \beta$。
  • 最尤法による推定:観測されたリターン系列が生成される可能性が最も高いパラメータ値を求めます。
Rで学ぶGARCHモデル

Alexios Ghalanos

library(rugarch)
citation("rugarch")

To cite the rugarch package, please use: Alexios Ghalanos (2018). rugarch: Univariate GARCH models.R package version 1.4-0.
Rで学ぶGARCHモデル

ワークフロー

  • 3つのステップ:

    • ugarchspec():使用するGARCHモデルを指定します(平均$\mu_t$、分散$\sigma^2_t$、$e_t$の分布)。

      • ugarchfit():リターン$R_1,...,R_T$の時系列にGARCHモデルを当てはめます。

      • ugarchforecast():推定済みGARCHモデルを使って$R_{T+1}$,...のボラティリティを予測します。

Rで学ぶGARCHモデル

Rでのワークフロー

ugarchspec()は使用するGARCHモデルを指定します。

garchspec <- ugarchspec(mean.model = list(armaOrder = c(0,0)),
                           variance.model = list(model = "sGARCH"),
                           distribution.model = "norm")

ugarchfit()はGARCHモデルを推定します。

garchfit <- ugarchfit(data = sp500ret, spec = garchspec)

ugarchforecast()は将来リターンのボラティリティを予測します。

garchforecast <- ugarchforecast(fitORspec = garchfit, n.ahead = 5)
Rで学ぶGARCHモデル

ugarchfitオブジェクト

  • ugarchfitはGARCHモデルの推定結果をすべて含むオブジェクトを返します。
  • メソッドcoef、uncvar、fitted、sigma:
# Coefficients
garchcoef <- coef(garchfit)
# Unconditional variance
garchuncvar <- uncvariance(garchfit)
# Predicted mean
garchmean <- fitted(garchfit) 
# Predicted volatilities
garchvol <- sigma(garchfit)

Rで学ぶGARCHモデル

S&P 500日次リターンのGARCH係数

print(garchcoef)
          mu        omega       alpha1        beta1 
5.728020e-04 1.220515e-06 7.792031e-02 9.111455e-01 

$$ R_{t} = 5.7 \times 10^{-4} + e_{t} $$ $$ e_{t} \sim N(0, \hat{\sigma}^{2}_{t}) $$ $$ \hat{\sigma}^{2}_{t} = 1.2 \times 10^{-6} + 0.08 e^{2}_{t-1} + 0.91 \hat{\sigma}^{2}_{t-1} $$

sqrt(garchuncvar)
0.01056519
Rで学ぶGARCHモデル

推定ボラティリティ

garchvol <- sigma(garchfit)
plot(garchvol)

Rで学ぶGARCHモデル

将来のボラティリティは?

tail(garchvol, 1)
2017-12-29 0.004862908

時系列の終了後の日々のボラティリティはどうなるでしょうか?

Rで学ぶGARCHモデル

hステップ先のボラティリティ予測

  • ugarchforecastオブジェクトにsigma()メソッドを適用すると、ボラティリティ予測が得られます:
sigma(garchforecast)
      2017-12-29
T+1  0.005034754
T+2  0.005127582
T+3  0.005217770
T+4  0.005305465
T+5  0.005390797
Rで学ぶGARCHモデル

hステップ先のボラティリティ予測

ugarchforecastオブジェクトにfitted()メソッドを適用すると、平均予測が得られます:

fitted(garchforecast)
      2017-12-29
T+1  0.000572802
T+2  0.000572802
T+3  0.000572802
T+4  0.000572802
T+5  0.000572802
Rで学ぶGARCHモデル

タクティカル・アセット・アロケーションへの応用

リスク資産(ボラティリティ$\sigma_t$)に割合$w$を投資し、残り$1-w$を無リスク預金に保有するポートフォリオのボラティリティは次の通りです:

$$ \sigma_p = w \sigma_t$$

$w$の設定方法として、ボラティリティ・ターゲティングがあります:予測された年率ポートフォリオ・ボラティリティが目標水準(例:5%)と等しくなるよう$w$を設定します。その場合:

$$ w^* = 0.05 /\sigma_t $$

GARCHボラティリティは変化するため、最適ウェイトも変化します。

Rで学ぶGARCHモデル

rugarchを使って練習しましょう!

Rで学ぶGARCHモデル

Preparing Video For Download...