应用时间序列分析清华大学出版社电子版_数据分析模型9——预知未来的算法:时间序列分析...

7fbeca94c4c966ed6c3f6875ed36c06b.png

今天我们来学习预知未来的算法:时间序列分析。本文主要介绍一些时间序列的基本理论。

未经许可请勿转载

更多数据分析内容参看这里

一、时间序列简介

我们先来看两个例子,一个是上海证券交易所的指数走势,另一个是我国的国内生产总值走势,这两个都是时间序列的例子。

7475727bc5a81f7c1ab94f3a78509478.png

简单来说,时间序列是按照时间顺序,按照一定的时间间隔取得的一系列观测值,比如我们上边提到的国内生产总值,消费者物价指数,利率,汇率,股票价格等等。时间间隔可以是日,周,月,季度,年等。

那么如何进行时间序列分析分析呢?通常来说我们尝试找出序列值在过去所呈现的特征模式,假定这种模式在未来能够持续,进而对未来进行预测。时间序列基本特征包括:趋势性,序列相关性,随机性。

在时间序列的特征模式找到后,就需要用特定的方法把这些特征抓取出来。时间序列模型预测方法包括算数平均法,移动平均法,加权移动平均,指数平滑法,自回归和移动平均法(ARIMA)。我们先来看一下前四种方法,下面是一个利用上年数据来预测而下一年牛仔裤销量的例子。算数平均法就是使用前12个月的算数平均数作为13期的预测值。移动平均法认为远期的数据对于预测未来的数值价值不大,因此选用最近m个月的算数平均数作为预测值。加权移动平均法则则移动平均法的基础上,为每一期的数值加上了权重。指数平滑法则对每一期的权重进行平滑处理,以这个例子为例,12期的权重为0.5,11期的为0.5的平方,依次类推,从而保证了距离预测期越远的数据作用越小。

576132530cb8502265d82589dde1e7c8.png

前面这四种预测方法都比较简单,后面我们会重点介绍第五种方法——自回归和移动平均(ARIMA),该模型的优点是信息浪费最少,集趋势性,相关性和随机性于一身。

二、时间序列基本概念

我们解释一下前面提到的时间序列的几个特征。趋势性是指序列整体上呈现单调性,如平稳、上涨或下跌,先提一句,ARMA模型是平稳的时间序列模型,在建模前必须去除趋势性。序列相关性是指当期的序列值和前期某个或某些序列值线性相关。随机性是指序列在一定程度上呈现不确定性,由于模型并不能捕捉到现实世界中的所有特征,总会有一些噪声的存在,这些噪声我们称之为白噪声。

(1)时间序列的表达

T时刻的时间序列值表示为:

。一个时间序列可以表述为:
。T-1时刻的序列值表述为
,或者X[t-1]。

(2)时间序列的差分

一阶差分:

二阶差分:

K步差分:

1阶差分可以剔除趋势型的影响,如下所示,蓝色的上涨趋势曲线在进行一阶差分后变成了比较平稳的黄色线。一般来说,二阶差分后的序列基本会变得水平。

268d370e0f0cdc4280a1d07c0c081043.png

k步差分可以剔除季节性的影响,下面是一个羽绒服销售的例子,可以看出每到4季度羽绒服的销量就呈现大幅的增长。为了剔除季节的影响,我们可以进行4步差分,在选取步数时可用用两个波峰之间间隔的周期作为依据。4步差分后的结果已经比较水平。

5645fae8ffdc20ecfc359fde6db3cd67.png

总而言之,阶次差分可以剔除趋势性影响,而步长差分可以剔除季节性的影响。

(3)序列相关性的衡量

我们使用自相关系数和偏自相关系数来衡量序列之间的相关惯性。自相关系数(ACF)又称全相关系数,用于度量同一事件在不同时期的相关程度。

,其中r(h)为h期的协方差函数,r(0)为方差。

偏自相关系数(PACF)又称条件相关系数,用于度量去除中间变量影响后的相关程度,假设

通过
产生关联,PACF即为去除
的关联后两者的相关程度。滞后K阶偏自相关系数是指在给定中间K-1个随机变量
的条件下(剔除了中间K-1个随机变量的干扰后),
影响的相关度量。经过推导,ARMA(p,q)序列的偏自相关系数为:

(4) 序列平稳

一个时间序列是平稳的,必须满足如下条件:

,对于所有t而言,序列的期望值为常数, 如下图左侧的图形满足,右侧不满足。

ca82f75eeb0604dcb6efe7be13ec83b9.png

,对于所有t,序列方差为一常数,如下所示。

60b24e0b2797e866f28481f9c5c8ea20.png

