金融时间序列入门【完结篇】--- ARCH、GARCH

论坛 期权论坛 期权     
期权匿名问答   2022-5-4 10:13   17893   20
作者:yiqi.feng 原文链接:金融时间序列入门(四)--- ARCH、GARCH
前言

前面几篇介绍了ARMA、ARIMA及季节模型,这些模型一般都假设干扰项的方差为常数,然而很多情况下时间序列的波动有集聚性等特征,使得方差并不为常数。因此,如何刻画方差是十分有必要研究的。 本文介绍的ARCH、GARCH模型可以刻画出随时间变化的条件异方差。

七、自回归条件异方差模型(ARCH)

7.1 波动率的特征

对于金融时间序列,波动率往往具有以下特征:
(1)存在波动率聚集现象。 即波动率在一段时间上高,一段时间上低。
(2)波动率以连续时间变化,很少发生跳跃
(3)波动率不会发散到无穷,波动率往往是平稳
(4)波动率对价格大幅上升和大幅下降的反应是不同的,这个现象为杠杆效应

7.2 ARCH的基本原理

在传统计量经济学模型中,干扰项的方差被假设为常数。但是许多经济时间序列呈现出波动的集聚性,在这种情况下假设方差为常数是不恰当的。
ARCH模型将当前一切可利用信息作为条件,并采用某种自回归形式来刻划方差的变异,对于一个时间序列而言,在不同时刻可利用的信息不同,而相应的条件方差也不同,利用ARCH 模型,可以刻划出随时间而变异的条件方差。

7.2.1 ARCH模型思想

1.资产收益率序列的扰动 {} 是序列不相关的,但是不独立。
2.{}的不独立性可以用其延迟值的简单二次函数来描述。
具体而言,一个ARCH(m)模型为:


其中,{}为 均值为0,方差为1的独立同分布(iid)随机变量序列。通常假定其服从标准正态分布。为条件异方差。

7.2.2 ARCH模型效应

从上面模型的结构看,大的过去的平方“扰动”会导致信息大的条件异方差。从而at有取绝对值较大的值的倾向。这意味着:在ARCH的框架下,大的"扰动"会倾向于紧接着出现另一个大的"扰动"。这与波动率聚集的现象相似。
所谓ARCH模型效应,也就是条件异方差序列的序列相关性

7.3 ARCH模型建立

ok,上面尽可能简单的介绍了ARCH的原理,下面主要介绍如何python实现。ARCH模型建立大致分为以下几步:
步骤(1):通过检验数据的序列相关性建立一个均值方程,如有必要,对收益率序列建立一个计量经济模型(如ARMA)来消除任何线形依赖。
步骤(2):对均值方程的残差进行ARCH效应检验
步骤(3):如果具有ARCH效应,则建立波动率模型
步骤(4):检验拟合的模型,如有必要则进行改进

arch库其实提供了现成的方法,(后面会介绍),但是为了理解ARCH,我们按流程来建模

7.3.1 均值方程的建立

这里的均值方程可以简单认为建立ARMA(或ARIMA)模型,ARCH其实是在此基础上的一些“修正”。 我们以上证指数日涨跌幅序列为例(点击查看原文代码):
由于后面的arch库均值方程只支持常数、零均值、AR模型,我们这里建立AR模型,方便对照~


首先检验平稳性,是否需要差分。 原假设H0:序列为非平稳的,备择假设H1:序列是平稳的
p-value:7.56217111771e-10

p-value小于显著性水平,拒绝原假设,因此序列是平稳的,接下来我们建立AR(p)模型,先判定阶次


于是我们建立AR(8)模型,即均值方程
7.3.2 ARCH效应的检验
我们利用金融时间序列入门(一)中的混成检验(Ljung-Box),检验序列{at^2}的相关性,来判断是否具有ARCH效应

计算均值方程残差:=
画出残差及残差的平方



然后对{at^2}序列进行混成检验: 原假设H0:序列没有相关性,备择假设H1:序列具有相关性(点击查看完整表格)



p-value小于显著性水平0.05,我们拒绝原假设,即认为序列具有相关性。因此具有ARCH效应。


