金融时间序列-用R语言建一个简单的时间序列自回归模型

浏览: 8520

1简单自回归模型

当X具有间隔为1的自相关系数时,滞后值X(T-1)可能会在预测X(T)时有用,下面的简单模型可以利用这样的预测功能

Clipboard Image.png

其中a(t)是均值为0,方差为常数的白噪声序列,这个和一元线性回归模型是一样的形式,这里X(T)是因变量,X(T-1)是自变量,这个模型我们称之为一阶自回归(AR)模型模型,其中一阶自回归模型的推广形式AR(P):

                             Clipboard Image.png

1.1AR模型的性质

首先我们定义AR(1)模型弱平稳性的充分必要条件,假定序列是弱平稳的,则E(X)=u;Var(X)=r(0),其中U和R(0)都是常数,R(J)是J的函数而与T无关;

在平稳的条件下,EX(T)=EX(T-1)=u,从而

        Clipboard Image.png

对于这个结果有两个含义,第一,若Clipboard Image.png<>1,则X的均值存在;第二,x的均值为0当且仅当Clipboard Image.png=0;

方差经过转换可得

       Clipboard Image.png

AR(1)模型自相关函数

 协方差的结果为,这里推导结果省略;

Clipboard Image.png

结合下面

Clipboard Image.png

得到自相关系数

Clipboard Image.png

平稳性

首先一个自回归模型时间序列要平稳的条件是该模型的特征根都小于1;

1.2AR模型的识别

在实际应用中,AR时间序列的阶数P是未知的,必须根据实际数据来决定,这个问题叫做AR模型定阶;第一个方法是利用偏自相关函数(PACF),第二个方法就是某个信息准则函数

1.2.1偏自相关函数

平稳时间序列的偏自相关函数是自相关函数的函数,对于一个AR(P)模型,间隔为P的样本偏自相关函数不应为0,而对于J>p,权重应该接近于0,我们利用这个性质来决定阶数;对于平稳AR((P)模型,可以证明其样本偏自相关函数有如下性质;

~当样本容量T趋于无穷大是,P阶第P个权重收敛于0

~当间隔L>阶数,收敛于零

~当间隔L>阶数,L阶第L个权重的方差1/T,

当这些结果表明AR(P)序列的样本偏自相关函数是P步截尾的

1.2.2信息准则

其实有很多个信息来确定AR过程的阶P,不过用的比较比较多的就两个,一个是赤池信息准则,

Clipboard Image.png

另外一个是施瓦茨-贝叶斯信息准

Clipboard Image.png

这两个信息都是对变量多少的好坏一个度量;

那么我们怎么选择呢?当然是当信息值越小越好,当变量的个数的存在使得信息值达到最小;

1.2.3模型检验

如果模型是充分的,则其残差序列应该是白噪声,根据统计量Q(m)服从m-g的卡方分布,其中g为模型的变量个数;

2.R语言的模型建立

下面我使用R语言和相关软件包做一下时间序列的一些实践;这里我使用的添加包是quantmod,这个包是十分强大,这个包允许用户与互联网连接,用户可以使用一些命令符来接访问雅虎和谷歌财经的日股票数据;我使用函数getSymolsl来获取美国失业率的时间序列;

2.1问题描述和目标

为了预测未来的美国失业率,衡量美国目前就业市场情况的走向,这里我纠正一下,失业率根据经济学来说其实来说很多东西有关联,单单是用时序去预测说服力不是很强,这里因为是作为案例介绍。

2.2数据说明

这里面我使用的是R语言添加包里的获取的美国失业率,从1948年1月1日-2016年6月1日的月度时序数据

2.3数据加载到R中

因为这个数据是我们根据添加包获取的,所以只要几行的命令行,就可以了,并且我们查看数据的前六行

install.packages("quantmod")
library(quantmod)
getSymbols("UNRATE")
head(UNRATE)

Clipboard Image.png

2.4数据可视化和概括

这个部分主要是让我们先了解一下数据的一些统计性质,以及失业率的走势;

summary(UNRATE)

Clipboard Image.png

在使用dim()函数看看一下这个数据集的体量大小

dim(UNRATE)

Clipboard Image.png

从以上面的结果看时间跨度是从1948年开始到2016年,总共有822条记录,并且只有一个失业率变量,失业率最小在2.500,最大的时候10.800

当然还有更详细的,这时候我们使用fBasics包的basicStats函数得到更加详细的结果

library(fBasics)
basicStats(UNRATE)

Clipboard Image.png

以上的结果我就不一一解读了,接下来我们这时候在通过折线图来展示失业率的走向

plot(UNRATE)

Clipboard Image.png

这折线图告诉我们的失业率一直存在波动,总体维持在失业率为6的幅度波动,最小的时候是在1955年左右的时候,最大是在1982年左右;

这时候我们看一下失业率的分布如何

hist(UNRATE,prob=T)

Clipboard Image.png

从上面的柱形图来看,我们能观察的得到失业率的分布大致属于一个正态分布,主要分布在4-6之间;

由于只有一个变量,其他的环节都节省了

2.5获取模型

这里主要写简单自回归模型,为此我们需要先确定阶数,所以我们先看看它几阶的

acf(UNRATE)

Clipboard Image.png

上面的结果我们,时间序列存在很严重的自相关性;这时候我们用偏自相关函数确定一下AR的阶数

pacf(UNRATE)

Clipboard Image.png

从上面的这个结果上看AR模型6就可以了,所以我们接下来就使用ar函数建立自回归模型

ar(UNRATE,FALSE,6)

Clipboard Image.png

上面结果都是显示滞后阶数的系数,右下角是西格玛的估计值;OK,简单的AR建模就说到这里;后面在说模型如何预测,评估等等

推荐 4
本文由 夏尔康 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

1 个评论

写的很详细。

要回复文章请先登录注册