R语言分析股票指数的GARCH效应

本文通过R语言分析上海证券综合指数的GARCH效应,包括计算对数收益率、可视化、统计量、ACF/PACF图、ARCH效应检验及GARCH模型估计。实验表明,上证指数存在波动聚集效应,适合中级R语言用户学习金融计量建模。
摘要由CSDN通过智能技术生成

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

R语言分析股票指数的GARCH效应

一、实验说明

1.1 实验内容

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

1.2 实验知识点

  • 计算股票收益率
  • 股票指数的可视化
  • 求基本统计量
  • 绘制ACF图和PACF图
  • 检验序列的ARCH效应
  • GARCH模型的拟合
  • GARCH模型的标准化残差分析

1.3 实验环境

  • R version 3.4.1
  • Xfce终端

1.4 适合人群

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

二、实验原理

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

GARCH理论模型

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

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

此处输入图片的描述保证了条件方差序列是非负的。

三、实验准备

3.1 获取实验数据

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

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

下载数据

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

此处输入图片的描述

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

此处输入图片的描述

安装程辑包

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 包有:tseriesFinTStimeDatetimeSeriesfBasics

  • 5
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
variance.model = list(model = "sGARCH", garchOrder = c(1, 1),submodel = NULL, external.regressors = NULL, variance.targeting = FALSE) distribution.model = "norm" ugarchfit(spec, datax, out.sample = 0, solver = "solnp", solver.control = list(),fit.control = list(stationarity = 1, fixed.se = 0, scale = 0)) myspec=ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1), submodel = NULL, external.regressors = NULL, variance.targeting = FALSE), mean.model = list(armaOrder = c(1, 1), include.mean = TRUE, archm = FALSE, archpow = 1, arfima = FALSE, external.regressors = NULL, archex = FALSE), distribution.model = "norm") myfit=ugarchfit(myspec,data=datax,solver="solnp") #rugarch包中模型结果的提取要依靠as.data.frame函数。比如提取模型的拟合值 as.data.frame(myfit,which="fitted") #提取残差序列: as.data.frame(myfit,which=" residuals") #提取方差序列: as.data.frame(myfit,which="sigma") #当然,也可以同时查看所有: as.data.frame(myfit,which=all) #通过plot(myfit)可以对模型结果进行图形诊断: plot(myfit) #如果模型通过检验,可以用ugarchforcast函数对未来进行预测: for<-ugarchforcast(myfit,n.ahead=20) library(zoo) #时间格式预处理 library(xts) #同上 library(timeSeires) #同上 library(urca) #进行单位根检验 library(tseries) #arma模型 library(fUnitRoots) #进行单位根检验 library(FinTS) #调用其中的自回归检验函数 library(fGarch) #GARCH模型 library(nlme) #调用其中的gls函数 library(fArma) #进行拟合和检验
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值