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)进行分析和预测,最终预测结果表现为中美汇率的整体趋势是往下波动。但是随着时间周期的变成,预测误差变得越来越大,这可能是传统预测模型的缺陷所在.....
代码和数据
代码和完整报告
创作不易,希望大家多多点赞收藏和评论!
相关文章:
R语言探索与分析18-基于时间序列的汇率预测
一、研究背景与意义 汇率是指两个国家之间的货币兑换比率,而且在国家与国家的经济交流有着举足轻重的作用。随着经济全球化的不断深入,在整个全球经济体中,汇率还是一个评估国家与国家之间的经济状况和发展水平的一个风向标。汇率的变动会对…...
30岁迷茫?AI赛道,人生新起点
前言 30岁,对于许多人来说,是一个人生的分水岭。在这个年纪,有些人可能已经在某个领域取得了不小的成就,而有些人则可能开始对未来的职业方向感到迷茫。如果你正处于这个阶段,那么你可能会问自己:30岁转行…...
开门预警系统技术规范(简化版)
开门预警系统技术规范(简化版) 1 系统概述2 预警区域3 预警目标4 功能需求5 功能条件6 显示需求7 指标需求1 系统概述 开门预警系统(DOW),在自车停止开门过程中,安装在车辆的传感器(如安装在车辆后保险杆两个角雷达)检测从自车后方接近的目标车(汽车、摩托车等)的相对…...
Django与MySQL:配置数据库的详细步骤
文章目录 Django-MySQL 配置配置完执行数据迁移,如果报错: Error loading MySQLdb module, Django-MySQL 配置 # settings.pyDATABASES {# 默认配置sqlite3数据库# default: {# ENGINE: django.db.backends.sqlite3,# NAME: BASE_DIR / db.sqli…...
GPT-4o short description
GPT-4o,作为OpenAI最新推出的人工智能模型,无疑在人工智能领域掀起了新的波澜。 一、版本间的对比分析 与前一版本GPT-4相比,GPT-4o在多个方面进行了显著的改进和优化。首先,在参数规模上,GPT-4o达到了2000亿个参数&…...
MATLAB 矩阵
创建矩阵直接输入:使用 zeros, ones, eye 函数:使用 rand, randi 函数:使用 diag 函数: 矩阵操作矩阵加法和减法:矩阵乘法:矩阵转置:矩阵求逆:矩阵分解:矩阵大小…...
LED灯的功率以及好的品牌推荐
LED灯的功率选择主要根据使用场景、照明需求以及灯具类型来决定。常见的LED灯功率范围在0.5W到100W之间,不同的功率范围适用于不同的场景。 对于小型照明设备,如小夜灯或手电筒,通常选择0.5W到3W的LED灯,足以满足基本的照明需求。…...
Linux “ 软件管理 “
软件管理 widows 安装 方法一: 双击exe安装包,就可以安装。 用exe安装的软件会破记录到注册表中。 注册会记录安装位置,软件名称。 方法二: 用绿色方式进行安装。 不用写到注册表中,因此无法在开始菜单里面查看和卸…...
【uni-app】申请高德地图key,封装map.js,实现H5、iOS、Android通过getlocation获取地图定位信息
文章目录 map组件基础使用封装map.js,实现定位1、使用第三方地图:高德,申请对应平台key1、申请H5 key2、申请微信小程序 key3、申请android key查看证书详情,可以看到SHA1查看/设置Android包名 4、申请ios key 2、封装map1、lib/m…...
使用rufus做Kali Linux时持久分区大小如何设置
持久分区大小是什么意思: 持久分区大小指的是在U盘安装引导Kali Linux时,为保存Kali修改后的设置(如中文界面显示等)而预留的空间大小。这个空间相当于电脑中的D盘,用于保存修改后的设置。 而剩下的空间则用于安装Kali…...
Java高阶数据结构-----并查集(详解)
目录 🧐一.并查集的基本概念&实例: 🤪二.并查集代码: 😂三:并查集的一些习题: A.省份数量 B.等式方程的可满足性 🧐一.并查集的基本概念&实例: 并查集概念&…...
GitLab教程(三):多人合作场景下如何pull代码和处理冲突
文章目录 1.拉取别人同步的代码到本地的流程2.push冲突发生场景情景模拟简单的解决方法 在这一章中,为了模拟多人合作的场景,我需要一个人分饰两角。 执行git clone xx远端仓库地址 xx文件夹命令,在clone代码时指定本地仓库的文件夹名&#…...
模版偏特化之std::enable_if
1 SFINAE。 2 条件特化。可用作额外的函数参数(不可应用于运算符重载)、返回类型(不可应用于构造函数与析构函数),或类模板或函数模板形参。 函数参数: #include <iostream> #include <type_tra…...
好用的Web数据库管理工具推荐(ChatGPT的推荐)
在现代数据管理和开发中,Web数据库管理工具变得越来越重要。这些工具不仅提供了直观的用户界面,还支持跨平台操作,方便用户在任何地方进行数据库管理。 目录 1. SQLynx 2. phpMyAdmin 3. Adminer 4. DBeaver 5 结论 以下是几款推荐的Web…...
encoding Token和embedding 傻傻分不清楚?
encoding 编码 “encoding” 是一个在计算机科学和人工智能领域广泛使用的术语,它可以指代多种不同的过程和方法。核心就是编码:用某些数字来表示特定的信息。当然你或许会说字符集(Unicode)更理解这种概念,编码更强调这种动态的过程。而字符…...
一个公用的数据状态修改组件
灵感来自于一项重复的工作,下图中,这类禁用启用、审核通过不通过、设计成是什么状态否什么状态的场景很多。每一个都需要单独提供接口。重复工作还蛮大的。于是,基于该组件类捕获组件跳转写了这款通用接口。省时省力。 代码如下:…...
[python]yfinance国内不能使用
yfinance国内不能使用,可以使用tushare、akshare代替 import yfinance as yf# 输入股票代码 stock_symbol AAPL # 替换为你想要查询的股票代码# 获取股票数据 data yf.download(stock_symbol)# 打印实时数据 print(data) pip install akshare import akshare …...
Frontiers旗下期刊,23年分区表整理出炉!它还值得投吗?
本周投稿推荐 SSCI • 中科院2区,6.0-7.0(录用友好) EI • 各领域沾边均可(2天录用) CNKI • 7天录用-检索(急录友好) SCI&EI • 4区生物医学类,0.5-1.0(录用…...
基于JSP的毕业生就业信息管理系统
开头语: 你好,我是专注于信息系统开发的学长猫哥。如果您对毕业生就业信息管理或相关技术感兴趣,欢迎联系我交流。 开发语言: JSP 数据库: MySQL 技术: JSP技术 SSM框架 工具: Eclips…...
CDN、CNAME、DNS
CDN、CNAME、DNS 域名解析是将域名转换为IP地址的过程。当用户在浏览器中输入域名时,计算机需要在DNS系统中找到对应的IP地址,以便能够访问该网站。 CDN(Content Delivery Network,内容分发网络)是一种用于加速网站访…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
