1.下载国泰君安股票数据,计算对数收益率

(1)首先安装包"quantmod",这个包可以从雅虎财经的下载股票数据,具体包的解释见"【量化基础】R语言获取金融数据之quantmod包"。

install.packages("quantmod")#安装包quantmod
library(quantmod)#调用包
setSymbolLookup(GTJA=list(name='601211.ss',src='yahoo'))#下载国泰君安601211数据
getSymbols("GTJA")
spc<-Cl(GTJA)#Cl()收盘价函数
rtn<-diff(log(spc))#对数收益率
rtn<-rtn[8:length(rtn)]#前7个数据为缺失数据,收集第8个以后数据。
ts.plot(rtn,ylab="对数收益率",main="国泰君安")#画出国泰君安对数收益率时间序列图

2.ARMA模型建立与残差的检验

  • 首先调用时间序列分析包TSA: Time Series Analysis,该包包含了《时间序列分析及应用:R语言》中几乎所有涉及到的函数;
  • 然后计算自相关系数(acf),偏自相关系数(pacf)以及推广的自相关系数(eacf),来确定ARMA的阶数;
  • 建立ARMA模型,计算出残差,画出残差图,计算残差的acf,残差平方的acf,残差平方的pacf,残差绝对值的acf,对残差的平方进行Box-Ljung检验,判断确定残差是否独立?
library(TSA)#调用包
acf(rtn)
pacf(rtn)
eacf(rtn)
m1<-arima(rtn,order=c(2,0,2),include.mean=FALSE)
m1
resi<-m1$residuals
plot(resi)

残差图

残差图

分析:从残差图中可以看出有平静和波动相互交替的现象,从而说明对数收益率的条件方差随时间的变化而变化。

画出残差、残差平方acf与pacf图以及绝对值pacf图

par(mfrow=c(4,1))
acf(resi)
acf(resi^2)
pacf(resi^2)
acf(abs(resi))

残差的acf,残差平方的acf,pacf以及残差绝对值的acf图

从上图可以看出,残差的平方具有相关性,从而说明残差不独立且条件方差不是常数。

Box-Ljung检验

Box.test(resi^2,lag=12,type="Ljung")      

检验结果

--------------------

Box-Ljung test

data: resi^2

X-squared = 281.04, df = 12, p-value < 2.2e-16

------------------------------------------
结果分析:

3.arma(2,2)+garch(1,1)模型建立、残差检验以及预测

install.packages("fGarch")#安装包garch模型包
library(fGarch)#调用fGarch包
m2<-garchFit(~arma(2,2)+garch(1,1),data=rtn,trace=F)
summary(m2)

程序结果:

-----------------------

Title:

GARCH Modelling

Call:

garchFit(formula = ~arma(2, 2) + garch(1, 1), data = rtn, trace = F)

Mean and Variance Equation:

data ~ arma(2, 2) + garch(1, 1)

<environment: 0x000000002c719990>

[data = rtn]

Conditional Distribution:

norm

Coefficient(s):

mu ar1 ar2 ma1 ma2 omega

1.0790e-04 3.6944e-01 -7.6402e-01 -3.9155e-01 7.3781e-01 2.1767e-06

alpha1 beta1

5.6396e-02 9.3788e-01

Std. Errors:

based on Hessian

Error Analysis:

Estimate Std. Error t value Pr(>|t|)

mu 1.079e-04 7.421e-04 0.145 0.884391

ar1 3.694e-01 8.957e-02 4.124 3.72e-05 ***

ar2 -7.640e-01 5.426e-02 -14.081 < 2e-16 ***

ma1 -3.915e-01 1.090e-01 -3.591 0.000329 ***

ma2 7.378e-01 6.167e-02 11.963 < 2e-16 ***

omega 2.177e-06 9.266e-07 2.349 0.018820 *

alpha1 5.640e-02 1.180e-02 4.779 1.76e-06 ***

beta1 9.379e-01 1.064e-02 88.145 < 2e-16 ***

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Log Likelihood:

1804.476 normalized: 2.615183

Description:

Tue May 08 11:21:54 2018 by user:

Standardised Residuals Tests:

Statistic p-Value

Jarque-Bera Test R Chi^2 279.9075 0

Shapiro-Wilk Test R W 0.9502314 1.720501e-14

Ljung-Box Test R Q(10) 6.373662 0.782954

Ljung-Box Test R Q(15) 12.03866 0.6761006

Ljung-Box Test R Q(20) 21.83737 0.3494

Ljung-Box Test R^2 Q(10) 3.650817 0.9617277

Ljung-Box Test R^2 Q(15) 10.16369 0.8093186

Ljung-Box Test R^2 Q(20) 16.80866 0.6653606

LM Arch Test R TR^2 5.142881 0.9530354

Information Criterion Statistics:

AIC BIC SIC HQIC

-5.207178 -5.154579 -5.207443 -5.186832

-------------------------------

结果分析:

(1)模型为

,
为高斯白噪声

(2)模型的检验

标准化残差

的检验的p值都大于0.05.从而说明模型是充分的。

下面画出95%点预测区间的对数收益率的时序图:

plot(m2)

然后输入3,得到下图

对序列进行预测,得到未来6期对数收益率预测值以及波动率。

predict(m2,6)

程序结果

--------------------------------------------

meanForecast meanError standardDeviation

1 0.0009769469 0.01636570 0.01636570

2 0.0007503291 0.01638934 0.01638535

3 -0.0003613058 0.01641850 0.01640486

4 -0.0005988464 0.01643922 0.01642424

