1. 数据介绍

1.1数据来源

美元兑换人民币的汇率是来自凤凰网财经版块的从2008年1月1日至2013年5月31日的数据,而黄金价格是来自investing.com的从2008年1月1日至2013年5月31日的数据。其中美元兑换人民币的汇率用rt表示,黄金价格用pt表示。

1.2数据处理

由于这两个数据的时间有些不一致,于是我做了以下工作使两组数据的时间一致。首先,对于两组数据中的其中一组中缺少一个日期的,我将缺少的那一个日期的数据设置为前后两个数据的平均值。然后,对于缺少的日期不止一个的,我将缺少的那几个日期的数据都设置为临近两个日期的平均值。比如:

表1  缺少一个日期的例子

date

rate

date

price

2008/1/18

725.71

2008/1/18

880.8

2008/1/21

725.98

2008/1/22

889.6

2008/1/22

725.56

2008/1/23

882.5

如上表1所示,黄金价格缺失了2008年1月21日的值,于是我用2008年1月18日和2008年1月22日的这两个值的平均值885.2代替。

表2  缺少多个日期的例子

date

rate

date

price

2008/2/5

718.46

2008/2/5

885.9

2008/2/13

719.52

2008/2/6

900.7

2008/2/14

718.9

2008/2/7

906.1

2008/2/15

717.63

2008/2/8

918.4

2008/2/18

716.67

2008/2/11

922.9

2008/2/19

715.74

2008/2/12

907.4

2008/2/20

714.52

2008/2/13

906.5

如表2,跟黄金价格的日期相比,汇率缺失了5个日期,于是我用2008年2月5日和2008年2月13日的两个值的平均值718.99作为这5个缺失日期的值。

2.建模过程

2.1汇率的时间序列模型

2.1.1 建立ARIMA模型

    首先看美元兑换人民币的汇率的时间序列图:

图1 汇率的时间序列图

从图1中可以看出,这是一个带趋势项的时间序列,且具有很强的趋势性,于是利用一阶差分来消除趋势性,得到:

图2  汇率一阶差分后的时间序列图

通过一阶差分之后,趋势性消除了,接下来开始建立模型,首先通过序列的acf和pacf图尝试确定阶数:

图3  汇率一阶差分后的ACF

图4  汇率一阶差分后的PACF

这两个图都没有明显的截尾性,于是我们直接对一阶差分后的数据建立ARMA模型,首先尝试ARMA(1,1),得到的结果如下:

Series: rt

ARIMA(1,1,1)

Coefficients:

ar1      ma1

0.9983  -0.9843

s.e. 0.0021   0.0050

sigma^2 estimated as 0.29:  log likelihood=-1151.72

AIC=2309.44   AICc=2309.46   BIC=2325.26

接下来我们检验模型的有效性:

图5  ARMA(1,1)模型有效性的检验结果

从检验结果来看,这个模型是有效的,再检验模型的系数的有效性:

z test of coefficients:

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

ar1 0.9983150  0.0020891  477.86 < 2.2e-16 ***

ma1 -0.9842741  0.0050410 -195.25 < 2.2e-16 ***

两个系数的p值都小于5%,说明这个模型的系数是显著的。所拟合的模型如下:

整理得:

另外,还尝试了其它的模型,如ARMA(2,1),ARMA(1,2),ARMA(2,2),这些模型都是显著的,但是它们的系数有些不显著,而且它们的BIC值都大于ARMA(1,1),除了ARMA(2,2),其它两个模型的AIC也都大于ARMA(1,1)。综合以上分析,ARMA(1,1)模型是最优的。其残差的acf图也显示无自相关,对残差的25阶检验结果中p值大于5%,即残差无自相关。但是残差的平方的检验结果表明存在自相关性,于是考虑建立GARCH模型。

图6  残差的ACF图

2.1.2 建立GARCH模型

在建立模型之前,先看一下建立ARCH模型的四个步骤:

(1)通过检验数据的序列相关性建立一个均值方程,如有必要,对收益率序列建立一个计量经济模型(如ARMA模型)来消除任何的线性依赖;

