欢迎光临
我们一直在努力

过往经验:R语言分析股票指数的GARCH效应

过往经验:R语言分析股票指数的GARCH效应

R语言分析股票指数的GARCH效应一、实验说明1.1 实验内容

GARCH模型是对金融数据波动性进行描述的方法,为大量的金融序列提供了有效的分析方法,它是迄今为至最常用的、最便捷的异方差序列拟合模型。本次实验运用R语言利用上海证券综合指数进行GARCH模型的分析,包括计算股票指数的收益率,实现收益率的可视化股票月收益率公式,计算一些基本统计量,绘制股指收益率的ACF和PACF图,检验收益率序列的ARCH效应,估计GARCH模型以及标准化残差分析等。最终通过本次实验检验股票指数的GARCH效应,了解股票市场上的波动聚集效应。

1.2 实验知识点1.3 实验环境1.4 适合人群

本课程难度一般,属于中级级别课程,适合具有一定 R 语言经管背景基础的用户,在巩固 R 语言基础的同时逐渐深入学习用 R 进行金融计量建模,进行金融量化分析。

二、实验原理

GARCH是一种用过去的方差以及其的预测值来预测未来方差的自回归条件异方差时间序列模型。其中异方差指方差随时间变化而变化,即具有异方差性;条件性表示了对过去临近观测信息的依赖;自回归则描述了预测值与过去观测值联系的反馈机制。

该方程可以求出模型的条件期望,投资者投资者在交易中所得到的信息依赖于过去时刻的收益以及过去时刻预期收益和实际收益间的误差;根据该方程也可描述模型的条件方差,它不仅是滞后随机扰动项平方的线性函数也是滞后项条件方差的线性函数股票月收益率公式,表明了过去时刻的波动对未来价格波动有着正向缓解的影响,从而模拟了波动聚集性。

限制条件是冲击过程{ht}存在有限方差的充分必要条件,其值大小反映了序列波动的持续性,即序列在过去时刻波动的特征在当前时刻被继续波动的程度。

保证了条件方差序列是非负的。

三、实验准备3.1 获取实验数据

在进行实验之前我们需要现将实验所需的数据下载到实验楼的实验环境中。

$**et http://labfile.oss.aliyuncs.com/courses/900/000001.csv

注:由于本实验需要的 FinTS 这个程辑包从 CRAN 库中被移除了,所以这里需要我们进行离线安装,我们已经将程辑包下载下来上传到了实验平台

$**et http://labfile.oss.aliyuncs.com/courses/900/FinTS_0.4-5.tar.gz

过往经验:R语言分析股票指数的GARCH效应 1

安装程辑包

sudo R CMD INSTALL /home/shiyanlou/FinTS_0.4-5.tar.gz

3.2 启动 R 并导入数据

sudo R   # 在Xfce中启动 R

data<-read.csv("000001.csv")   #导入上海证券综合指数的数据

3.3**程序包

本次实验所需要用到的 R 包有:、FinTS、、、、 等,镜像依旧选择 China () [https]。

install.packages("tseries")
install.packages("timeDate")
install.packages("timeSeries")
install.packages("fBasics")
install.packages("fGarch")

四、实验步骤4.1 计算对数收益率

金融数据分析一般研究的是资产收益率,而不是资产的价格。资产收益率序列比一般的价格序列更容易处理,更具有研究意义。而资产收益率也有很多种定义,本次实验使用对数收益率,也就是对上海证券综合指数日收盘价格取对数差分。

close<-data[,2]          # 上证指数日收盘价
n<-length(close)         # 获取数据的长度
return<-log(close[2:n])-log(close[1:n-1])    # 上证指数的对数收益率
head(return)             #查看 return 的前6行数据

当然也可以直接使用 diff 函数直接做差分求对数收益率。

return<-diff(log(close))
head(return)

我们可以看到两个方法得出的结果是一致的。

4.2 股票指数的可视化

在绘制图形之前,我们需要先将数据转化为时间序列格式,需要用到 ts 函数。

用法:ts(数据向量,start=c(第一个数据所表示的年,月),=表示将时间分开的时间间隔)。

