杠杆效应

在 R 中构建 GARCH 模型

Kris Boudt

Professor of finance and econometrics

负收益提高杠杆

  • $R_t <0 $
  • $\downarrow$ 市值
  • $\uparrow$ 杠杆 = 债务 / 市值
  • $\uparrow$ 波动率
在 R 中构建 GARCH 模型

两条方程

对负向与正向意外收益的方差分别建模,令 $e_t = R_t - \mu_t$:

当 $ e_{t-1} \gt 0$

$$ \sigma^2_{t} = ??? $$

当 $ e_{t-1} \le 0$

$$ \sigma^2_{t} = ??? $$

在 R 中构建 GARCH 模型

正向意外时

……对正向情况,使用常规 GARCH(1,1) 方程:

当 $ e_{t-1} \gt 0$

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

当 $ e_{t-1} \le 0$

$$ \sigma^2_{t} = ??? $$

在 R 中构建 GARCH 模型

负向意外时

  • 预测方差应高于正向意外之后。

  • 即平方预测误差的系数更大:用 $\alpha+\gamma$ 替代 $\alpha$,且 $\gamma \geq 0$

当 $ e_{t-1} \gt 0$

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

当 $ e_{t-1} \le 0$

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

这就是由 Glosten、Jagannathan 和 Runkle 提出的 GJR 模型。

在 R 中构建 GARCH 模型

如何操作?

ugarchspec()variance.model 参数从 model = "sGARCH" 改为 model = "gjrGARCH"

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

$$\downarrow$$

garchspec <- ugarchspec(mean.model = list(armaOrder = c(0, 0)), 
                        variance.model = list(model = "gjrGARCH"),
                        distribution.model = "sstd")
在 R 中构建 GARCH 模型

MSFT 收益上的示例

估计模型

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

查看 GARCH 系数

coef(garchfit)[2:5]
       omega       alpha1        beta1       gamma1 
2.007875e-06 3.423336e-02 9.363302e-01 5.531854e-02

在 R 中构建 GARCH 模型

用 newsimpact() 可视化波动响应

out <- newsimpact(garchfit)
plot(out$zx, out$zy, xlab = "prediction error", ylab = "predicted variance")

在 R 中构建 GARCH 模型

我们来估计一个 GJR GARCH 模型。

在 R 中构建 GARCH 模型

Preparing Video For Download...