,对于所有t以及h>0,序列的协方差是有h唯一决定的函数,即h阶的相关性只与h有关,与时刻t无关,如:

e9e9d8c057cc8757232d1bd059cbad88.png

根据一个序列是否平稳,时间序列可以分为平稳序列和非平稳序列。平稳序列包括白噪声序列、 AR(p) 序列 , MA(q)序列 , ARMA(p,q) 序列,非平稳序列比如 ARIMA(p,d,q) 序列。下面是两个例子。

17cb181103e916fe50195e088d8be994.png

三、常用的时间序列模型

(1)白噪声序列

白噪声模型服从均值为0,方差为

的正态分布,可以用如下的数学模型来表示:
。白噪声序列是最简单的时间序列,简单来说它是一列独立分布的正态序列。具体来说,它由于以下几个特征: 无序列相关性,无趋势性,是随机的。白噪声的每一个时序点都是服从正态分布的。

白噪声序列无规律可循,在均值处反复震荡,无趋势性

e6de1f1b907b8fc491874e6e21b869ed.png

对白噪声序列而言,ACF和PACF图中,95%的数值会落入两个标准差的蓝色区域内。

37701f53672e3989eb8b748b3b4960b8.png

(2)自回归模型

自回归模型是指当前时刻的时序值可由其过去值的线性组合加上一个白噪声,建里自回归模型的目的就是要搞清过去几期的历史值会影响当前值。自回归模型的特征是:没有趋势性,有相关性和随机性。 自回归模型可用如下公式表示:

一阶自回归模型是最简单的自回归模型,AR(1)可以表述为::

。AR(1)模型是用t时刻时间序列值来预测将来,该模型的自相关系数是:
, 偏自相关系数是:
。下图是一个AR(1)模型的散点图和时序图,可以看出其没有趋势性。

9681af0c2ac797f8e24a299b1bbed8e5.png

AR(1)模型的ACF 呈现指数下降趋势,而PACF 在一阶处出现峰值,之后截断。比如对于如下的一阶自回归序列,ACF图和PACF图如下所示。

6e116c7707aa380440f76710bb16672c.png

我们再来看一下AR (2)的ACF和PACF图,同样其自相关图呈现指数下降趋势,而PACF 在二阶处出现峰值,之后截断。

15e2946f7c4b999830fc84afd1d3b98f.png

小结一下,自回归模型的 ACF 呈指数下降趋势,PACF 显示出剧烈地下降,并截断在 P 阶,PACF 截尾的阶数即为 AR 模型的阶数。

(3)移动平均模型

移动平均序列指的是当前时刻的时序值是过去 q 阶白噪声的线性组合,建立MA(q)模型的目的在于找出过去几期的白噪声影响了当前值。模型特征是没有趋势性,有相关性和随机性。MA(q)模型可表示为:

MA(1)一阶移动平均模型是最简单的移动平均模型,模型表述为

,该模型是利用t时刻的冲击变量值来预测将来。MA(1)模型的自相关系数为

;
。MA(1)的偏自相关系数为

35550d136f2f59051f64ee306d5e5199.png

MA(1)时间序列在均值出反复震荡,没有趋势性,如下图所示

1122030f3c64eea3b5df32aea4267c3f.png

在ACF和PACF上,MA(1)序列呈现下列特征:ACF在一阶处截断,PACF呈现指数下降趋势。

5e708f07aa41a5e22bda9db131961620.png

推而广之,如何识别一个MA的阶数q呢,如果 ACF 显示出一个剧烈地下降( q 阶截尾),并且 PACF 呈指数下降趋势,即为移动平均模型,ACF 截尾阶数即为 MA 模型阶数。

(4)自回归移动平均模型

ARMA模型是更普遍的一类模型,ARMA(p,q)模型就是AR(p)和MA(q)模型的组合,其公式:

ARMA模型从公式上可以看出,过去p期序列值(历史值)和q期冲击(去除历史值后其它因素的影响)对t期值有影响,我们要做的就是找出这些影响。ARMA具有以下特征:无趋势)性(序列是平稳的),有相关性和随机性。

下面我们来看一下最简单的ARMA模型,ARMA(1,1)一阶自回归移动平均模型,

,该公式的意思是说当前值会受到过去一期值的影响和过去一期冲击效应的影响,我们建模的目的就是要找出这些影响,从而对未来进行预测。下面的散点图和时序图描述了ARMA(1,1)的特性,即序列在均值处反复震荡,无趋势性。

879f6cbdeedf4fb5854d0bcf5e71d79d.png

我们再来看一下它的ACF和PACF图,ACF 呈指数下降趋势,PACF 呈现指数下降趋势。

362ef6fa2a83b273d08c37e6d4cfadb0.png

