金融数据分析 课件 第2章金融时间序列线性模型_第1页
金融数据分析 课件 第2章金融时间序列线性模型_第2页
金融数据分析 课件 第2章金融时间序列线性模型_第3页
金融数据分析 课件 第2章金融时间序列线性模型_第4页
金融数据分析 课件 第2章金融时间序列线性模型_第5页
已阅读5页,还剩106页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章

金融时间序列线性模型

学习目标

熟悉时间序列的平稳性和单位根检验;掌握构建AR、MA、ARMA模型的基本思想和建模过程;了解季节模型和长记忆模型的基本步骤和建模过程;了解中国居民消费价格指数的波动规律,了解中国党和政府重视民生工程,保持物价稳定的决心和能力。

本章导读

时间序列是指将某一个统计指标在不同时间上的各个数值,按时间先后顺序排列而成的序列。时间序列的发展可以追溯到1927年Yule提出的AR模型和1937年Walker提出的MA模型及将两个模型合并得到的ARMA模型;随后标志性的事件包括1970年Box和Jenkins中提出的ARIMA模型,1982年Engle提出的ARCH模型,1985年Bollerslov针对多变量的情况提出的GARCH模型。时间序列分析的目的一般有两个方面:一是认识产生观测序列的随机机制,即建立数据生成模型;二是基于序列的已知数据,对未来的可能取值给出预测。目前,时间序列在金融数据分析中得到了广泛应用。本章将讲述时间序列数据模型的性质、识别、估计与预测,包括简单自回归模型(AR)、简单移动平均模型(MA)、自回归移动平均模型(ARMA)、自回归整合移动平均模型(ARIMA)、季节模型以及时间序列平稳性与单位根检验等。2.1相关性和平稳性2.2简单自回归模型2.3简单移动平均模型2.4简单ARMA模型2.5单位根非平稳时间序列2.6季节模型组合风险测度2.7长记忆时间序列模型专题2:基于ARIMA模型的中国居民消费价格指数预测

目录CONTENTS相关性和平稳性2.12.1.1相关性

2.1.1相关性

2.1.1相关性

2.1.1相关性例2.1股票相关性计算。图2-1是浦发银行股票和工商银行股票从2007年1月到2021年12月的月收益率的散点图。从其散点图中可看出,这两只股票收益率趋于正相关。之后分别计算这两只股票前面所述的三种相关系数,结果如下表2-1。相关系数种类Pearson相关系数Spearman相关系数Kendall相关系数指标数值0.66740.71930.5536图2-1浦发银行股票月收益率对工商银行股票月收益率散点图表2-1浦发银行和工商银行股票收益率相关性分析2.1.1相关性R代码>da=read.table("E://jrjl/Chapter2/pfyh.txt",header=T)>x<-da$gs>y<-da$pf>plot(x,y,xlab="工商银行月收益率",ylab="浦发银行月收益率")>cor(x,y,method="pearson")#计算皮尔逊相关系数>cor(x,y,method="spearman")#计算斯皮尔曼相关系数>cor(x,y,method="kendall")#计算肯德尔相关系数2.1.2平稳性

2.1.2平稳性

2.1.2平稳性

2.1.2平稳性

2.1.2平稳性

2.1.2平稳性

2.1.2平稳性

图2-2收益率序列时序图和序列的ACF图2.1.2平稳性R代码>d=read.table("E://jrjl/Chapter2/szzz.txt",header=T)>sse<-ts(d$IdxMonRet,start=c(1991,1),frequency=12)>plot(sse,xlab="年份",ylab="月收益率",main="上证综指月收益率")>acf(d$IdxMonRet,lag=24,main="上证综指月收益率")2.1.2平稳性

