GARCH模型:

GARCH模型要求时间序列的残差为零均值、异方差的纯随机序列,但是有时不能充分提取序列的相关信息,即不是纯随机性序列;另外,原序列可能是非平稳序列。对于这种情况,需要将原始序列变为平稳序列,对拟合自回归模型,即构造ARIMA模型,再考察残差序列的方差齐性,如果是异方差残差序列,最后构造GARCH模型,这便是ARIMA-GARCH模型。

时序图:

样本数据有明显的趋势特征,对数据分别进行白噪声检验和单位根平稳性(ADF)检验,样本数据为非平稳非白噪声数据,需要对数据进行差分处理,消除数据的趋势特征,然后对样本数据再作进一步分析。

差分后的时序图:

从时序图中可以看出差分后的样本数据趋势消除,且存在集群效应和不可逆性。

ACF图和PACF图:

对样本数据分别建立ARIMA(0,1,1)模型、ARIMA(1,1,1)模型和ARIMA(1,1,0)模型,从拟合后的AIC来看,ARIMA(1,1,0)模型对差分后的时间序列数据拟合较好。

对拟合后的残差作白噪声检验,残差为白噪声,说明ARIMA(1,1,0)模型已充分提取了时间序列的水平信息。

平稳性检验:

为避免出现伪回归的情况,对ARIMA(1,1,0)模型的残差进行平稳性检验,残差是平稳的。

正态性检验:

分布直方图:

残差呈现尖峰后尾分布且具有不对称性,初步判断残差为非正态分布,但是这只是直观上的判断,需要进一步的检验。

对残差分别进行Shapiro-Wilk检验、Anderson-Darling检验和Kolmogorov-Smirnov检验,可以判断残差不服从正态分布。

ARCH效应检验:

分别进行Portmanteau Q检验和LM检验(拉格朗日乘子检验),LM检验和Q检验都显示残差序列方差非齐性,且残差平方序列具有显著的长期自相关关系。

构造GARCH(1,1)模型:

综合水平模型和波动模型,完整的ARIMA-GARCH模型为:

对模型的参数进行正态性检验,画出QQ图,残差服从正态分布。

模型预测:

根据ARIMA(1,1,0)模型对未来时间序列的预测:

根据GARCH(1,1)模型对时间序列的拟合,置信区间为95%:

R语言代码:

library(TSA)
library(tseries)
library(fUnitRoots)
library(locfit)
library(forecast)
library(nortest)
library(stats19)
library(FinTS)
library(zoo)##读取文件
Time<-read.table("E:/时间序列论文/外汇.csv",sep=",",header=T)##时序图
rate<-ts(Time$rate,start=c(2005,11),end=c(2019,11),frequency=12)
plot(rate)##ADF检验
for(i in 1:3) print(adfTest(rate,lag=i,type="c"))##白噪声检验
for(i in 1:2) print(Box.test(rate,lag=6*i))##差分
rate_diff<-diff(rate)
plot(rate_diff)##ACF图和PACF图
acf(rate_diff)
pacf(rate_diff)##ARIMA(0,1,1)
rate.fit1<-arima(rate,order=c(0,1,1))
rate.fit1##ARIMA(1,1,1)
rate.fit2<-arima(rate,order=c(1,1,1))
rate.fit2## ARIMA(1,1,0)
rate.fit3<-arima(rate,order=c(1,1,0))
rate.fit3##白噪声检验
for(i in 1:6) print(Box.test(rate.fit3$residual,type="Ljung-Box",lag=i))##预测
rate.fore3<-forecast(rate,model=rate.fit3)
plot(rate.fore3)##平稳性检验
for(i in 1:3) print(adfTest(rate.fit3$residual,lag=i,type="c"))
hist(rate.fit3$residual)##正态性检验
shapiro.test(rate.fit3$residual)
ad.test(rate.fit3$residual)
ks.test(rate.fit3$residual,pnorm)##ARCH效应检验
for(i in 1:6)print(Box.test(rate.fit3$residual^2,type="Ljung-Box",lag=i))
for(i in 1:5)print(ArchTest(rate.fit3$residual,lag=i))##GARCH模型
rate.fit<-garch(rate.fit3$residual,order=c(1,1))
summary(rate.fit)##置信区间
rate.pred<-predict(rate.fit)
plot(rate.pred)##QQ图
qqnorm(rate.fit$residual)
qqline(rate.fit$residual)

