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)进行分析和预测,最终预测结果表现为中美汇率的整体趋势是往下波动。但是随着时间周期的变成,预测误差变得越来越大,这可能是传统预测模型的缺陷所在.....

代码和数据

代码和完整报告

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/345299.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

doris FE 在Windows环境下编译调试开发环境

前言&#xff1a; doris fe 在win下调试运行&#xff0c;和正常java项目有一些差异&#xff0c;主要是有与be&#xff08;c&#xff09;通信代码的生成 在win环境下不能直接生成&#xff0c;因此需要现在linux下生成之后&#xff0c;再拷贝到本地来&#xff0c;然后进行编译&a…

7天搞定Python必背500单词

必备必记-你的Python就牛掰了 每天只背100个就足够了 老话说的好基础不扎实,地动山摇,在学习Python的时候前期基础很重要. 下面是大家常用遇到的Python基础单词,帮助你更好地掌握Python语言: 1.变量 在Python中用来存储数值,文本或其他信息的名称. 2. 函数 用于执行特定…

什么是Docker ?

在软件开发的星辰大海中&#xff0c;有一个神奇的技术&#xff0c;它能够将应用程序及其依赖环境封装在一个轻量级的、可移植的容器中。这项技术就是Docker。它不仅简化了应用的部署流程&#xff0c;还让开发和运维之间的界限变得模糊&#xff0c;使得跨平台部署变得前所未有的…

kafka-消费者服务搭建配置简单消费(SpringBoot整合Kafka)

文章目录 1、使用efak 创建 主题 my_topic1 并建立6个分区并给每个分区建立3个副本2、创建生产者发送消息3、application.yml配置4、创建消费者监听器5、创建SpringBoot启动类6、屏蔽 kafka debug 日志 logback.xml7、引入spring-kafka依赖 1、使用efak 创建 主题 my_topic1 并…

cisco packet tracer 8.2.2 (思科模拟器) ospf路由协议

1 实验拓扑图 2 配置路由器和交换机 #sw1 en config t hostname sw1 ip routing int vlan 2 ip address 192.168.2.1 255.255.255.0 exit int vlan 3 ip address 192.168.3.1 255.255.255.0 exit int gigabitEthernet 1/0/1 switchport access vlan 2 exit int gigabitEthe…

每日5题Day19 - LeetCode 91 - 95

每一步向前都是向自己的梦想更近一步&#xff0c;坚持不懈&#xff0c;勇往直前&#xff01; 第一题&#xff1a;91. 解码方法 - 力扣&#xff08;LeetCode&#xff09; class Solution {public int numDecodings(String s) {int n s.length();//注意我们dp的范围是n1int[] d…

记一次postgresql拼接函数string_agg() 和row_number() 使用

PG两个函数使用需求和简单介绍 需求背景介绍第一个需求背景是这样的需求升级一下接下来讲讲STRING_AGG()基本语法排序 然后我们再说说ROW_NUMBER()基本语法使用 row_number() over (partition by) 进行分组统计使用 row_num限定每组数量 需求背景介绍 第一个需求背景是这样的 …

Paper速读-[Visual Prompt Multi-Modal Tracking]-Dlut.edu-CVPR2023

文章目录 简介关于具体的思路问题描述算法细节 实验结果模型的潜力模型结果 论文链接&#xff1a;Visual Prompt Multi-Modal Tracking 开源代码&#xff1a;Official implementation of ViPT 简介 这篇文章说了个什么事情呢&#xff0c;来咱们先看简单的介绍图 简单来说&am…

整除及求余运算符、数字的提取、顺序结构程序

1.运算符 在有余数的除法运算中&#xff0c;如果要知道商和余数分别是多少&#xff0c;可以用/和%这两个运算符号来得到。 (1)/(整除)&#xff0c;当被除数和除数均为整数时&#xff0c;结果也为整型&#xff0c;只取商的整数部分。 如:10/25 10/33 5/10 0 (2)%(求余)&…

NineData云原生智能数据管理平台新功能发布|2024年5月版