图2-3工商银行的月简单收益率和对数收益率的自相关函数图2.1.2平稳性R代码>d=read.table("E://jrjl/Chapter2/gsyh.txt",header=T)#读取文件>da=d$gs>gs<-ts(da,start=c(2007,1),frequency=12)>lngs=log(gs+1)#收益率取对数>acf(da,main="工商银行月收益率")#简单收益率自相关图>acf(log(gs+1),main="工商银行对数月收益率")#对数收益率自相关图>Box.test(gs,lag=5,type="Ljung")#简单收益率的自相关检验>Box.test(gs,lag=10,type="Ljung")>Box.test(lngs,lag=5,type="Ljung")#对数收益率的自相关检验>Box.test(lngs,lag=10,type="Ljung")2.1.2平稳性

2.1.2平稳性例2.3续从例2.3的分析可以看出,工商银行股票序列可以认为是一个白噪声序列。图2-4给出了随机产生的1000个服从标准正态分布的白噪声序列的时序图。图2-4标准正态白噪声序列时序图2.1.2平稳性R代码>set.seed(111)>x<-rnorm(1000)>ts.plot(x)简单自回归模型2.22.2

简单自回归模型

2.2.1AR模型性质

2.2.1AR模型性质

2.2.1AR模型性质R代码>par(mfcol=c(2,2))>x1<-arima.sim(n=1000,list(ar=-0.2))>acf(x1,lag.max=30,main="φ=-0.2")>x2<-arima.sim(n=1000,list(ar=0.2))>acf(x2,lag.max=30,main="φ=0.2")>x3<-arima.sim(n=1000,list(ar=-0.8))>acf(x3,lag.max=30,main="φ=-0.8")>x4<-arima.sim(n=1000,list(ar=0.8))>acf(x4,lag.max=30,main="φ=0.8")2.2.1AR模型性质

2.2.1AR模型性质

2.2.1AR模型性质图2-6AR(2)模型的自相关函数

2.2.1AR模型性质

2.2.2AR模型的识别AR模型的识别:在实际应用中,AR时间序列的阶数p是未知的,必须根据实际数据来决定。因此需要对AR模型定阶。一般有两个确定阶数p的方法:一是利用AIC、BIC等信息准则,二是利用偏自相关函数。2.2.2AR模型的识别

2.2.2AR模型的识别

2.2.2AR模型的识别

2.2.2AR模型的识别例2.4中国GDP的季度数据建模。本例使用中国GDP的季度数据,时间从1992年第一季度至2021年第四季度,共116个数据。图2-7给出了GDP序列的对数序列和增长率的时序图(对数GDP增长率为对数GDP之间的一阶差分)。之后对增长率的ACF和PACF进行估计,得到图2-8,从图2-8中可看出,可尝试AR(7)建模。R软件stats包中的ar()函数可以对时间序列进行AR建模,默认采用AIC准则定阶。用选项aic=FALSE,order.max=p可以选定p阶模型。如本例产生了一个8阶的模型,图2-9为其AIC的图形,当p=8时达到最小值。虽然ar()函数没有提供BIC的值,但因为BIC(k)−AIC(k)=k(lnT−2)/T,因此可以计算BIC值。事实上,BIC也建议p=8。表2.2为PACF、AIC和BIC各阶对应的值,找出最小的AIC和BIC时对应的阶数即可。当然,从AIC图形可看出,如果取较低的阶,4阶也是可以的。这个例子说明不同的准则可能会得出p的不同选择。在实际应用中,还没有证据表明哪种方法更好。对给定的时间序列选择一个AR模型时,还有两种因素起着重要作用,就是所研究问题的具体信息和模型的简单性。2.2.2AR模型的识别2.2.2AR模型的识别2.2.2AR模型的识别R代码>d=read.table("E://jrjl/Chapter2/gdp,txt",header=T)>gdp<-ts(d[["GDP"]],start=c(1992,1),frequency=4)>plot(log(gdp),xlab="年份",ylab="log(GDP)",main="对数GDP")>rate<-diff(log(gdp))>plot(rate,xlab="年份",ylab="增长率",main="GDP增长率")>b1<-pacf(rate,xlab="年份",main="")>b1>a1<-ar(rate,method="mle")>a1$order>a1$aic>plot(as.numeric(names(a1$aic)),a1$aic,type="h",xlab="k",ylab="AIC")>tmp.T<-length(rate)>tmp.bic<-a1$aic+as.number(names(a1$aic))*(log(tmp.T)-2)/tmp.T>tmp.bic>plot(as.numeric(names(a1$aic)),tmp.bic,type="h",xlab="k",ylab="BIC")2.2.3AR模型的估计

