当前位置: 首页 > news >正文

R语言探索与分析18-基于时间序列的汇率预测

一、研究背景与意义

汇率是指两个国家之间的货币兑换比率,而且在国家与国家的经济交流有着举足轻重的作用。随着经济全球化的不断深入,在整个全球经济体中,汇率还是一个评估国家与国家之间的经济状况和发展水平的一个风向标。汇率的变动会对一个国家的对外贸易频繁度、外汇储备以及对于国内的物价水平都会产生一定的影响。故针对于汇率的变动,应该采取相应的措施及政策。....

二、国内外研究现状及总结

随着我国经济的不断发展进步,人民币在国际上的地位逐渐提升,出现了大批学者对于汇率的研究,其研究的角度有许多,其中具有代表性的有:研究影响汇率波动的因素、关于汇率政策与制度的研究以及通过建立适当的模型来进行汇率波动的研究和预测,个人看来,其中最为主流的角度还是建立相应的模型来进行研究。.....

三、研究对象

本文的研究对象是2009年至2020年的中美的月度汇率数据,数据来源于雅虎财经网,其中包括每月开盘、收盘价,每月最高价最低价以及涨跌幅度。为了分析清晰,本文选择了每月收盘价为主要序列数据。

首先将所获取得到的数据进行清洗、缺失值处理等预处理操作。然后将处理好的数据进行分析,然后选择适当的模型进行预测,最后得出相应的结论。

四、主要研究内容和方法

本文主要是以时间序列分析为主要基础,针对特定时间段内的中美汇率波动来分析建模以及预测后期的汇率走势,重点介绍本论文研究主要运用的ARIMA模型以及ARCH、GARCH模型的理论,然后针对数据来进行实证分析,做出相应的预测。....

五、模型知识概述

六、实证分析

本文选取了2009年1月至2020年1月的中美汇率月度数据,其中数据包括每月的开盘价(open),收盘价(close),每月中最高点、最低点数据以及汇率变动比率等等,为了研究的更好进行,本文选择的是每月的收盘价为主要数据来进行分析及操作。

pop<-read.table("D:/网页下载/USD_CNY历史数据.csv",sep=",",header = T)
pop
pirce<-pop$close
HL<-ts(pirce,frequency = 12,start = 2009)
plot(HL,main = "汇率变动",xlab = "年份",ylab="汇率变动量")
#白噪声检验
for(i in 1:2) print(Box.test(HL,type = "Ljung-Box",lag=6*i))

随后,对于本文的时序数据进行描述性统计,其具体结果如下表:

表  时序数据描述性统计

Min

1st  Qu

Median

Mean

3rd Qu

Max

6.054

6.284

6.584

6.562

6.827

7.154

其次,进行纯随机性检验,只有当序列为非白噪声序列,才能进行后续操作,否则是无意义的。

表  纯随机性检验

Box-Ljung test

Data:  2009年1月-2020年1月

X-squared = 664.74

df=6

P_value<2.2e-16

X-squared = 1029.8

Df=12

P_value<2.2e-16

 

从图分析,中美的月度汇率的时间序列图形在2009年-2020波动起伏较大,可见受许多政治、经济等因素的影响,单从时序图可以判断,该序列是属于非平稳序列 

为了保证其科学性,下一步需要做关于该序列的ADF单根检验。

表  中美汇率的ADF检验

Augmented Dickey-Fuller Test

Alternative : stationary

Type 1:no drift no trend

Lag:

ADF

P_value

0

-0.454

0.513

1

-0.396

0.530

2

-0.384

0.533

3

-0.372

0.537

4

0.378

0.535

Type 2: with drift no trend

0

-1.49

0.526

1

-1.95

0.347

2

-1.93

0.356

3

-2.08

0.296

4

-1.93

0.354

Type 2: with drift with trend

0

-1.71

0.696

1

-2.16

0.504

2

-2.15

0.510

3

-2.29

0.452

4

-2.19

0.493

从上表可以看出,其P值大于0.05的显著性水平,故在0.05的显著性水平下,接受其原假设,即表明该序列为非平稳序列。 

从上表3.3可以看出,其P值大于0.05的显著性水平,故在0.05的显著性水平下,接受其原假设,即表明该序列为非平稳序列。

#打印出关于季节性趋势的图表
dc<-decompose(HL)
season<-dc$figure
plot(season,type = "b",xaxt="n",xlab = "Month",ylab = "Season Effect")