重点发布​ 数据库 DevOps - 表分组查询​ 在企业用户规模达到一定程度后&#xff0c;分库分表成为一种常见的数据库架构选择。在这种情况下&#xff0c;查询和维护数据需要高效的解决方案&#xff0c;以避免手动逐一查询、变更和汇总多个分库和分表的繁琐操作。 库分组变更…

电脑开机出现英文字母,如何解决这个常见问题?

电脑开机时出现英文字母的情况通常意味着系统在启动过程中遇到了问题。这些英文字母可能是错误信息、系统提示或BIOS设置问题。通过理解这些信息并采取适当的措施&#xff0c;您可以解决大多数启动问题。本文将介绍三种解决电脑开机出现英文字母问题的方法&#xff0c;帮助您恢…

C++笔试强训day42

目录 1.最大差值 2.兑换零钱 3.小红的子串 1.最大差值 链接https://www.nowcoder.com/practice/a01abbdc52ba4d5f8777fb5dae91b204?tpId182&tqId34396&rp1&ru/exam/company&qru/exam/company&sourceUrl%2Fexam%2Fcompany&difficulty2&judgeSta…

你还在纠结U盘怎么选吗?小白带你来看

前言 2024年的618活动已经开始了&#xff0c;这个活动买电子产品着实是比其他时间要便宜很多。 前几天小白的一个好朋友问我&#xff1a;U盘该怎么选&#xff1f; 呃&#xff0c;本来是想写“老朋友”的&#xff0c;结果她愣是要我改成“好朋友”。 行吧&#xff0c;那就好朋…

基于睡眠声音评估睡眠质量

随着健康意识的增强&#xff0c;人们越来越关注睡眠质量。确保获得充足的高质量睡眠对于维持身体健康和心理平衡至关重要。专业的睡眠状态测量主要通过多导睡眠图&#xff08;PSG&#xff09;进行。然而&#xff0c;PSG会给受试者带来显著的身体负担&#xff0c;并且在没有专业…

【ARM Cache 与 MMU 系列文章 7.6 -- ARMv8 MMU 配置 寄存器使用介绍】

请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 文章目录 MMU 转换控制寄存器 TCR_ELxTCR_ELx 概览TCR_ELx 寄存器字段详解TCR 使用示例Normal MemoryCacheableShareability MMU 内存属性寄存器 MAIR_ELxMAIR_ELx 寄存器结构内存属性字段Devic…

小柴带你学AutoSar系列一、基础知识篇(5)makefile基础

Flechazohttps://www.zhihu.com/people/jiu_sheng 小柴带你学AutoSar总目录https://blog.csdn.net/qianshang52013/article/details/138140235?spm=1001.2014.3001.5501

请求 响应

在web的前后端分离开发过程中&#xff0c;前端发送请求给后端&#xff0c;后端接收请求&#xff0c;响应数据给前端 请求 前端发送数据进行请求 简单参数 原始方式 在原始的web程序中&#xff0c;获取请求参数&#xff0c;需要通过HttpServletRequest 对象手动获取。 代码…

Triton学习笔记

b站链接&#xff1a;合集Triton 从入门到精通 文章目录 算法名词解释&#xff1a;scheduler 任务调度器model instance、inference和requestbatching 一、Triton Inference Server原理1. Overview of Trition2. Design Basics of Trition3. Auxiliary Features of Trition4. A…

ipynb转markdown的简单方法

在线转换 推荐在线转换&#xff0c;拖进去后下载就行&#xff0c;简单易操作。 Convert Jupyter notebook to GitHub-Flavored Markdown for free on AlldocsThe free text converter for all your documents.https://alldocs.app/convert-jupyter-notebook-to-markdown vsc…

电阻十大品牌供应商

选型时选择热门的电阻品牌&#xff0c;主要是产品丰富&#xff0c;需求基本都能满足。 所所有的电路中&#xff0c;基本没有不用电阻的&#xff0c;电阻的选型需要参考阻值、精度、封装、温度范围&#xff0c;贴片/插件等参数&#xff0c;优秀的供应商如下&#xff1a; 十大电…