2.2.3AR模型的估计模型检验:检查拟合的模型好坏的一个标准是考察模型是否充分。如果模型是充分的,则其残差序列应为白噪声。残差的样本自相关函数和Ljung-Box统计量可用来检验与白噪声的接近程度。对AR(p)模型,Ljung-Box统计量Q(m)渐近服从自由度为的分布,其中g是所用模型中AR系数的个数。如果发现拟合的模型是不充分的,那么就需要对它进行改进。如果估计的AR系数中有一些与0没有显著差别,则我们应该去掉这些不显著的参数对模型进行简化。2.2.3AR模型的估计

2.2.3AR模型的估计

2.2.3AR模型的估计R代码>d=read.table("E://jrjl/Chapter2/szzz.txt",header=T)>IMR<-ts(d[["IdxMonRet"]],start=c(1991,1),frequency=12)>a1<-ar(IMR,method="mle")>a1$order>a2<-arima(IMR,order=c(11,0,0))>Box.test(a2$residuals,lag=12,type="Ljung",fitdf=11)>a3<-arima(IMR,order=c(11,0,0),fixed=c(0,0,0,0,0,0,NA,0,NA,0,NA,0))>a3>Box.test(a3$residuals,lag=12,type="Ljung",fitdf=3)>abs(polyroot(c(1,-coef(a3)[1:11])))

2.2.3AR模型的估计

2.2.4AR模型的预测

2.2.4AR模型的预测

2.2.4AR模型的预测

2.2.4AR模型的预测

2.2.4AR模型的预测R代码>d=read.table("E://jrjl/Chapter2/szzz.txt",header=T)>da=d$IdxMonRet>IMR<-ts(da[1:360],start=c(1991,1),frequency=12)>a1<-ar(IMR,method="mle")>a1$order>a2<-arima(IMR,order=c(11,0,0))>Box.test(a2$residuals,lag=12,type="Ljung",fitdf=11)>a2>a3<-arima(IMR,order=c(11,0,0),fixed=c(0,0,0,0,0,0,NA,0,NA,0,NA,0))>a3>pred1<-predict(a3,12)>pred1>x1=(c(1:24))/12+2020>y1=da[349:372]>plot(x1,y1,xlab='年份',ylab='上证综指月简单收益率',type='b',ylim=c(-0.06,0.12))>points(x1[13:24],pred1$pred,col="red",lwd=1,lty=2,type="b",pch=2)简单移动平均模型2.32.3简单移动平均模型

2.3.1MA模型的性质

2.3.1MA模型的性质

2.3.1MA模型的性质

2.3.1MA模型的性质R代码>x1<-arima.sim(n=1000,list(ma=-2))>acf(x1,lag.max=20)>x2<-arima.sim(n=1000,list(ma=-0.5))>acf(x1,lag.max=20)>x3<-arima.sim(n=1000,list(ma=c(-2,4)))>acf(x3,lag.max=20)>x4<-arima.sim(n=1000,list(ma=c(-0.5,0.25)))>acf(x4,lag.max=20)2.3.1MA模型的性质

2.3.2MA模型的识别

图2-12民生银行月简单收益率时序图和ACF图2.3.3MA模型的估计MA模型的估计:估计MA模型通常用最大似然法,它又细分为条件似然法(conditionallikelihoodmethod)和精确似然法(exactlikelihoodmethod)两种估计方法。精确似然估计优于条件似然估计,尤其是当MA模型接近于不可逆时。然而,精确似然估计的计算会更复杂一些。如果样本量较大,这两种似然估计是接近的。2.3.3MA模型的估计

