用spss如何进行时间序列预测(时间序列分析方法)(1)

Photo from pixabay

本篇文章你可以了解什么?

1 序言

关于时间序列的文章,一陈更偏向实验操作,也就是说,分享的文章会有基础原理,大量实验操作,对于原理推导的数学知识相对简化(实验向)。

时间序列是数理统计中应用性较强的分支之一,专门用于处理与时间有关的数据。可以试想一下,我们身边有哪些和时间相关的数据?

  • 经济是否会随时间发生变化,今年巴菲特一个月不也见证了无数个人生第一次

  • 气象是否也是,阴晴冷暖,春夏秋冬,回家是棉袄,回学校却不得不穿上短袖

  • 现在的新型冠状病毒疫情,确诊人数、疑似病例、境外输入等等都会随着时间发生变化,流行病理学家所做的感染预测,不正是基于时间序列统计分析出的

那么,时间序列是不是也很好理解了,简单来说,时间序列就是按照时间先后发生的次序观察到的数据序列。时间序列也可以称作时间数列

2 时间序列严格定义

当然,时间序列也有一个严格的定义,定义如下:

设T是离散的时间集,当t∈T时,X(t)是一随机变量,则称{X(t),t∈T}为时间序列[1]

注意概念中需要注意T是离散的时间集,其实时间集也可以是一个连续集,我们在进行时间序列分析时可以将连续的时间集离散化,一陈画了张图帮助你理解。时间集的取值为:整数集Z或正整数集N 或非负整数集N,常用Xi表示X(t)

用spss如何进行时间序列预测(时间序列分析方法)(2)

连续的时间集离散化

离散化后的数据,X(1),X(2),X(3)……,便是我们想要的时间序列。

  • 整数集Z:{…,-1,0,1,…}

  • 正整数集N : {1,2,3,…}

  • 非负整数集(自然数)N: {0,1,2,3,…}

插播个小故事:整数集为什么用 Z 表示呢?(via:知乎 思维数学)

自然数集 N 是 英文natural number(自然数)的第一个字母;

实数集 R 是real number(实数)的第一个字母;

复数集 C 是complex number(复数)的第一个字母;

有理数集 Q 是quotient 的第一个字母,那 Z 呢?

整数集 Z 其实不是英文词汇的缩写,而是德语 Zahlen 的首写字母。前几个都是英文缩写,唯独整数集 Z 是德语字母的缩写。历史上近代以来的数学帝国依此是法国、德国、英国、俄罗斯、美国,其中德国在数学中的地位亦不可小觑。大名鼎鼎的数学家希尔伯特、康托、克莱因都是德国数学强盛时期的代表,在他们之前的“数学王子”高斯也是德国人。

3 为什么要离散化?

在大部分(保守一点)数据挖掘软件的算法中,要求数据是分类属性形式,也就是数据离散。因此常常需要将连续属性的数据通过断点进行划分,最后归属到不同的分类,即离散化。

将数据离散化后有以下好处

  1. 统计算法的计算效率能够得到提升

  2. 可用于将模型进行分类计算

  3. 给予距离计算模型(k均值、协同过滤)中降低异常数据对模型的影响

  4. 可用于图像处理中的二值化处理

另外,离散化也可以用于已经离散化的数据,就是值域的重新划分,一切都是看研究的需要

4 时间序列分析的意义

时间序列分析则是对我们得到的时间序列进行观察、研究,找寻它变化发展的规律,预测它将来走势的分析。

我们可以发现两个关键词:发展规律预测走势

我们来举个栗子:

比如在金融行业的时间序列分析中,我们可以研究哪些发展规律,预测哪些走势呢?我们来看看证券,证券是具有随时间波动的特性,从牛市到熊市,再从熊市到牛市,出现熊市和牛市的时候,是否就是价格波动比较大的时候呢,除了牛市和熊市的时候,价格波动是不是还有一段时间波动幅度小呢。所以在描述这类风险资产(股票、期权),我们需要引入多个变量来解释这种情况,看能否发现规律,预测将来的走势。不过,对于这类预测来说,方差(多个变量对结果的解释效度)往往也会随着时间变化,导致我们的规律和预测有时候不怎么可靠。