如何识别一个 ARMA 的阶数 p 和 q,由于 ACF 与 PACF 均呈现指数下降,判断阶数需要靠不断尝试。在模型的不同尝试中,通过选择 AIC 较小的为最优模型。

,k 为参数数量, RSS 为残差平方和

总结一下,AR,MA和ARMA模型的识别和定阶。

33b342385d5097f77d3588e85d3d469a.png

(5)ARIMA模型

前面四个模型都是对平稳序列的拟合,ARIMA则是对非平稳序列的拟合。ARIMA 是在 ARMA 基础上发展而来的更加综合性的模型,其特征包括: 趋势性, 序列相关性和随机性。ARIMA模型更加接近我们生活工作中的实际,因此应用更为普遍。

我们来看一下ARIMA(1,1,0)模型的一些特征。

序列有很强的趋势性。

f1ad966ee63e8a16d066635fff05bbed.png

ACF下降及其缓慢

409b0fee6128a2cf4a7f3f9ec3160095.png

对于ARIMA模型,我们可以进行差分处理。差分后的 ARIMA 即为一个 ARMA 模型,可以利用 ACF 和 PACF 图像判定阶数。对于ARIMA(1,1,0) 一阶差分后的 ACF 和 PACF如下:

ecc8ea4f3435ba70a2551828e4261e22.png

一般来说,ARIMA(p,d,q)经过d次差分后的序列就是一个平稳的ARMA(p,q)序列,即

a05d0c6c50da6871c81a4a44611d0e14.png

四、ARIMA预测的评价指标

ME (误差 ): Mean(Actual Predict)

MAE( 绝对误差 ) : Mean(abs(Actual Predict))

MAPE( 百分比误差 ): Mean(abs(Actual Predict)/Actual)

MSE( 均方误差平方和: Mean((Actual Predict)^2)

RMSE( 标准差): Sqrt(Mean((Actual Predict)^2))

在评价指标的选取上,通常会结合分析的需求以及其他的时间序列模型方法,选择某个评价指标进而选择使该评价指标最小的模型方法。R中有专门的预测分析包 forecast 来帮助我们对未来期的数据进行预测。

五. Box-Jenkins建模

ARIMA模型全称为自回归移动平均模型(Autoregressive Integrated Moving Average Model,简记ARIMA),是由博克思(Box)和詹金斯(Jenkins)于70年代初提出的一著名时间序列预测方法,所以又称为box-jenkins模型、博克思-詹金斯法。我们先来看一下Box-Jenkins建模的流程。

27178bdf9294373e68e0875c44ab1930.png

首先进行平稳性的判断,如果该序列是平稳的则直接进入第二步模型的识别,否则需要差分处理。在识别模型后,我们估计模型的参数。参数估计出来后我们要判断该模型的是否合理,主要通过检验残差序列是否为白噪声序列进行,白噪声序列是没有相关性的,也就意味着我们的模型已经把相关因素都提取出来了,可以用于后续的预测,否则我们的模型需要调整。最后我么能使用模型进行预测。下面我们具体来看一下每个步骤的细节:

(1)平稳性的检验

除了做时序图,另一种方式就是单位根检验。

, 即原假设为:序列至少存在一个单位根。备择假设为:没有一个单位根。

• 若p>=α, 则不能拒绝原假设,即存在单位根,序列非平稳

• 若p<α, 则拒绝原假设,即不存在单位根,序列平稳。

下图中,p值为0.6722远大于0.05,因此不能拒绝原假设,即序列非平稳。

ca7dae018b1710188c1bbc5388ec6ba7.png

(2)差分

一阶差分后的结果如下,通过时序图和Dickey-Fuller检验,新的序列是平稳的。

5a6085ff6b8b2e191dfb4c0cafb34f81.png

b955fb7c0f2b353c32a01a10d161e084.png

(3)模型识别

ACF指数递减,PACF一阶截尾,因此是ARMA(1,0)模型,原始序列就是ARMA(1,1,0)模型。

2e3cbed1583ccbabb6348bb85e9648ae.png

(4) 模型拟合 ARIMA(1,1,0)& 白噪声检验

白噪声检验 (Ljung Box 检验)。

即原假设为:滞后 m 阶序列值相互独立,自相关函数均为零。备择假设为:滞后m 期的序列之间存在相关性

若p>=α, 则不能拒绝原假设,序列为白噪声

若p<α ,则拒绝原假设,序列为非白噪声

下图中,Ljung-Box检验的p值大于0.05,不能拒绝原假设,序列为白噪声

c592969f09f3a5b333d9e1aff471b6e4.png

(5)预测

77ca9d94733819d2286d9bbe39d7a8d6.png

b788b1254c11774aadf2655366fc7384.png
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值