2.3.3MA模型的估计R代码>d=read.table("E://jrjl/Chapter2/zsyh.txt",header=T)>da=d$Monret>mr<-ts(da,frequency=12,start=c(2001,1))>plot(mr,xlab="年份",ylab="民生银行月简单收益率")>acf(da)>a1<-arima(mr,order=c(0,0,14))>a1>Box.test(a1$residuals,type="Ljung",lag=24,fitdf=13)>a2<-arima(mr,order=c(0,0,14),fixed=c(0,0,0,0,0,0,0,0,NA,0,0,0,0,NA,NA))>a22.3.4MA模型的预测

2.3.4MA模型的预测

2.3.4MA模型的预测

2.3.4MA模型的预测R代码>d=read.table("E://jrjl/Chapter2/zsyh.txt",header=T)>da=d$Monret>mr<-ts(da[1:242],frequency=12,start=c(2001,1))>plot(mr,xlab="年份",ylab="民生银行月简单收益率")>acf(da)>a1<-arima(mr,order=c(0,0,14))>a1>a2<-arima(mr,order=c(0,0,14),fixed=c(0,0,0,0,0,0,0,0,NA,0,0,0,0,NA,NA))>a2>pred2<-predict(a2,10)>pred2简单ARMA模型2.42.4.1ARMA(1,1)模型ARMA(1,1)理论推导2.4.1ARMA(1,1)模型2.4.1ARMA(1,1)模型2.4.1ARMA(1,1)模型通过推导,发现ARMA(1,1)模型的ACF与AR(1)模型的ACF很相似,不同之处仅在于它的指数衰减是从滞后2阶开始的。因此,ARMA(1,1)模型的ACF不能在任意有限滞后阶截尾。现在来看偏自相关函数(PACF)。可以证明ARMA(1,1)模型的PACF也不能在有限滞后阶后截尾。它与MA(1)模型的PACF表现很相似,只是指数衰减从滞后2阶开始,而不是从滞后1阶开始。综上所述,ARMA(1,1)模型的平稳性条件与AR(1)模型相同,ARMA(1,1)模型的ACF与AR(1)模型的ACF有相似的模式,只是是从滞后2阶开始的。ARMA(1,1)与AR(1)性质比较2.4.2ARMA模型简介ARMA模型一般形式2.4.3ARMA模型的识别

每一随机过程都有它的典型的ACF和PACF式样(表2.5)。对于AR(p)过程,ACF按几何或指数规律下降(常描述为拖尾),而PACF则是在一定时期忽然截断(常描述为截尾)。可见,AR(p)过程的ACF和PACF与MA(q)过程的ACF和PACF相比,刚好相反。ARMA模型的识别2.4.3ARMA模型的识别

在给ARMA模型定阶时,ACF和PACF都不能提供足够的信息。通常采用推广的自相关函数(EACF)来确定ARMA过程的阶。课本例题2.11讲述自相关函数(EACF)来确定ARMA过程的阶。选择ARMA模型阶数的另外一种方法是信息准则。具体地说,对于事先指定的正整数P和Q,计算ARMA(p,q)模型的AIC(或BIC),其中0≤p≤P、0≤q≤Q,选取使AIC(或BIC)取最小值的模型。ARMA(p,q)模型的阶确定后就可用条件似然法或者精确似然法来估计模型的参数,并对残差进行Ljung-Box检验判断所拟合模型的合理性。在R中可以用arima()函数建立ARMA模型。利用自相关函数(EACF)定阶单位根非平稳时间序列2.52.5.1随机游走和带漂移项的随机游走

随机游动带漂移项的随机游走2.5.2趋势平稳的时间序列