既然不那么可靠,为什么我们还有研究这个规律并做预测呢?有一个词叫做天真,用在这特别合适。当我们采用规范的方法,比如文章所说的时间序列分析后,我们至少会对我们所做的事情有一个评估,是否在我们承受的风险范围内,是的话,就去做,不是,就放弃。这便成了我们投资行动的风向标。如果什么都不做,那你可能要动用量子力学了,遇事不决,量子力学。

我们可以再来看一个预测的案例:https://v.qq.com/x/page/v3074x86ola.html

用spss如何进行时间序列预测(时间序列分析方法)(3)

为什么现在不能开学?看这个视频就知道了!(2020-03-01)

当然,还有很多例子,就不一一列举了,截张图给大家看一下。可以发现时间序列的分析运用在生产生活的各个领域,毕竟,谁不和时间相关呢?

用spss如何进行时间序列预测(时间序列分析方法)(4)

以“时间序列”为主题词在中国知网上检索我国的核心期刊

5 探讨个问题:什么事件是可以被预测的?

我们都知道,不是什么事情都可以被预测的,明天的号码预测成功试试?显示不那么靠谱,但是也有一些事情,比如,明天的太阳从东边升起,这个就很好预测,那么问题来了,什么事情是可以被预测的呢?

我们可以讲靠谱的预测归结为三要素:[2]

  1. 因素如何影响我们的结果

  2. 我们拥有多少数据

  3. 我们的预测是否会影响我们预测的结果

综合上述的三个因素,我们就可以知道哪些东西的预测是靠谱的,哪些事物的预测是不靠谱的或者较难预测的。例如我们可以很好的预测我们的用电情况,因为这三个条件是可以较好的满足的,用电需求往往由温度,节假日和经济条件等决定,所以我们可以找到绝大部分影响我们预测结果的因素(第一条满足);我们拥有较大量的历史用电数据和天气等数据(第二条满足),我们有足够的能力开发一个好的模型将用电需求和关键的因素相结合,而且我们的预测结果对于我们的模型影响不大(第三条满足),所以最终我们的预测结果可以非常的好。

但是也有反例,例如大家天天讨论的股票的预测,虽然我们拥有较多的历史股票数据(第二条满足);但是我们对于每个因素对于股票价格的影响的贡献却是未知的,同样的我们对于股票的预测也会影响未来的股票的价格,例如有很多人预测股票价格会上涨,就会有很多人选择购入对应股票,而此时的股票的价格毫无疑问会受到很大的冲击,所以我们的模型的预测结果往往并不是总是很好。

总的来说,只要模型预测的结果比随机猜测的结果好,我们就认为该事情是可以预测的。好的预测模型往往能从历史数据中挖掘或近似找出数据的潜在关系。

6 时间序列分析方法

时间序列分析在早期主要有以下两个分析方法:

  • 频域( Frequency Domain)分析方法

  • 时域(TimeDomain)分析方法

所谓频域分析方法,也称为“频谱分析”或者“谱分析”方法,是着重研究时间序列的功率谱密度函数,对序列的频率分量进行统计分析和建模。 由于谱分析过程一般都比较复杂,其分析结果也比较抽象,不易于进行直观解释,所以一般来说谱分析方法的使用具有较大的局限性。

时域分析方法的基本思想是源于事件的发展通常都具有一定的惯性,这种惯性可以使用统计语言中的相关关系来描述序列,也就是说序列具有统计意义。时域分析的重点就是寻找这种统计规律,并且拟合适当的数学模型来描述这种规律,进而利用这个拟合模型来预测序列未来的走势。 相对于频域分析方法,时域分析方法具有比较系统的统计学理论基础,操作过程规范,分析结果易于解释。随着计算技术的飞速进步,也极大的推动了时间序列分析的发展。[3]

鉴于此,我们现在进行时间序列分析的方法主要采用时域分析方法进行。

7 时域分析方法的发展过程(简)

时域分析方法的发展大致可以分为三个阶段:基础阶段、核心阶段与完善阶段。

基础阶段:

  • G.U.Yule(1927):AR模型

  • G.T.Walker(1931):MA模型,ARMA模型

核心阶段:

G.E.P.Box 和 G.M.jenkins

  • 1970年,出版《 Time Series Analysis Forecasting and Control》

  • 提出ARIMA模型( Box-jenkins模型)

  • Box- Jenkins模型实际上是主要运用于单变量、同方差场合的线性模型