7.3.2 ARCH模型的建立
首先讲讲ARCH模型的阶次,可以用{at^2}序列的偏自相关函数PACF来确定:



由上面的图我们可以粗略定为4阶。然后建立AR(4)模型



后续的AR模型就不建立了~ 当然,按照上述流程走下来非常麻烦~
事实上arch库可以一步到位~

根据我们之前的分析,可以粗略选择均值模型为AR(8)模型波动率模型选择ARCH(4)模型(分析过程)
可以看出,我们的模型为:



对上述模型,我们可以看出,上证指数的日收益率期望大约在0.16%。 模型的R-squared较小,拟合效果一般。

7.3.3 ARCH模型的预测

首先来看整体的预测拟合情况:


可以看出,虽然具体值差距挺大,但是均值和方差的变化相似。下面再看最后10个数据的预测情况



可以看出,光从看涨看跌的角度去看,预测看涨看跌的正确率为60%,当然,其实模型更重要的功能是预测波动率,我们将在下章讲到。


八、GARCH模型与波动率预测

虽然ARCH模型简单,但为了充分刻画收益率的波动率过程,往往需要很多参数,例如上面用到ARCH(4)模型,有时会有更高的ARCH(m)模型。因此,Bollerslev(1986)年提出了一个推广形式,称为广义的ARCH模型(GARCH)
=
为t时刻的新息。若满足下式:



其中,{}为 均值为0,方差为1的独立同分布(iid)随机变量序列。通常假定其服从标准正态分布标准化学生-t分布为条件异方差。
则称服从GARCH(m,s)模型。仔细观察公式,发现与ARMA模型很相似!

8.1GARCH模型建立

与之前的ARCH模型建立过程类似,不过GARCH(m,s)的定阶较难,一般使用低阶模型如GARCH(1,1),GARCH(2,1),GARCH(1,2)等。
下面我们以之前的数据为例,构建GARCH模型,均值方程为AR(8)模型,波动率模型为GARCH(1,1)(推导过程)
我们得到波动率模型:





观察上图,第一张图为标准化残差,近似平稳序列,说明模型在一定程度上是正确的;
第二张图,绿色为原始收益率序列、蓝色为条件异方差序列,可以发现条件异方差很好得表现出了波动率。


观察拟合图发现,在方差的还原上还是不错的。

8.2 波动率预测

上一章的预测直接预测了收益率,然而直接预测收益率准确度并不是很高,因此很多时候我们主要用来预测波动率,根据上面建立的波动率模型:


我们可以按照我们建立好的模型一步步计算。
根据模型:


先计算的预测值

我们需要提取均值方程的系数向量w,再逐个计算后面10个值

接着根据波动率模型预测波动率:



array([ 0.01371429,  0.01211216,  0.01066571,  0.00939711,  0.00828183,        0.00729623,  0.00651585,  0.0057566 ,  0.00507332,  0.00448707])

我们将原始数据、条件异方差拟合数据及预测数据一起画出来,分析波动率预测情况



可以看出,对于接下来的1、2天的波动率预测较为接近,然后后面几天的预测逐渐偏小。
可惜的是arch库中没有找到直接调用的方法,只好自己来计算。
小结

本篇是时间序列入门系列的最后一篇,重点还是在基础的概念和python实现上。事实上要真学好这些模型,少不了更多的参考和实验。
另外,还有很多扩展的或改进的模型如求和GARCH、GARCH-M模型、指数GARCH、EGARCH模型等等。 对于波动率模型,还有比较常用的有随机波动率模型等, 有兴趣可以去研究下。
参考文献

1.《金融时间序列分析》 第2版 Ruey S.Tsay著 王辉、潘家柱 译
2.Time Series analysis tsa http://nipy.bic.berkeley.edu/nightly/statsmodels/doc/html/tsa.html
3.Python arch 3.2 https://pypi.python.org/pypi/arch
欢迎到社区探讨交流
分享到 :
0 人收藏

20 个回复