(2)对均值方程的残差进行ARCH效应检验;

(3)如果ARCH效应在统计上是显著的,则指定一个波动率模型,并对均值方程和波动率方程进行联合估计;

(4)仔细地检验所拟合的模型,如有必要则对其进行改进。

ARCH模型的建模方法也可以用来建立一个GARCH模型。然而,GARCH模型的阶不太容易确定。在实际应用中,只用到低阶的GARCH模型,如GARCH(1,1)模型,GARCH(2,1)模型,GARCH(1,2)模型等。

前面的检验结果表明ARCH效应在统计上是显著的,于是尝试建立GARCH模型,综合模型的显著性,AIC值越小越好的原则,最后选择了AR(1,1)+GARCH(1,2)模型,建模结果如下:

Title:

GARCH Modelling

Call:

garchFit(formula = rt ~ arma(1, 1) +garch(1, 1), data = r1,

trace = F)

Mean and Variance Equation:

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

<environment: 0x10d438a0>

[data = r1]

Conditional Distribution:

norm

Coefficient(s):

mu         ar1         ma1       omega     alpha1       beta1

-0.0333550   0.0076389   0.0631761  0.0026670   0.0675436   0.9227838

Std. Errors:

based on Hessian

Error Analysis:

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

mu     -0.0333550   0.0248484  -1.342    0.179

ar1     0.0076389   0.7039483   0.011    0.991

ma1     0.0631761   0.7034084   0.090    0.928

omega   0.0026670   0.0004362   6.115 9.67e-10 ***

alpha1  0.0675436   0.0111673   6.048 1.46e-09 ***

beta1   0.9227838   0.0110426  83.565  < 2e-16 ***

---

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

Log Likelihood:

-837.6255    normalized: -0.5820886

Description:

Fri Jun 21 23:48:02 2013 by user:Administrator

Standardised Residuals Tests:

Statistic p-Value

Jarque-Bera Test   R   Chi^2  100128.6  0

Shapiro-Wilk Test  R   W      0.8568862 0

Ljung-Box Test     R   Q(10)  9.800271  0.4581876

Ljung-Box Test     R   Q(15)  12.47034  0.6431355

Ljung-Box Test     R   Q(20)  17.8987   0.5940815

Ljung-Box Test     R^2 Q(10)  0.8269668 0.9999285

Ljung-Box Test     R^2 Q(15)  0.9627662 0.9999998

Ljung-Box Test     R^2 Q(20)  1.072775  1

LM Arch Test       R   TR^2   0.8948157 0.9999924

Information Criterion Statistics:

AIC      BIC     SIC     HQIC

1.172516 1.194497 1.172482 1.180722

从上述结果可以看出,建立GARCH(1,2)模型之后残差无自相关,也无异方差(残差的平方无自相关),所以模型是有效的。于是,所拟合的模型为(r1为汇率的一阶差分):

2.2 黄金价格与汇率的模型

    纵观历史数据,黄金价格与汇率大概成一个此消彼长的关系,由这两个数据计算出来的相关系数为-0.8988,也表明有很强的负相关,下图为它们的时间序列图:

                                                                                                                                 图7 汇率和黄金价格的时间序列图

既然这两个数据是高度相关的,描述这两个数据之间的关系的一个自然方式是利用简单的线性模型,拟合结果为:

Call:

lm(formula = pt ~ rt)

Residuals:

Min     1Q  Median      3Q    Max

-406.20  -99.46  29.02   94.02  353.63

Coefficients:

Estimate Std. Error t valuePr(>|t|)

(Intercept)8513.7172    92.9791   91.57  <2e-16 ***

rt           -10.9046     0.1402 -77.76   <2e-16 ***

---

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

Residual standarderror: 143.2 on 1438 degrees of freedom

Multiple R-squared:0.8079,    Adjusted R-squared: 0.8077

F-statistic:  6046 on 1 and 1438 DF,  p-value: < 2.2e-16

因此,所拟合的模型为:

画出模型的残差的时间图以及残差的ACF,从图可见,该模型是严重不充分的。特别地,残差的样本ACF是高度显著的并且缓慢衰减,显示出单位根非平稳时间序列的特点,残差的表现说明两个数据间存在明显的差异。

图8  模型残差的时序图和ACF

于是我们考虑这两个数据的变化量序列,设为p1和r1,先看它们的时间图:

图9   一阶差分后的汇率和黄金价格的时序图

再计算这两个变化量序列的相关系数,cor(r1,p1)=-0.016。计算结果表明几乎不存在相关关系,于是对于上面拟合的模型中残差的序列相关性用简单的时间序列模型来描述,从而得到一个带时间序列误差的线性回归。综合AIC值越小越好的原则和模型的相对有效性,最后选择ARMA(1,1)模型:

Series: pt

ARIMA(1,0,1) with non-zero mean

Coefficients:

ar1      ma1  intercept       rt

0.9980  -0.1639 2568.7890  -1.9364

s.e. 0.0014   0.0265   639.3145  0.9388

sigma^2 estimated as 377.6:  log likelihood=-6318.17

AIC=12646.34  AICc=12646.38   BIC=12672.7

Training set error measures:

ME         RMSE          MAE          MPE         MAPE

0.260320469 19.431024708 11.898488052-0.004087602  0.969354535

MASE

1.013218549

检验模型的有效性:

图10  带时间序列误差的回归模型的有效性检验图

从上面第三个图可以看出,这个模型在7阶以下是有效的。接下来检验模型系数的有效性:

z test of coefficients:

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

ar1       9.9803e-01  1.3888e-03 718.6372< 2.2e-16 ***

ma1      -1.6388e-01  2.6455e-02  -6.1944 5.850e-10 ***

intercept 2.5688e+03  6.3931e+02   4.0180 5.869e-05 ***

rt       -1.9364e+00  9.3878e-01  -2.0626  0.03915 *

从检验结果可以看出,系数都是显著的,于是所拟合的模型为:

2.3  模型总结

  前面的建模过程表明,美元兑换人民币的汇率的时间序列模型为:

 ,

而黄金价格与汇率的关系为:

从而汇率可根据自身的时间序列模型来预测未来值,而黄金价格却无法预测,于是可以根据预测出来的汇率通过黄金价格与汇率的关系来预测黄金价格。

本文的不足之处在于黄金价格与汇率的关系式的残差在7阶以上是存在自相关的。

 3. 预 测

由于汇率的模型的变量是汇率做了一阶差分之后的数据,所以预测出来的值只是两个相邻汇率值的差,通过计算得出汇率的预测之后代入黄金价格与汇率的模型可直接算出黄金价格的预测值,这个可以通过R软件直接实现,下表是通过拟合的模型预测出来的从2013年6月1日至2013年6月5日的值与真实值:

表3  5个预测值与真实值

date

rate

predict r

price

predict p

2013/6/1

617.96

617.91

1390.7

1391.35

2013/6/2

617.96

617.88

1394.05

1391.37

2013/6/3

618.06

617.85

1412.05

1391.39

2013/6/4

617.35

617.81

1398.15

1391.43

2013/6/5

617.57

617.78

1401.05

1391.45

美元兑人民币汇率对黄金价格的预测相关推荐

  1. 美元对人民币汇率的大数据分析与预测

    一.实验说明 文献参考:http://www.dataguru.cn/article-11339-1.html(lstm详细介绍) https://blog.csdn.net/u011974639/a ...

  2. tushare实战LSTM实现黄金价格预测

    tushare实战LSTM实现黄金价格预测 文章目录 tushare实战LSTM实现黄金价格预测 拉取数据 数据预处理 训练模型 模型预测及查看效果 先看整体情况 选取特定的一小段查看 结果分析 拉取 ...

  3. 黄金价格预测:如何将时序数据处理成监督学习数据

    背景概述 今天介绍下如何将时序数据处理成监督学习可用的训练样本.比较典型的场景是黄金的原始数据,一般黄金走势数据是由两个字段组成,分别是时间字段和价格字段. 走势图如下: 顺便安利一个黄金数据的下载网 ...

  4. 用 Python 机器学习预测黄金价格

    读取黄金 ETF 数据 本文使用机器学习方法来预测最重要的贵金属之一黄金的价格.我们将创建一个线性回归模型,该模型从过去的黄金 ETF (GLD) 价格中获取信息,并返回对第二天黄金 ETF 价格的预 ...

  5. 股票大跌了,只能靠黄金稳住收入了丨用 Python 机器学习预测黄金价格

    读取黄金 ETF 数据 本文使用机器学习方法来预测最重要的贵金属之一黄金的价格.我们将创建一个线性回归模型,该模型从过去的黄金 ETF (GLD) 价格中获取信息,并返回对第二天黄金 ETF 价格的预 ...

  6. LSTM预测黄金价格

    LSTM预测黄金价格 数据代码下载地址见文末 数据说明 Date-日期 Close/Last-收盘价 Volume-成交量 Open-开盘价 High-最高价 Low-最低价 导入数据 import ...

  7. 浅谈股市、美元汇率与原油价和黄金价格间的关系

    浅谈股市.美元汇率与原油价和黄金价格间的关系 影响股市.汇市.油价 和黄金价格的因素众多.但是在一般情况下,它们之间存在此消彼长的互动关系. 一.股市与原油价格 如果股市下跌,一般认为是经济形势不好的 ...

  8. python黄金走势预测_使用python爬虫获取黄金价格的核心代码

    继续练手,根据之前获取汽油价格的方式获取了金价,暂时没钱投资,看看而已 #!/usr/bin/env python # -*- coding: utf-8 -*- """ ...

  9. 万洲金业:日内黄金价格下跌,关注千八支撑反弹。

    周四(2月3日),国际金价徘徊在上一交易日录得的四个交易日高位1810.85美元下方,美元指数在英国和欧洲央行会议前小幅反弹,各大经济体正在努力应对不断上升的通胀风险.市场预计,英国央行将在日内晚些时 ...

最新文章

  1. JVM(3)——JVM类加载器
  2. HTTP协议中POST、GET、HEAD、PUT等请求方法及相应值得含义
  3. java 静态代码块_关于Java你不知道的那些事之代码块
  4. 谷歌核心算法大更新,如何趋利避害对电商网站排名影响?
  5. Ubunt 配置网络服务
  6. php中子类实现多接口,PHP子类无法实现相同的接口父类实现
  7. 通过Server 2019中的组策略部署桌面墙纸 详解组策略环回处理
  8. ORB-SLAM3:一个用于视觉、视觉惯性和多地图SLAM系统
  9. Topaz Gigapixel AI 人工智能图像放大
  10. CuteFTP,8uftp cuteftp
  11. linux虚拟主机的三种方法
  12. BMS 中的安规设计
  13. 发现CSDN发带图片的博文好麻烦,测试一下51的
  14. android和手环传输数据,智能手环工作原理_智能手环是如何进行数据传输的 - 全文...
  15. Arduino基础入门篇26—步进电机
  16. Linux在安装Python时:zipimport.ZipImportError: can‘t decompress data; zlib not available
  17. python 不能读取xlsx格式的excel解决方案,安装1.2.0版本
  18. 旺店通与用友U8集成解决方案
  19. C++ Programming language读书笔记
  20. 第二章 C++编程简介【信息学奥赛】

热门文章

  1. 还在问java架构师路线?学习路线?十年京东架构师教你这样做
  2. Vue Error-报错信息:Syntax Error: Assigning to rvalue.
  3. 2017年的错误和失误
  4. YY创始人携手极客公园调坎QQ企鹅
  5. 帝国cms 会员中心2.0
  6. 基于电商常识图谱的知识表示与应用
  7. 友盟分享 微博 c8998文件不存在
  8. MI5s安装LineageOS 16
  9. Windows重装系统+虚拟机virtuabox安装+ubuntu系统安装+linux环境下安装fsl 一条龙(步步亲测有效)
  10. 强制退出当前ubuntu命令