完善阶段:

异方差场合

  • Robert F.Engle,1982年,ARCH模型

  • Bollerslov,1985年GARCH模型

多变量场合

  • C.Granger,1987年,提出了协整( co-integration)理论

非线性场合

  • 汤家豪等,1980年,门限自回归模型

8 时间序列的预处理

进行时间序列分析,我们希望序列是平稳的且非随机的,若序列是完全随机的,那么我们也只能终止分析,提取不了有用的信息。

所以我们在研究时间序列之前,首先要对其平稳性和随机性进行检验,目的是对平稳且非随机序列进行研究。

然后根据检验结果可以将序列分为不同的类型,对于不同类型的序列有不同的分析方法。

用spss如何进行时间序列预测(时间序列分析方法)(5)

操作套路[4]

时间序列的预处理主要包括以下两个部分:

  1. 平稳性检验

  2. 纯随机性检验(白噪声检验)

下面详细讲以下预处理:

8.1 平稳性检验

8.1.1 平稳时间序列的定义

  • 过程是平稳的——随机过程的随机特征不随时间変化而变化,且波动范围有限

  • 过程是非平稳的——随机过程的随机特征随时间変化而変化

  • 满足下图条件的序列称为宽平稳序列

用spss如何进行时间序列预测(时间序列分析方法)(6)

宽平稳序列条件

宽平稳条件解读(对应上图):

  1. 二阶矩阵是有限的,存在的

  2. 期望是一个常数,不随时间变化

  3. 协方差,和时间起点没关系,只是和时间间隔有关系

8.1.2 平稳时间序列的意义

  • 平稳性极大地减少了随机变量的个数,并増加了待估変量的样本容量

  • 极大地简化了时序分析的难度,同时也提高了对特征统计量的估计精度

8.1.3 平稳性的检验:三种检验方法

  • 时序图检验:根据平稳时间序列均值、方差为常数的性质,平稳序列的时序图应该显示出该序列始终在一个常数值附近随机波动,而且波动的范围有界、无明显趋势及周期特征;

  • 自相关图检验:平稳序列通常具有短期相关性。该性质用自相关系数来描述就是随着延迟期数k的増加,平稳序列的自相关系数会很快地衰減向零,并在零附近随机波动,而非平稳序列的自相关系数衰减的速度比较慢。

  • 单位根检验:如果存在单位根就是非平稳时间序列。

8.2 纯随机性检验(白噪声检验)

纯随机性检验也称为白噪声检验,一般是构造检验统计量来检验序列的纯随机性,常用的检验统计量有Q统计量、LB统计量。[4]

白噪声:纯随机波动,无法进行预测的信息。有点像90年代电视剧那种雪花效果,就是一种白噪声信息。

用spss如何进行时间序列预测(时间序列分析方法)(7)

白噪声

8.2.1 检验原理

如果一个时间序列是纯随机的,得到一个观察期数为n的观察序列,那么该序列的延迟非零期的样本自相关系数将近似服从均值为零方差为序列观察期数倒数的正态分布(如下图),ρ为自相关系数

用spss如何进行时间序列预测(时间序列分析方法)(8)

方差为序列观察期数倒数的正态分布

8.2.2 假设条件

  • 原假设:

用spss如何进行时间序列预测(时间序列分析方法)(9)

  • 备择假设:

用spss如何进行时间序列预测(时间序列分析方法)(10)

如果自相关系数ρ为零,或在零周围波动,则原假设成立,该序列为纯随机序列。

如果自相关系数ρ不为零,则备择假设成立,该序列为不是纯随机序列,可以进一步进行平稳性分析。

用spss如何进行时间序列预测(时间序列分析方法)(11)

8.2.3 检验统计量

  • Q统计量

用spss如何进行时间序列预测(时间序列分析方法)(12)

  • LB统计量

用spss如何进行时间序列预测(时间序列分析方法)(13)

9 SPSS中时间序列分析的预处理操作

工欲善其事必先利其器,接下来说一说我们进行时间序列分析可能会用到的一些工具。

常用软件有EVIEWS、SAS、SPSS、Matlab、Python、R、S-plus、Gauss、TSP等等,大家可以选取自己喜欢的工具进行时序分析就好了。