趋势平稳的时间序列2.5.3ARIMA模型如果允许其特征多项式存在特征根,则ARMA模型就变成了自回归整合移动平均模型ARIMA。ARIMA模型表达式中经过d阶差分得到一个平稳序列,同时假定其自回归算子的滞后期为p,移动平均算子的滞后期为q,则ARIMA模型结构为ARIMA(p,d,q)。应用ARIMA模型进行建模可分为如下的四个步骤。(1)对原序列进行平稳性检验,如果序列不满足平稳性条件,可以通过差分变换使得序列满足平稳性条件。(2)通过计算能够描述序列特征的一些统计量(如自相关系数和偏自相关系数以及推广的自相关函数EACF),来确定ARIMA模型阶数p和q,并在初始估计中选择尽可能少的参数。(3)估计模型的参数,并检验参数的显著性,以及模型本身的合理性。(4)对结果进行分析,以证实所得模型是否与所观察的数据特征相符。ARIMA模型2.5.4非平稳时间序列的单位根检验非平稳时间序列的单位根检验2.5.4非平稳时间序列的单位根检验DF检验2.5.4非平稳时间序列的单位根检验ADF检验2.5.4非平稳时间序列的单位根检验例2.12考虑中国从1992年第1季度到2021年第4季度的季度GDP对数序列。该序列表现出上升趋势,这表明中国经济的增长,同时它呈现高度的样本序列相关性,参见图2-7a。该序列的1阶差分序列代表了中国GDP的增长率,图2-7b给出了GDP增长率序列的时序图,该差分序列看起来在一个固定的均值水平附近波动。为证实这一现象,对该对数序列进行ADF单位根检验。基于图2-8给出的差分序列的样本PACF,选择p=7较为合适,而基于图2-9给的AIC图,选择p=8较为合适。在这里通过更加精确的fUnitRoots包函数进行定阶,选择p=8更为合适。当p=8时,ADF检验统计量是-0.8423,p值是0.7435,这表明单位根假设不能被拒绝。2.5.4非平稳时间序列的单位根检验R代码>d=read.table("E://jrjl/Chapter2/gdp.txt",header=T)>library(fUnitRoots)>gdp=log(d[,2])>m1=ar(diff(gdp),method='mle')>m1$order>adfTest(gdp,lags=8,type=c("c"))季节模型2.62.6季节模型有些金融时间序列,呈现出一定的循环或周期性,这样的时间序列叫做季节时间序列。在季节时间序列中,常常需先处理这些季节趋势,把它从数据中移除,得到经季节调整后的时间序列,然后再用来做推断。这种从时间序列中移除季节性的过程叫做季节调整。图2-14所示的是中国GDP对数的时序图。对其对数变换主要是因为GDP是指数增长的,同时通过对数变换可降低序列的波动性。事实上,对数变换在金融、经济时间序列分析中是常用的处理数据的方法。季节模型2.6季节模型图2-14中国GDP从1992年1季度到2021年4季度对数时序图2.6季节模型

2.6季节模型

2.6季节模型图2-15中国GDP从1992年第1季度到2021年第4季度的对数序列的样本自相关函数图2.6季节模型

2.6季节模型图2-16

中国GDP从1992年第1季度到2021年第4季度的对数序列的时序图2.6季节模型

多重季节模型2.6季节模型R代码>d=read.table("E://jrjl/Chapter2/gdp.txt",header=T)>da=d>eps=log(da$GDP)>koeps=ts(eps,frequency=4,start=c(1992,1))>plot(gdp,type='l',xlab='year',ylab='ln(GDP)')>par(mfcol=c(2,2))>koeps=log(da$GDP)>deps=diff(koeps)>sdeps=diff(koeps,4)>ddeps=diff(sdeps)>acf(koeps,lag=20,main="a.对数序列")>acf(sdeps,lag=20,main="c.季节差分序列")>acf(deps,lag=20,main="b.一阶差分序列")>acf(ddeps,lag=20,main="d.常规差分和季节差分后序列")2.6季节模型>c1=c("2","3","4","1")>c2=c("1","2","3","4")>par(mfcol=c(3,1))>deps=ts(deps,frequency=4,start=c(1992))>plot(deps,xlab='year',ylab='一阶差分',type='l',main="a.一阶差分序列")>points(deps,pch=c1,cex=0.7)>sdeps=ts(sdeps,frequency=4,start=c(1992))>plot(sdeps,xlab='year',ylab='季节差分',type='l',main="b.季节差分序列")>points(sdeps,pch=c2,cex=0.7)>ddeps=ts(ddeps,frequency=4,start=c(1992))>plot(ddeps,xlab='year',ylab='常规和季节差分',type='l',main="c.常规和季节差分序列")>points(ddeps,pch=c1,cex=0.7)长记忆时间序列模型2.72.7

