GARCHモデル:次のステップへ

Rで学ぶGARCHモデル

Kris Boudt

Professor of finance and econometrics

GARCHモデルの考案者

ロバート・エングル

エングル

ティム・ボラースレフ

ボラースレフ

Rで学ぶGARCHモデル

記法 (i)

  • 入力:リターンの時系列

予測されたボラティリティ

Rで学ぶGARCHモデル

記法 (ii)

  • 時点 $t-1$ において、時点 $t-1$ までの情報集合を用いて将来のリターン $R_t$ を予測します:

予測されたボラティリティ

Rで学ぶGARCHモデル

記法 (iii)

  • 平均リターンの予測:実際のリターンの最良予測値は何か? 予測されたボラティリティ
Rで学ぶGARCHモデル

記法 (iv)

  • 次に分散を予測します:リターンが平均からどの程度乖離するか? 予測されたボラティリティ
Rで学ぶGARCHモデル

理論から実践へ:平均のモデル

  • 過去のリターンから平均の予測値を得る方程式が必要です 予測されたボラティリティ

平均のAR(MA)モデルについては、DataCampの時系列分析コースを参照してください。

Rで学ぶGARCHモデル

理論から実践へ:分散のモデル

  • 過去のリターンから分散の予測値を得る方程式が必要です 予測されたボラティリティ
Rで学ぶGARCHモデル

ARCH(p)モデル:自己回帰条件付き不均一分散性

  • 過去のリターンから分散の予測値を得る方程式が必要です 予測されたボラティリティ
Rで学ぶGARCHモデル

GARCH(1,1)モデル:一般化ARCH

  • 過去のリターンから分散の予測値を得る方程式が必要です 予測されたボラティリティ
Rで学ぶGARCHモデル

パラメータの制約

GARCHプロセスを現実的にするには、以下が必要です:

  1. $\omega$、$\alpha$、$\beta$ がすべて $>0$:これにより $\sigma^2_t >0$ が常に保たれます。

  2. $\alpha + \beta < 1$:これにより予測分散 $\sigma^2_t$ が常に長期分散に回帰します:

    • 分散は「平均回帰」的な性質を持ちます
    • 長期分散は $ \frac{\omega}{1-\alpha-\beta}$ に等しくなります
Rで学ぶGARCHモデル

Rによる実装 - 入力の設定

  • RコードでGARCH方程式を確認します:

$$ \sigma^{2}_{t} = \omega + \alpha e^{2}_{t-1} \beta \sigma^{2}_{t-1} $$

# Set parameter values
alpha <- 0.1
beta <- 0.8
omega <- var(sp500ret) * (1 - alpha - beta)
# Then: var(sp500ret) = omega / (1 - alpha - beta)
# Set series of prediction error
e <- sp500ret - mean(sp500ret) # Constant mean
e2 <- e ^ 2
Rで学ぶGARCHモデル

Rによる実装 - 予測分散の計算

# We predict for each observation its variance. 
nobs <- length(sp500ret)
predvar <- rep(NA, nobs)
# Initialize the process at the sample variance
predvar[1] <- var(sp500ret)
# Loop starting at 2 because of the lagged predictor
for (t in 2:nobs){
   predvar[t] <- omega + alpha * e2[t - 1] + beta * predvar[t-1]
}
Rで学ぶGARCHモデル

Rによる実装 - GARCHボラティリティのプロット

# Volatility is sqrt of predicted variance
predvol <- sqrt(predvar)
predvol <- xts(predvol, order.by = time(sp500ret))
# We compare with the unconditional volatility
uncvol <- sqrt(omega / (1 - alpha-beta))
uncvol <- xts(rep(uncvol, nobs), order.by = time(sp500ret))
# Plot
plot(predvol)
lines(uncvol, col = "red", lwd = 2)
Rで学ぶGARCHモデル

予測されたボラティリティ

Rで学ぶGARCHモデル

練習しましょう!

Rで学ぶGARCHモデル

Preparing Video For Download...