波动性分析

在 R 中构建 GARCH 模型

Kris Boudt

Professor of finance and econometrics

讲师简介

  • Kris Boudt
    • 金融风险预测博士
    • 用 GARCH 模型"以不太亏损来取胜"
  • Alexios Ghalanos 的 R 包 rugarch。

Kris Boudt

在 R 中构建 GARCH 模型

计算收益率

  • 相对盈亏用收益率表示:

$$ R_{t} = \frac{P_{t} - P_{t-1}}{P_{t-1}} $$

  • PerformanceAnalytics 中的 CalculateReturns 函数
# 日度标普500价格(xts 对象)的 R 示例
library(PerformanceAnalytics)
SP500returns <- CalculateReturns(SP500prices)
在 R 中构建 GARCH 模型

标普500日收益

标普500日收益

日收益特征:

  • 平均收益约为零
  • 波动随时间变化

标准差 = 收益波动的度量。

同义词:收益"波动率"。

希腊字母 $\sigma_t$。

在 R 中构建 GARCH 模型

按年份的日收益分布

在 R 中构建 GARCH 模型

如何估计收益波动率

  • 函数 sd() 计算(日度)标准差:
sd(sp500ret)
0.01099357
  • 用 $T$ 个日收益估计 $\hat \sigma$ 的公式:

$$ \hat \sigma = \sqrt{\frac{1}{T-1} \sum_{t=1}^T (R_t - \hat \mu )^2},$$

  • 其中 $\hat \mu$ 为平均收益。
在 R 中构建 GARCH 模型

年化波动率

  • sd(sp500ret) 是日度波动率
  • 年化波动率 = $\sqrt{252}$ $\times$ 日度波动率
# 计算年化标准差
sqrt(252) * sd(sp500ret)
0.1745175
在 R 中构建 GARCH 模型

按年份的日收益分布

在 R 中构建 GARCH 模型

滚动波动率估计

  • 滚动估计窗口: 滚动窗口
  • 窗口宽度?22(交易日)的倍数。
在 R 中构建 GARCH 模型

函数 chart.RollingPerformance()

library(PerformanceAnalytics)

chart.RollingPerformance(R = sp500ret,
                         width = 22,
                         FUN = "sd.annualized",
                         scale = 252, 
                         main = "Rolling 1 month volatility")
在 R 中构建 GARCH 模型

滚动窗口波动率

在 R 中构建 GARCH 模型

R 中的 GARCH 模型

  • 估计 $\sigma_t$ 需使用时间序列模型,如 GARCH。
在 R 中构建 GARCH 模型

复习:在 R 中计算滚动标准差的基础

在 R 中构建 GARCH 模型

Preparing Video For Download...