长记忆时间序列模型时间序列可分为平稳序列和非平稳序列两类,一般来说长记忆的时间序列是非平稳的。我们知道,平稳时间序列的ACF呈指数衰减。但是对单位根非平稳时间序列,可证明对任意固定的滞后阶数,当样本容量增加时,样本ACF收敛于1。另外也存在一些时间序列,随着滞后阶数的增加它们的ACF以多项式的速度缓慢衰减到0。这些时间序列称为长记忆时间序列(long-memorytimeseries)。长记忆时间序列模型2.7

长记忆时间序列模型

ARFIMA模型2.7

长记忆时间序列模型例2.13为说明长记忆时间序列的建模,考虑上海银行间隔夜拆借利率中国工商银行隔夜拆借利率的报价利率对数收益率的绝对收益率,时间跨度为2014年1月3日至2020年12月31日。图2-17给出了序列绝对值序列的ACF图。从图中可见ACF的数值相对较小,且衰减缓慢,甚至在滞后300阶后还在5%的水平下显著。图2-17上海银行间隔夜拆借利率中国工商银行日隔夜拆借利率的报价利率对数收益率的绝对值序列的样本ACF值2.7

长记忆时间序列模型

2.7

长记忆时间序列模型R代码>d=read.csv("E://jrjl/Chapter2/gsyhh.csv",header=T)>install.packages("fracdiff")>library(fracdiff)>ew=abs(d$dlnr)>m2=fracdiff(ew,nar=1,nma=1)>summary(m2)基于ARIMA模型的中国居民消费价格指数预测2.8基于ARIMA模型的中国居民消费价格指数预测通过研究国家或者一个区域的CPI指数的变动,可以从一个侧面反映国家或者地区的民生情况。CPI的统计数据是一个典型的时间序列,一般可以按照月份、季度和年度来统计数据,按照一篮子固定商品价格计算当期或者累计的价格指数。本部分我们将利用ARIMA模型对CPI进行建模。1.数据描述我们选择1994年1月至2021年12月期间中国CPI月度数据进行分析,样本数据共326个,数据来源于wind数据库,CPI数据为当月值(上个月为100)。在分析中,数据的一部分(1994.01—2021.06共320个数据点)被用于建模,其余部分用于验证模型预测效果。基于ARIMA模型的中国居民消费价格指数预测首先绘制中国CPI的时序图和相关函数图,以便观察其基本特征。如图2-18和图2-19所示。图2-18CPI时序图图2-19CPI样本自相关函数图从时序图来看,1994年的CPI明显比此后各年度均高出很多。在90年代初期,中国经济一度过度扩张,广义货币M2发行量年年激增。受国际金融危机影响,CPI在2008年再次达到顶峰。到2020年CPI再度有小幅度上升,主要是由于新冠疫情的冲击造成生产链的中断。事实上,所有这些经济重大事件的影响在CPI数据上都有所反映。基于ARIMA模型的中国居民消费价格指数预测2.模型的构建与分析

按照建模的需要,过高和过低的数据应当被做为异常点除去,但是考虑到中国经济的延续性,保留了这一部分数据。从时序图上看不出来明显的长期趋势,故初步判断序列为随机性时间序列。考虑使用ARIMA模型建模。

此外自相关函数(ACF)图(图2-19)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论