5 0.0001627066 0.01645866 0.01644349

6 0.0006255391 0.01647782 0.01646260

4. 新息服从学生t分布的GARCH(1,1)模型建立、检验与预测

m3<-garchFit(~arma(2,2)+garch(1,1),data=rtn,cond.dist="std",trace=F)
summary(m3)
plot(m3)
predict(m3,6)

这里结果就不在显示。读者自己运行并给予解释。

5.参考文献

【1】R语言与现代统计方法 刘强等编著 清华大学出版社

arma模型_GARCH模型应用:以国泰君安为例相关推荐

  1. garch模型python步骤_GARCH模型的建模步骤?

    泻药,我将建立道琼斯工业平均指数(DJIA)日交易量对数比的ARMA-GARCH模型来演示建模步骤. 原文链接:R语言: GARCH模型股票交易量的研究道琼斯股票市场指数​tecdat.cn 获取数据 ...

  2. arma找不到合适的模型_ARMA模型建模与预测指导

    实验二 ARMA 模型建模与预测指导 一.实验目的 学会通过各种手段检验序列的平稳性:学会根据自相关系数和偏自相关系数来初步判断ARMA 模型的阶数p 和q ,学会利用最小二乘法等方法对ARMA 模型 ...

  3. AR、MA、ARMA和ARIMA模型------时间序列预测

    ARMA模型的全称是自回归移动平均模型,它是目前最常用的拟合平稳序列的模型.它又可以细分为AR模型.MA模型和ARMA三大类.都可以看做是多元线性回归模型. AR模型 具有如下结构的模型称为阶自回归模 ...

  4. 时间序列之AR、MA、ARMA、ARIMA模型

    参考:<时间序列分析-基于R王燕 编著> 一.时间序列分析 时间序列分法主要针对动态数据进行处理.该方法是以数理统计学方法和随机过程理论为基础,并对一序列随机数据所遵从的统计规律进行研究, ...

  5. 【时间序列分析】12. ARMA(1,1)模型

    Contents A R M A ( 1 , 1 ) {\rm ARMA}(1,\,1) ARMA(1,1) 模型 模型设定与平稳解 自协方差函数 自相关系数和偏相关系数 A R M A ( 1 , ...

  6. [时间序列分析][4]--AR模型,MA模型,ARMA模型介绍

    自相关和偏自相关的两个函数代码 由于后面会经常画一组序列自相关和偏自相关的图像,所以就把自己写的这个两个画图的函数的代码贴上,供大家参考. 首先是自相关的函数 输入的三个参数分别是{数据,滞后数,置信 ...

  7. 时间序列分析之AR、MA、ARMA和ARIMA模型

    如果一个时间序列经过平稳性检验后得到是一个平稳非白噪声序列,那么该序列中就蕴含着相关性的信息. 在统计学中,通常是建立一个线性模型来拟合该时间序列的趋势.其中,AR.MA.ARMA以及ARIMA都是较 ...

  8. 趋势预测方法(三)ARMA ARIMA SARIMA模型预测_时序递推预测

    ARMA/ARIMA/SARIMA模型预测 a基本原理: 这三种模型都是用来预测时序性数据.其中ARIMA和SARIMA是由ARMA模型演变过来的,而ARMA是由AR模型(自回归模型)和MA模型(移动 ...

  9. 基于 Python 的时序模型——AMIRA模型

    时间序列分析的目的:给定一个已被观测了的时间序列,预测该序列的未来值 ARIMA 模型:如果一个时间序列经差分运算后具有平稳性,则该序列为差分平稳序列,可以使用 ARIMA 模型进行分析. 时间序列的 ...

最新文章

  1. iOS下JS与OC互相调用(一)--UIWebView 拦截URL
  2. 可能是基于 Hooks 和 Typescript 最好的状态管理工具
  3. 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16
  4. Element UI的Table用法
  5. JAVA加密算法系列-AesCBC
  6. hibernate之多对多关联映射
  7. mysql配置和管理(转载)
  8. Fortran 注释符号
  9. 中文OCR的汉字按常见度的划分
  10. CRIO脱机计算机工作,LabVIEW和cRIO入门
  11. Linux 用户授权的方法,linux中用户和权限管理
  12. openssl自建CA服务器自签证书服务器
  13. 如何设置虚拟机访问外网
  14. 长江商学院营销学李洋教授分析大数据与精准营销
  15. 在腾讯云搭建代理服务器的全部过程
  16. 使用nvm安装node报错,Could not retrieve https://nodejs.org/dist/latest/SHASUMS256.txt. Get “https://nodej
  17. Windows Error Code
  18. discuz手机版帖子页面支持表格添加边框及边框颜色
  19. 微信小程序直播卖货模式怎么开启
  20. 读华为副总裁徐家骏总结的个人心得

热门文章

  1. c++错误functional:1526:9: error: no type named ‘type’ in ‘class std::result_of
  2. canvas 实现图片局部模糊_小技巧!H5使用Html2Canvas实现自动截屏(下)
  3. Opencv和C++实现canny边缘检测
  4. 使用C与C++混合编程封装UDP协议
  5. 通过一个例子介绍 IDA pro 的简单使用
  6. 压栈, 跳转,执行,返回:从汇编看函数调用
  7. 安装 Python 包时解决 Microsoft visual c++ 14.0 is required 问题
  8. Spring Data JPA 从入门到精通~思维导图
  9. Java消息服务~自动分配的消息头
  10. 误删了计算机桌面回收站,我电脑回收站里的东西已经被删除几天了?怎么可以找回!谢谢...