苦あれば楽あり

Rで学ぶGARCHモデル

Kris Boudt

Professor of finance and econometrics

GARCH-in-meanモデル

  • リスク・リターンのトレードオフを定量化。
  • リスク:$\sigma^2_t$。リターン:$\mu_t$。
  • GARCH-in-meanモデル:

$$ \mu_{t} = \mu + \lambda \sigma^2_{t} $$

$\lambda > 0$ はリスク/リターン係数で、分散リスク1単位あたりの期待収益の増加を示す。

Rで学ぶGARCHモデル

方法は?

ugarchspec() の mean.model を、list(armaOrder = c(0, 0)) から list(armaOrder = c(0, 0), archm = TRUE, archpow = 2) に変更:

garchspec <- ugarchspec(
              mean.model = list(armaOrder = c(0, 0)),
              variance.model = list(model = "gjrGARCH"),
              distribution.model = "sstd")
garchspec <- ugarchspec(
               mean.model = list(armaOrder = c(0, 0), archm = TRUE, archpow = 2),
               variance.model = list(model = "gjrGARCH"),
               distribution.model = "sstd")
Rで学ぶGARCHモデル

S&P 500日次リターンへの適用

推定

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

平均の推定係数の確認

round(coef(garchfit)[1:2], 4)
    mu  archm 
0.0002 1.9950

予測平均リターン

$$ \hat{\mu}_{t} = 0.0002 + 1.9950 \hat{\sigma}^2_{t} $$

Rで学ぶGARCHモデル

予測リターンの時系列プロット

  • Rでプロット
    plot(fitted(garchfit))
    
Rで学ぶGARCHモデル

今日のリターンは明日のリターンを予測する

  • GARCH-in-meanは、リスク・リターンの理論で条件付き平均モデルを構築する。
  • 次に統計理論を使い、今日と明日のリターンの相関を活用した平均モデルを作る。
  • 最も一般的なのはAR(1)モデル:
    • AR(1)は1次の自己回帰モデル。
    • 長期平均 $\mu$ からの乖離を用いて次期リターンを予測:

$$ \mu_{t} = \mu + \rho(R_{t-1} - \mu) $$

Rで学ぶGARCHモデル

自己回帰係数が正の場合

$$ \mu_{t} = \mu + \rho(R_{t-1} - \mu) $$

  • $\rho > 0$:
    • 平均より高い(低い)収益の後に、平均より高い(低い)収益が続く。
    • 可能な説明:市場がニュースに過小反応し、収益にモメンタムが生じる。
  • $|\rho|<1$:平均回帰:$R_t$ の $\mu$ からの乖離は一時的。
Rで学ぶGARCHモデル

自己回帰係数が負の場合

$$ \mu_{t} = \mu + \rho(R_{t-1} - \mu) $$

  • $\rho < 0$:
    • 平均より高い(低い)収益の後に、平均より低い(高い)収益が続く。
    • 可能な説明:市場がニュースに過剰反応し、収益にリバーサルが生じる。
Rで学ぶGARCHモデル

S&P 500日次リターンへの適用

sst分布のAR(1)-GJR GARCHの定式化と推定

garchspec <- ugarchspec( 
          mean.model = list(armaOrder = c(1, 0)),
          variance.model = list(model = "gjrGARCH"),
          distribution.model = "sstd")
garchfit <- ugarchfit(data = sp500ret, spec = garchspec)

AR(1)モデルの推定値

round(coef(garchfit)[1:2], 4)
     mu     ar1     
 0.0003 -0.0292
Rで学ぶGARCHモデル

MA(1)とARMA(1,1)モデル

1次移動平均モデルは、収益の条件付き平均からの乖離を用いる:

$$ \mu_{t} = \mu + \theta(R_{t-1} - \mu_{t-1}) $$

ARMA(1,1)はAR(1)とMA(1)の結合:

$$ \mu_{t} = \mu + \rho(R_{t-1} - \mu) + \theta(R_{t-1} - \mu_{t-1}) $$

Rで学ぶGARCHモデル

方法は?

MA(1)

garchspec <- ugarchspec( 
          mean.model = list(armaOrder = c(0, 1)),
          variance.model = list(model = "gjrGARCH"),
          distribution.model = "sstd")

ARMA(1, 1)

garchspec <- ugarchspec( 
          mean.model = list(armaOrder = c(1, 1)),
          variance.model = list(model = "gjrGARCH"),
          distribution.model = "sstd")
Rで学ぶGARCHモデル

mean.model引数を変更してみましょう

Rで学ぶGARCHモデル

Preparing Video For Download...