倒序浏览
2#
期权匿名回答  16级独孤 | 2022-5-4 10:13:28 发帖IP地址来自 北京
还可以介绍一些滤波 协整之类的~别完结呀~
3#
期权匿名回答  16级独孤 | 2022-5-4 10:13:54 发帖IP地址来自 中国
赞!
4#
期权匿名回答  16级独孤 | 2022-5-4 10:14:02 发帖IP地址来自 北京
协整和滤波在专栏里都有部分涉及,后续也会发一些。是入门系列完结了,感谢您关注和支持~~
5#
期权匿名回答  16级独孤 | 2022-5-4 10:15:00 发帖IP地址来自 中国
mark
6#
期权匿名回答  16级独孤 | 2022-5-4 10:15:46 发帖IP地址来自 北京
虽然看不懂。但是好想学
7#
期权匿名回答  16级独孤 | 2022-5-4 10:16:13 发帖IP地址来自 北京
Hi 你好 我想问下欸 那个arch model 的阶级怎么通过PACF 图来粗略判断呀??找过好久都没碰到详细的解释,如果方便的话可不可以麻烦你说一下
8#
期权匿名回答  16级独孤 | 2022-5-4 10:16:47 发帖IP地址来自 北京
先回归得到均值模型,然后再计算残差序列得到arch阶数是错误的。均值模型与波动率模型的参数是联合估计得到的
9#
期权匿名回答  16级独孤 | 2022-5-4 10:17:30 发帖IP地址来自 中国
最近在学习Realized Garch有关的论文,希望大神能介绍一下这个模型~
10#
期权匿名回答  16级独孤 | 2022-5-4 10:18:13 发帖IP地址来自 北京
我现在只想哭
11#
期权匿名回答  16级独孤 | 2022-5-4 10:18:18 发帖IP地址来自 北京
所为何事
12#
期权匿名回答  16级独孤 | 2022-5-4 10:18:31 发帖IP地址来自 湖南长沙
毕业论文选题选了garch模型 学渣。。。
13#
期权匿名回答  16级独孤 | 2022-5-4 10:18:47 发帖IP地址来自 中国
GARCH模型能用于其他的方差不平稳序列吗?如电商产品销售数据.
14#
期权匿名回答  16级独孤 | 2022-5-4 10:19:44 发帖IP地址来自 北京
感谢
15#
期权匿名回答  16级独孤 | 2022-5-4 10:20:06 发帖IP地址来自 北京海淀
我想问一下在建模时为什么不直接选择 (at)^2=α0+α1乘(at-1)+α2乘(at-2)+...+αm乘(at-m)的AR形式,而选择令at=σtεt,然后让(σt)^2=α0+α1乘(at-1)+α2乘(at-2)+...+αm乘(at-m)的形式?
16#
期权匿名回答  16级独孤 | 2022-5-4 10:20:18 发帖IP地址来自 中国
这是波动率模型,拟合的时候如果不把波动率放头上,极大似然/MC都没关系,但是OLS出个幺蛾子怎么办,迷之Eviews和Stata都是default=OLS的哟~
17#
期权匿名回答  16级独孤 | 2022-5-4 10:21:14 发帖IP地址来自 北京
不平稳别说GARCH,除了MA你还能用它干嘛?销售数据十有八九是订单流,你确定这玩意是"金融时间序列",没有自相关有异方差?需要刻画波动聚集?在我看来合格水平随便找个聚类算法就行了,当然你要不合格的毕业还是出门右转VAR不谢。
18#
期权匿名回答  16级独孤 | 2022-5-4 10:21:47 发帖IP地址来自 甘肃
写挺好,但就是有些名词可以直接用英文,翻译成中文反而会想半天。
19#
期权匿名回答  16级独孤 | 2022-5-4 10:21:52 发帖IP地址来自 中国
同问……你现在解决了吗……
20#
期权匿名回答  16级独孤 | 2022-5-4 10:21:59 发帖IP地址来自 北京
可以用AIC准则吧?
21#
期权匿名回答  16级独孤 | 2022-5-4 10:22:29 发帖IP地址来自 北京
大神,会用软件吗??教我
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:400157
帖子:80032
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP