波动率建模(二)GARCH模型及Python实现
1. 模型思想
GARCH(Generalized Autoregressive Conditional Heteroskedasticity,广义自回归条件异方差)模型的核心思想是:金融资产收益率的波动率(条件方差)随时间变化,且当前波动率可以用过去的信息来预测。它通过引入条件异方差来描述时间序列数据的波动性特征,能够捕捉金融时间序列中的波动性聚集现象(即大波动往往跟随大波动,小波动往往跟随小波动)。
2. 数学形式
2.1 数学形式:GARCH模型通常由两部分组成,均值方程和方差方程。
- 均值方程:用于描述时间序列数据的线性关系。
- 方差方程:是GARCH模型的核心,用于描述时间序列数据的波动性。
对于序列 ,令
,其中
是
的平均值。如果残差
满足下述条件,则称
服从GARCH(p,q)模型:
其中,为零均值、单位方差的独立同分布白噪声序列。
如何理解这种数学形式?要区分“残差”和“波动率”的概念。
- 通过把残差
分解为
与
的乘积,就是把复杂问题拆成“条件方差+标准噪声”。我们相当于说:今天的涨跌
,是由今天市场的“不安程度”
乘上一个标准尺度的随机冲击
共同决定的。这样,
越大,同样的
造成的实际涨跌
就越大,直观对应了“市场越动荡,同样消息引发的价格波动也越大”的经济直觉。
- 再假设
是“干净”的白噪声(零均值、单位方差、独立同分布)。 这样,
的统计性质变得非常简单:它只负责提供“标准尺度”的随机性,而所有复杂的时变波动特征都被
吸收了。于是,对
的检验(如是否独立、是否正态)可以直接在标准化残差
上进行,大大简化了模型诊断。
- 便于极大似然估计:只要给定
的分布(如标准正态),就能写出
的条件密度,进而构造似然函数。
作为条件标准差,直接出现在密度函数里,估计过程变得系统化。
- 风险度量:VaR、ES 等风险指标都依赖于“未来波动率”的预测。
本身就是这个预测值,而
的分位数(如 1% 分位数)可以用来计算 VaR:
。
2.2 GARCH(1,1)模型
这是最常用的形式,表达式为: