作者 | 追光者
研究 | 机器学习与时间序列
1. ARCH
1.1 异方差
在传统计量经济学模型中,都假设干扰项的方差为常数(同方差)。但是在现实世界中,许多经济时间序列的波动具有丛聚性等特征。例如:股市中可能存在的涨跌,当遇到结构性风险,股票价格可能存在大涨或者大跌的情况,这种类时间序列被称为条件异方差,即使无条件异方差是恒定的,但是也会存在方差相对较高的时候,而这个波动率是通常会呈现出持续性,这被称为波动丛聚性。
1.2 ARCH过程
ARCH (atuoregressive conditional heteroskedastic,自回归条件异方差)模型可以描述一个序列阶段性的稳定和波动 :
表示白噪音过程,满足 ; 和 相互独立, 和 都为常数,且
把 代入到 中可得:
这便是序列 的一阶自回归异方模型ARCH(1),推广到高阶则可得
我们为什么要用条件异方差呢,首先来考虑估计一个平稳的ARMA模型 ,则 的条件均值为 ,用条件均值去预测下一期 ,则预测误差的方差为
如果使用无条件预测,结果一般是时间序列的长期均值 。则无条件预测误差方差为
其中白噪音过程, , ,可得
由此可得无条件预测方差大于条件预测方差,所以使用条件预测结果更好。所以针对一些时间序列的异方差性,可以使用一些模型去拟合条件方差。
1.3 ARCH性质
1.ARCH模型,误差项的条件均值和无条件均值都等于0.对于所有 ,因此,序列 具有序列不相关性,但是误差并不相互独立(误差),换个角度看, ARCH(1) 的方差是等于AR(1)的:
2. 为条件异方差将导致 也为异方差,所以ARCH模型可以表示出序列 中阶段性的稳定和波动
3.ARCH误差和序列 的自相关参数相互作用。 的变化和序列 的持续较大的方差有关, 越大,持续时间越长, 的变化越持久。
ARCH是使用AR(P)来对条件方差建模,如果加上MA(q) 过程又会如何呢?由此衍生出了GARCH
2. GARCH
假设误差过程为:
表示白噪音过程,均值为0,方差为1,因此 的条件与无条件均值都为0.
此模型将自回归以及异方差的移动平均项结合了起来。当p=0,q=1,则可得到ARCH模型。如果 都等于0,则得到一个ARCH(q)模型。
3. 代码
ARCH过程建模可以利用python的arch库,这里简单贴一下官网的实例,使用简单,就不赘述了。
这些示例利用了Yahoo!的S&P 500数据。
import datetime as dt
import sys
import numpy as np
import pandas as pd
from arch import arch_model
import arch.data.sp500
data = arch.data.sp500.load()
market = data['Adj Close']
returns = 100 * market.pct_change().dropna()
am = arch_model(returns, vol='Garch', p=1, o=0, q=1, dist='Normal')
res = am.fit(update_freq=5)
forecasts = res.forecast()
参考资料
[1] Applid Econometric:Time Series (4th Editioin) ——Walter Enders