这里给大家介绍一下SPSS中时间序列如何操作,也建议初学者进行学习。

9.1 纯随机序列(白噪声序列)

生成白噪声方法:用Excel中的RAND()函数生成均匀分布(0-1分布)序列,然后以此序列作为函数值域,用正态分布函数的反函数NORMINV()相应的得到白噪声序列。

判断具体步骤如下:

用spss如何进行时间序列预测(时间序列分析方法)(14)

1.使用RAND()函数

用spss如何进行时间序列预测(时间序列分析方法)(15)

2.计算正态分布函数的反函数值,分布概率选择随机值,算术平均值和标准偏差任意

用spss如何进行时间序列预测(时间序列分析方法)(16)

3.将年份和反函数值导入SPSS

用spss如何进行时间序列预测(时间序列分析方法)(17)

4.选择分析-预测-自相关

用spss如何进行时间序列预测(时间序列分析方法)(18)

5.将变量导入对应的模块,点击确定

用spss如何进行时间序列预测(时间序列分析方法)(19)

6.获得自相关图

解读:

  • 左图中自相关系数ρ在上下波动,且显著性Sig>0.05,故该序列为白噪音序列。

  • 同样,右图可以更直观的看出ρ的变化范围。直条高低代表自相关系数的大小,横轴1-16代表自相关的阶数,上下线之间的为不具有统计学意义的。

9.2 平稳性检验

这里引用《时间序列与多元统计分析》书中的一个例子[1],下表是我国某地区一段时期农业产值数据表,应用SPSS进行预处理。

用spss如何进行时间序列预测(时间序列分析方法)(20)

某地区农业产值数据表

第一步,进行白噪声检验,检验方法同上,这里给出自相关图的结果

用spss如何进行时间序列预测(时间序列分析方法)(21)

自相关图

解读:

  • 左图中自相关系数ρ不等于零,且显著性Sig<0.05,故该序列为非白噪音序列。

  • 同样,右图可以更直观的看出ρ的变化范围。直条高低代表自相关系数的大小,横轴1-16代表自相关的阶数,上下线之间的为不具有统计学意义的。

  • 同时,我们也可以观察到,自相关系数ρ在是逐渐变小,没有迅速变为零或在零附近波动,故该序列为非平稳序列。我们也可以画出序列图以作辅助验证。

第二步,画出序列图。

用spss如何进行时间序列预测(时间序列分析方法)(22)

分析-预测-序列图

用spss如何进行时间序列预测(时间序列分析方法)(23)

填入相应参数

用spss如何进行时间序列预测(时间序列分析方法)(24)

获得时序图

通过时序图,我们也可以看到原序列是有明显上升趋势的非平稳序列。

第三步,通过差分运算,看能否获得平稳序列

选择分析-预测-自相关,设置差分参数为1

用spss如何进行时间序列预测(时间序列分析方法)(25)

自相关参数设置

注意:应避免过度差分,过度差分会造成信息损失。

用spss如何进行时间序列预测(时间序列分析方法)(26)

获得自相关图

解读:

  • 自相关系数ρ不等于零,且显著性Sig<0.05,故该序列为非白噪音序列。

  • 从右图可以看出,ρ在差分算法后快速衰减为零,然后在零附近波动,可以判断我们的序列已经成为差分平稳序列,可以进行下一步选择模型的操作了。

最后,为了方便大家对时间序列进行进一步学习,在公众号回复【时间序列】,可以获取专业时间序列参考书籍3册。

以上,便是本篇文章的全部内容了,可能有描述不太准确的地方,欢迎大家批评指正。如果你喜欢一陈的文章,不要忘记点赞评论哦~

参考文献

[1]孙祝岭编. 时间序列与多元统计分析[M]. 上海:上海交通大学出版社, 2016.09.

[2]尘沙杰少.时间序列预测必备背景知识[DB/OL].kaggle竞赛宝典.2019.

[3]王黎明,王连,杨楠编著. 应用时间序列分析[M]. 上海:复旦大学出版社, 2009.09.

[4]魏洪鑫.时序数据分析有哪些套路[DB/OL].知乎.2016.

用spss如何进行时间序列预测(时间序列分析方法)(27)

,