ARIMA-GARCH模型对央行汇率的实证研究(R)相关推荐

  1. CSDN ARIMA R语言_R语言时间序列:ARIMA / GARCH模型的交易策略在外汇市场预测应用...

    原文链接: http://tecdat.cn/?p=17622​tecdat.cn 最近,我们继续对时间序列建模进行探索,研究时间序列模型的自回归和条件异方差族.我们想了解自回归移动平均值(ARIMA ...

  2. Python 用ARIMA、GARCH模型预测分析股票市场收益率时间序列

    最近我们被客户要求撰写关于时间序列的研究报告,包括一些图形和统计输出. 相关视频:时间序列分析:ARIMA GARCH模型分析股票价格数据 时间序列分析模型 ARIMA-ARCH GARCH模型分析股 ...

  3. R语言用GARCH模型波动率建模和预测、回测风险价值 (VaR)分析股市收益率时间序列

    最近我们被客户要求撰写关于GARCH的研究报告,包括一些图形和统计输出. 风险价值 (VaR) 风险价值 (VaR) 是金融风险管理中使用最广泛的市场风险度量,也被投资组合经理等从业者用来解释未来市场 ...

  4. R语言极值理论 EVT、POT超阈值、GARCH 模型分析股票指数VaR、条件CVaR:多元化投资组合预测风险测度分析

    最近我们被客户要求撰写关于极值理论的研究报告,包括一些图形和统计输出. 相关视频: 极值理论EVT与R语言应用:GPD模型火灾损失分布分析 R语言极值理论EVT:基于GPD模型的火灾损失分布分析 相关 ...

  5. R语言多元Copula GARCH 模型时间序列预测

    和宏观经济数据不同,金融市场上多为高频数据,比如股票收益率序列.直观的来说 ,后者是比前者"波动"更多且随机波动的序列,在一元或多元的情况下,构建Copula函数模型和GARCH模 ...

  6. 使用R语言对S&P500股票指数进行ARIMA + GARCH交易策略

    在本文中,我想向您展示如何应用S&P500股票市场指数的交易策略.最近我们被客户要求撰写关于交易策略的研究报告,包括一些图形和统计输出. 通过组合ARIMA + GARCH模型,从长期来看,我 ...

  7. R语言用Garch模型和回归模型对股票价格分析

    原文链接:http://tecdat.cn/?p=18310 为了找出影响价格波动的主要因素,我们使用逐步回归法来剔除一些对于应变量即价格影响很小的自变量剔除出我们的模型(点击文末"阅读原文 ...

  8. MATLAB用GARCH模型对股票市场收益率时间序列波动的拟合与预测

    最近我们被客户要求撰写关于GARCH的研究报告,包括一些图形和统计输出. 相关视频:时间序列分析:ARIMA GARCH模型分析股票价格数据 时间序列分析模型 ARIMA-ARCH GARCH模型分析 ...

  9. QuantitativeFinance:量化金融之金融时间序列分析之ES/ETS/GARCH模型的简介、Box-Jenkins方法-AR/MA/ARMA/ARIMA模型的简介及其建模四大步骤之详细攻略

    QuantitativeFinance:量化金融之金融时间序列分析之ES/ETS/GARCH模型的简介.Box-Jenkins方法-AR/MA/ARMA/ARIMA模型的简介及其建模四大步骤之详细攻略 ...

最新文章

  1. autocad2007二维图画法_cad怎样绘制简单的二维图形
  2. 002_推箱子-关卡数据
  3. 第二章节 怀疑的练习和不会的练习
  4. 进程(Process)和线程(Thread)的区别
  5. 一个mysql可以存多少数据类型_mysql一张表到底能存多少数据?
  6. 企业生产环境数据库备份锁表问题
  7. redis hash field过期时间_Redis系列-Redis数据类型
  8. java opencv3轮廓_如何在OpenCV中获得单独的轮廓(并填充它们)?
  9. Windows安装curl
  10. Android 电子书及阅读器Demo
  11. 破解烽火移动HG6201M 破解 超级密码
  12. Java 1072 开学寄语
  13. 微信小程序之字体样式设置
  14. [app-name] was compiled with optimization - stepping may behave oddly; variables may not be availabl
  15. 浅谈矩阵加速——以时间复杂度为O(log n)的算法实现裴波那契数列第n项及前n之和使用矩阵加速法的优化求法
  16. typescript 装饰器
  17. 服务器如何从安全模式增加用户名,win10安全模式里怎么添加账户_win10 安全模式如何添加用户-win7之家...
  18. linux中使用crontab出现crontab: installing new crontab
  19. 微机原理之8255和8253的初始化
  20. EXT4分区工具MiniTool Partition Wizard Home Edition

热门文章

  1. 程序员8月薪资统计出炉,最吃香的岗位竟然是······
  2. 东莞理工学院计算机学院高数,东莞理工学院09高数B1(B)试卷(答案)
  3. 中文文献怎么查找,带你了解中文文献查找途径及方法
  4. ryu---北向接口(利用socket对外通信)
  5. 我的智能充电桩开发笔记(二):系统硬件电路设计概述
  6. 流体控制阀的原理和分类
  7. oracle修改分区条件,请问能不能更改已经建好的范围分区表的分区规则呢?
  8. 滴滴总裁柳青年会演讲:乘风破浪的旅途,成长是唯一道路
  9. 关于嵌入式Qt5配置环境变量导致鼠标显示与隐藏
  10. SpringBoot 本地缓存的使用