Close.ts<-ts(close,start=c(2000),freq=250) 
Return.ts<-ts(return,start=c(2000),freq=250)
par(mfrow=c(2,1))          #建立一个以两行一列排列图形的图形窗口
plot(Close.ts,type="l",main="(a) Daily Closing Price of       
     000001.SH",xlab="Date", ylab="Price", cex.main=0.95,las=1)     
plot(Return.ts,type="l",main="(b) Daily Rate of Return of  
     000001.SH",xlab="Date", ylab="Rate", cex.main=0.95, las=1)

type、main、xlab、ylab、cex.main、las都是图形参数

下图就是上海证券综合指数的日收盘价(上)和日收益率(下)的时序图。

从图形分析结果来看,2008 年和 2015 年两个时间段有明显的波动聚集现象。

4.3 股票收益率的基本统计量

在做模型拟合之前需要对数据做一个基本的了解,先求解数据的一些基本统计量。

library(tseries)
u<-sum(return)/n                  # 求均值
e<-sqrt(sum((return-u)^2)/(n-1))  # 求标准差
s<-sum((return-u)^3)/((n-1)*e^3)  # 求偏度
k<-sum((return-u)^4)/((n-1)*e^4)  # 求峰度
jarque.bera.test(return)         #**正态性检验

由实验结果我们可以得出上海证券综合指数的对数收益率的均值为 0.,标准差为 0.,偏度系数为 -0.,峰度系数为 7.,以及从正态性检验结果的 P 值接近于 0,也就是说上证指数日对数收益率不是正态分布,呈现左偏分布,且有高峰厚尾的现象。

4.4 ACF 图和 PACF 图

使用自相关函数(ACF)和偏自相关函数(PACF)来对收益率序列的自相关性进行分析。

par(mfrow=c(2,1))   
acf(return,main='',xlab='Lag (a)',ylab='ACF',las=1) #画自相关图 
title(main='(a) the ACF of Return',cex.main=0.95)  #为图形加标题,并设置标题大小
pacf(return,main='',xlab='Lag (b)',ylab='PACF',las=1) #画偏自相关图   
title(main='(b) the PACF of Return',cex.main=0.95)

由收益率序列()的 ACF 图和 PACF 图可以得出:两个图大部分函数值在置信区间内(图中蓝色虚线区域)上下跳跃,所以收益率序列自相关性很低,或者说具有很弱的自相关性,因此在条件期望模型中不需要引入自相关性部分,满足 GARCH 模型中的均值方程,收益率由一个常数项加上一个随机扰动项组成。

过往经验:R语言分析股票指数的GARCH效应 2

虽然收益率序列基本不具有自相关性,但是要拟合 GARCH 模型,我们还需要考察收益率平方的自相关性。

par(mfrow=c(2,1))  
return.square<-return^2
acf(return.square,main='',xlab='Lag (c)',ylab='ACF',las=1)               
title(main='(a) the ACF of Return Square',cex.main=0.95)
pacf(return.square,main='',xlab='Lag (d)',ylab='PACF',las=1)    
title(main='(b) the PACF of Return Square',cex.main=0.95)

尽管股价收益率序列的 ACF 值揭示了其弱相关性,但收益率平方的 ACF 值 却表现出了一定的相关性和持续性,其大部分值都超过了置信区间(图中蓝色虚线)。注意到收益率平方的 ACF 值在滞后 3、10、21、30 期后都有缓慢衰退,说明了方差序列具有一定程度的序列相关性,因此采用 GARCH 模型来描述股价波动过程中的条件方差。

4.5 ARCH 效应的检验

收益率的时序图表明,在日收益率数据中可能存在 ARCH 效应,如果存在 ARCH 效应,则可以进行 GARCH 模型的拟合。反之,不能用 GARCH 模型拟合方程。

ARCH 效应的检验,可以用FinTS包中的LM 检验,具体用法如下:

library(zoo)
library(FinTS)   #LM检验
ArchTest(return,lag=12)  #滞后 12 期

检验的原假设是:不存在 ARCH 效应。检验结果为卡方统计量的值为389.3,对应的 P 值几乎为0,也就是说在 1% 的显著性水平上拒绝原假设,从而拒绝不存在 ARCH 效应的假设,收益率序列存在 ARCH 效应,可以进行 GARCH 模型的拟合。

4.6 GARCH 模型的估计

GARCH(1,1)是 GARCH 模型中最常用的一种,也是最适于金融时间序列的建模的模型。我们使用包中提供的 函数来拟合 GARCH 模型。

library(timeDate)
library(timeSeries)
library(fBasics)
library(fGarch) 
m1<-garchFit(~1+garch(1,1),data=return,trace=F) #拟合GARCH(1,1)模型
summary(m1)    #显示模型的详细拟合结果

根据实验结果,我们可以得到的拟合模型为:

括号中为t统计量,可以看到所有系数在0.05的显著水平下显著地异于零,说明上证指数收益率过去时刻的波动大小对当前波动大小有明显的影响,具有波动聚集效应。此外

过往经验:R语言分析股票指数的GARCH效应 3

约等于1,说明条件方差序列具有长记忆性,表明了收益率的波动具有较高的持续性,投机因素较强,总体风险较大。

拟合了GARCH(1,1)模型之后,为了查看它是否是最佳拟合模型,同时拟合GARCH(1,2)、GARCH(2,1)、GARCH(2,2)模型,并运用信息准则来选择最优模型。

m2<-garchFit(~1+garch(1,2),data=return,trace=F) #拟合GARCH(1,2)模型
m3<-garchFit(~1+garch(2,1),data=return,trace=F) #拟合GARCH(2,1)模型
m4<-garchFit(~1+garch(2,2),data=return,trace=F) #拟合GARCH(2,2)模型
summary(m1)
summary(m2)
summary(m3)

注意:这三个模型详细结果太多,这里不再详细展示,只提取了各个模型的信息准则的值,展示在下表中

m1

-5.

-5.

-5.

-5.

m2

-5.

-5.

-5.

-5.

m3

-5.

-5.

-5.

过往经验:R语言分析股票指数的GARCH效应 4

-5.

m4

-5.

-5.

-5.

-5.

由信息准则的值可以看出,拟合的 4 个 GARCH 模型的 AIC、BIC、SIC、HQIC 的值,发现随着参数增加,模型的AIC,BIC等的值并没有显著增加。理论上选择最简洁的模型GARCH(1,1)建模最合适。

4.7 GARCH 模型的标准化残差分析

在拟合完 GARCH 模型之后,我们对模型结果的残差进行分析。

resi<-residuals(m1,standardize=T)   #获得标准化残差
res<-ts(resi,frequency=250,start=c(2000)) 
plot(res,xlab='Date',ylab='st.resi',type='l')
par(mfcol=c(2,2))
acf(resi,lag=24)
acf(resi^2,lag=24)
pacf(resi,lag=24)
pacf(resi^2,lag=24)

上图是残差序列的时序图,可以看到残差序列没有明显的波动聚集效应。

上图是残差和残差平方的自相关图和偏自相关图。可以看到残差序列的 ACF 和 PACF 图大部分函数值在置信区间内(图中蓝色的虚线区域)上下跳跃,所以标准化残差序列并不具有自相关性,或者具有一定的弱相关性(PACF 图结果)。而残差平方序列的 ACF 和 PACF 图都没有明显的拖尾或截尾现象,所有函数值都在置信区间内股票月收益率公式,因此其不具序列相关性。再将标准化冲击平方的ACF值与收益率平方的ACF值进行比较,结果表明 GARCH 模型可以有效地解释收益率序列。

Box.test(resi^2,lag=10,type='Ljung')  #残差平方的滞后10阶自相关检验
Box.test(resi^2,lag=15,type='Ljung')  #残差平方的滞后15阶自相关检验
Box.test(resi^2,lag=20,type='Ljung')  #残差平方的滞后20阶自相关检验

Ljung-Box 自相关检验的原假设是序列中不存在自相关。对标准化残差平方用进行 Ljung-Box 方法进行检验在 0.05 的显著水平下,滞后项为为 10,15,20 时分别得到的 P 值分别为:0.9814,0.9094,0.9618,不能拒绝原假设,可接受原假设,标准化残差平方不存在序列相关性。

五、实验总结

通过本次实验学会运用R语言对金融数据进行 GARCH 模型的建模分析。学会如何获得股票的收益率,并以图形的方式展示出来 ,学会计算数据的一些基本统计量,绘制与解读 ACF 和 PACF 图,检验金融时间序列的 ARCH 效应,拟合 GARCH 模型以及对模型结果进行标准化残差分析。在巩固原有的 R 语言基础的同时,逐渐学会金融计量建模。

郑重声明:本网站发布此内容旨在传播更多信息,与本站立场无关,不构成投资建议。据此操作,风险自担。
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章链接:https://www.lakalar.com/caikuai/101179.html