由于本文数据为汇率数据,该类型数据通常具有集聚效应,故在序列为平稳序列基础上,查看其差分之后差分图。

#差分和画出差分图
diff(HL)
plot(diff(HL))win.graph(width=3.25,height=2.5,pointsize=8)
tsdisplay(diff(HL))
dc<-decompose(diff(HL))
plot(dc)

模型选择

#ARIMA(1,1,)
model=Arima(HL,order=c(1,1,0))
summary(model)#aic = -2588.36

Training set error measures:

Series: 中美汇率

ARIMA(0,1,1)

Coefficients:

ma1

0.3127

s.e.

0.0811

Sigma^2=0.004074:

Log likelihood =191.02

AIC=-378.04

AICc=-377.95

BIC=-372.11

ME

RMASE

MAE

MPE

MAPE

MASE

ACF1

Training set

-0.0016

0.0634

0.0447

-0.0260

-0.6762

0.2001

0.0067

无论是AIC准则还是BIC准则,模型都定位一个模型,即ARIMA(0,1,1)。并且也可从表中得出模型的各个评判指标。最终模型的表达式应为: 

接下来进行残差分析

接下来GARCH检验及预测看是否存在ARCH效应。

ARCH LM-test  ;  null hypothesis:  no ARCH effects

Data: model$residual

Chi-squared=2.9169

df=1

P_value=0.08766

Chi-squared=3.0018

df=2

P_value=0.0229

Chi-squared=9.0705

df=3

P_value=0.02837

Chi-squared=10.198

df=4

P_value=0.03722

Chi-squared=12.263

df=5

P_value=0.03136

进一步,运用所得到的模型进行预测,本文由于是月度数据,所以为了保证预测的准确性,将预测阶数定为5阶,其最终预测结果如下图和表。

###模型预测
model=Arima((HL),order=c(0,1,1),include.mean = T,transform.pars=T)
model
#预测未来5期,99.5%置信区间
forecast<-forecast(model,h=5,levels=c(95.5))
forecast
##可视化预测图
plot(forecast)

七、结论与展望

本文通过分析2009年1月至2020年1月的中美汇率,首先通过差分,将序列变为平稳序列,再通过季节因素提取,提取出其他因素,然后进行ARCH检验(本文是LM检验),最后建立模型ARCH(1,1)和ARIMA(0,1,1)进行分析和预测,最终预测结果表现为中美汇率的整体趋势是往下波动。但是随着时间周期的变成,预测误差变得越来越大,这可能是传统预测模型的缺陷所在.....

代码和数据

代码和完整报告

创作不易,希望大家多多点赞收藏和评论!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Spring Cloud Gateway CORS 跨域方案
  • 引入Springcloud--Sleuth-链路追踪中MDC是如何获取到traceid和何时放入traceid的
  • 用动态IP采集数据总是掉线是为什么?该怎么解决?
  • R语言探索与分析19-CPI的分析和研究
  • C++迈向精通:STL的Deque复现
  • 前端面试项目细节重难点(已工作|做分享)想(八)
  • Ubuntu22.04之解决:terminal使用alt+1/alt+2/alt+3失效问题(二百三十八)
  • 自然语言处理(NLP)—— 自动摘要
  • 【手推公式】如何求SDE的解(附录B)
  • 爬虫——有道云翻译
  • QTGUI编程入门:解锁图形用户界面设计的奥秘
  • 知识图谱的应用---智能电网
  • Python使用Flask构建简单的web应用
  • 二叉树—leetcode
  • 发现 Laravel 中的 api 响应时间明显过长
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • echarts花样作死的坑
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • oldjun 检测网站的经验
  • php面试题 汇集2
  • React系列之 Redux 架构模式
  • Redis字符串类型内部编码剖析
  • SQLServer之创建显式事务
  • vue自定义指令实现v-tap插件
  • 阿里云应用高可用服务公测发布
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 深度学习在携程攻略社区的应用
  • 我建了一个叫Hello World的项目
  • 用element的upload组件实现多图片上传和压缩
  • MyCAT水平分库
  • 我们雇佣了一只大猴子...
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • # 飞书APP集成平台-数字化落地
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • (12)Hive调优——count distinct去重优化
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (9)目标检测_SSD的原理
  • (day18) leetcode 204.计数质数
  • (k8s)kubernetes集群基于Containerd部署
  • (Python) SOAP Web Service (HTTP POST)
  • (二)linux使用docker容器运行mysql
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (三)模仿学习-Action数据的模仿
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .net core + vue 搭建前后端分离的框架
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)