时间序列预测 案例

想象一下,你的任务是:根据已有的历史时间数据,预测未来的趋势走向。作为一个数据分析师,你会把这类问题归类为什么?当然是时间序列建模。

从预测一个产品的销售量到估计每天产品的用户数量,时间序列预测是任何数据分析师都应该知道的核心技能之一。常用的时间序列模型有很多种,在本文中主要研究ARIMA模型,也是实际案例中最常用的模型,这种模型主要针对平稳非白噪声序列数据。

时间序列预测 案例

时间序列概念

时间序列是按照一定的时间间隔排列的一组数据,其时间间隔可以是任意的时间单位,如小时、日、周月等。通过对这些时间序列的分析,从中发现和揭示现象发展变化的规律,并将这些知识和信息用于预测。比如销售量是上升还是下降,是否可以通过现有的数据预测未来一年的销售额是多少等。

时间序列预测 案例

模型的一般形式如下式所示:

X_t=c+\alpha_1X_{t-1}+\alpha_2X_{t-2}+...+\alpha_pX_{t-p}+\varepsilon_t+\beta_1\varepsilon_{t-1}+...+\beta_q\varepsilon_{t-q}

1.1 适用条件

  • 数据序列是平稳的,这意味着均值和方差不应随时间而变化。通过对数变换或差分可以使序列平稳。
  • 输入的数据必须是单变量序列,因为ARIMA利用过去的数值来预测未来的数值。

1.2 分量解释

  • AR(自回归项)、I(差分项)和MA(移动平均项):
  • AR项是指用于预测下一个值的过去值。AR项由ARIMA中的参数p定义。p值是由PACF图确定的。
  • MA项定义了预测未来值时过去预测误差的数目。ARIMA中的参数q代表MA项。ACF图用于识别正确的q值
  • 差分顺序规定了对序列执行差分操作的次数,对数据进行差分操作的目的是使之保持平稳。ADF可以用来确定序列是否是平稳的,并有助于识别d值。

1.3 模型基本步骤

1.31 序列平稳化检验,确定d值

对序列绘图,进行 ADF 检验,观察序列是否平稳(一般为不平稳);对于非平稳时间序列要先进行 d 阶差分,转化为平稳时间序列

1.32 确定p值和q值

(1)p 值可从偏自相关系数(PACF)图的最大滞后点来大致判断,q 值可从自相关系数(ACF)图的最大滞后点来大致判断

(2)遍历搜索AIC和BIC最小的参数组合

1.33 拟合ARIMA模型 (p,d,q)

1.34 预测未来的值

2 案例介绍及操作

基于 1985-2021年某杂志的销售量,预测某商品的未来五年的销售量。

时间序列预测 案例

2.1 序列平稳化检验,确定d值

平稳性概念

假定某个时间序列是由一系列随机过程生成的,即假定时间序列 x_{t}( t = 1 , 2 , 3 , 4 , 5 ) 的每一个数值都是从一个概率分布中随机得到,如果满足下列条件:

  • 均值u是与时间t无关的常数;
  • 方差是与时间t无关的常数;
  • 协方差r_k ​是只与时间间隔K有关,与时间t无关的常数

则称改随机时间序列是平稳的,而该随机过程是平稳随机过程。

ADF思路

白噪声的过程是:X_t=w_t, w_t(0,\sigma^{2})

时间序列预测 案例

对于白噪声序列,基本是在均值附近较为平均的随机震荡。它满足正态分布,均值与方差都是与时间t无关的函数,它满足平稳性要求。

随机游走的过程是:X_t=X_{t-1}+w_t,X_t(0, t\sigma^{2})

时间序列预测 案例

对于随机游走,可以看到比白噪声平滑很多,并且呈现出一些“趋势性”的感觉。它的均值为0,方差与时间t有关,他不满足平稳性要求。

而随机游走的一阶差分是平稳的: △X_{t}=X_t-X_{t-1}=w_t,U_tN(0, \sigma^{2})

如果一个时间序列是非平稳的,它常常可以通过取差分的方法而形成平稳序列。

ADF 大致的思想就是基于随机游走的,X_t回归,如果发现p=1,说明序列满足随机游走,就是非平稳的。

下图是通过spsspro软件生成:

时间序列预测 案例

如何确定该序列是否平稳呢?

(1)临界值检验

临界值1%、5%、10%不同程度拒绝原假设的统计值和假设检验值t进行比较,t同时小于1%、5%、10%即说明非常好地拒绝该假设

(2)显著性检验p<0.05

本数据中,原序列的 ADF 假设检验值t为1.814, 大于三个level的统计值,所以是非平稳的。而一阶差分序列的 ADF 假设检验值t为-3.156,小于三个level的统计值,再来看显著性p的值为0.023<0.05,所以是平稳的。

经过二阶差分,与一阶差分相比,只是在显著性程度上扩大了,因此对于该序列,采用一阶差分比较合适。一般情况下,采用一阶、二阶差分就可以使序列变得平稳。

所以差分阶数d=1

2.2 确定p值和q值

2.21 绘制ACF 、PACF图

先来介绍几个概念:

拖尾和截尾

拖尾,顾名思义,就是序列缓慢衰减,“尾巴”慢慢拖着滑下来,或者震荡衰减

而截尾则是突然截断了,像个悬崖,指序列从某个时点变得非常小

专业点来说呢,就是:

如果样本自相关系数和样本偏自相关系数在最初的阶明显大于2倍标准差(下图虚线),而后几乎95%的系数都落在2倍标准差的范围内,且非零系数衰减为小值波动的过程非常突然,通常视为k阶截尾。

如果有超过5%的样本相关系数大于2倍标准差,或者非零系数衰减为小值波动的过程比较缓慢或连续,通常视为拖尾。

自相关系数(ACF)

ACF(k)=\Sigma_{t=k+1}^{n}\frac{(Z_t-\bar{Z})(Z_{t-k}-\bar{Z})}{\Sigma_{t=1}^{n}(Z_t-\bar{Z})^2}

自相关系数度量的是同一事件在两个不同时期之间的相关程度,形象的讲就是度量自己过去的行为对自己现在的影响。在这里可以通过自相关系数(ACF)图的最大滞后点来大致判断q 值。

偏自相关系数(PACF)

时间序列预测 案例

计算某一个要素对另一个要素的影响或相关程度时,把其他要素的影响视为常数,即暂不考虑其他要素的影响,而单独研究那两个要素之间的相互关系的密切程度时,称为偏相关。在这里可以通过偏自相关系数(PACF)图的最大滞后点来大致判断p 值。

下图是通过spsspro软件生成:

时间序列预测 案例
差分数据自相关图(ACF)
时间序列预测 案例
差分数据偏自相关图(PACF)

从上图可以看到:趋势序列 ACF 有 1 阶截尾,PACF 有 1 阶截尾尾。因此可以选 p=1, q=1。

通过拖尾和截尾对模型定阶,具有很强的主观性。

2.22 AIC、BIC准则

AIC 准则全称是最小化信息量准则

AIC=-2ln(L)+2K,其中 L 表示模型的极大似然函数, K 表示模型参数个数。

当样本容量很大时,采用BIC贝叶斯信息准则

BIC=-2ln(L)+Kln(n) ,其中 n 表示样本容量。

通过比较不同差分阶数的AIC、BIC的值,取两者最小值p、q

从评价准则的结果看:p = 0, q = 1 时,两者值最小,AIC为251.973,BIC为256.724。

2.3 拟合ARIMA模型 (p,d,q)

由上述步骤,我们已知d=1,p=0,q=1,故拟合模型为ARIMA(0,1,1)

采用多元线性回归,得到y(t)=4.996+0.671*ε(t-1)

2.4 预测

使用该公式,得到未来五年的杂志销量分别为285.097、290.093、295.089、300.085、305.081

3 案例工具实现

3.1使用工具

SPSSPRO—>【预测模型—>时间序列分析(ARIMA)】

3.11 案例操作

时间序列预测 案例

Step1:新建分析;

Step2:上传数据;

Step3:选择对应数据打开后进行预览,确认无误后点击开始分析;

时间序列预测 案例

step4:选择【时间序列分析(ARIMA)】;

step5:查看对应的数据数据格式,【时间序列分析(ARIMA)】要求输入1个时间序列数据定量变量。

step6:选择向后预测的期数。

step7:点击【开始分析】,完成全部操作。

3.12 分析结果解读

以下生成的结果来源于SPSSPRO软件的分析结果导出,SPSSPRO输出的结果中会给出智能解读结果,直接查看智能分析:

输出结果 1:ADF 检验表

时间序列预测 案例

图表说明:该序列检验的结果显示,基于字段年度销量:
在差分为 0 阶时,显著性 P 值为 0.998,水平上不要呈现显著性,不能拒绝原假设,该序列为不平稳的时间序列。 在差分为 1 阶时,显著性 P 值为 0.023,水平上呈现显著性,拒绝原假设,该序列为平稳的时间序列。
在差分为 2 阶时,显著性 P 值为 0.000,水平上呈现显著性,拒绝原假设,该序列为平稳的时间序列。
(注意:在理论上,足够多的差分运算可以充分提取原时间序列中的非平稳确定性信息。但进行差分运算需要注意的是,差分运算的阶数不是越多越好。差分是对信息的提取、加工的过程,每次差分都会有信息的损失,所以差分的阶数需要适当,以免过度差分。)

输出结果 2:最佳差分序列图

时间序列预测 案例

图表说明:由于一阶差分后序列进行单位根检验的 P 值小于 0.05,说明一阶差分后序列是平稳数据,上图展示了原始数据 1 阶差分后的时序图。

输出结果 3:最终差分数据自相关图(ACF)

时间序列预测 案例

图表说明:由自相关图可知,一阶自相关系数很明显地大于 2 倍标准差范围,自一阶自相关系数后,其余自相关系数都在 2 倍标准差范围以内,我们可以判断自相关图为截尾。

输出结果 4:最终差分数据偏自相关图(PACF)

时间序列预测 案例

图表说明:由偏自相关图可知,一阶偏自相关系数很明显地大于 2 倍标准差范围,自一阶偏自相关系数后,其余自相关系数都在 2 倍标准差范围以内,我们可以判断偏自相关图为截尾。

输出结果 5:模型参数表

时间序列预测 案例

图表说明:由于通过自相关分析和偏自相关分析来判断 ARIMA 的参数存在人为主观性,SPSSPRO 基于 AIC 信息准则自动寻找最优参数,模型结果为 ARIMA 模型(0,1,1)检验表,基于字段:年度销量,从 Q 统计量结果分析可以得到:Q6 在水平上不呈现显著性,不能拒绝模型的残差为白噪声序列的假设,同时模型的拟合优度 R2 为 0.981,模型表现优秀,模型基本满足要求。(注意:一般来说,只检验前 6 期和前 12 延迟的 Q 统计量(即 Q6 和 Q12)就可得出残差是否是随机序列的结论。这是因为平稳序列通常具有短期相关性,如果一个短期延迟序列值之间不存在显著的相关关系,通常延迟之间就更不会存在显著的相关关系。)

输出结果 6:模型残差自相关图(ACF)

时间序列预测 案例

图表说明:上图展示了模型的残差自相关图,(ACF)若相关系数均在虚线(2 倍标准差)内,自回归模型(AR)残差为白噪声序列,时间序列要求模型残差为白噪声序列。很明显,残差的自相关系数均在虚线内。

输出结果 7:模型残差偏自相关图(PACF)

时间序列预测 案例

图表说明:上图展示了模型的残差偏自相关图(PACF),若相关系数均在虚线内,滑动平均模型(MA)残差为白噪声序列,时间序列要求模型残差为白噪声序列。很明显,残差的大部分偏自相关系数均在虚线内,即便第 9 阶与第 14 阶超过了 2 倍标准差,这可能是由于偶然因素引起的。

输出结果 8:模型检验表

时间序列预测 案例

图表说明:基于字段年度销量,SPSSPRO 基于 AIC 信息准则自动寻找最优参数,模型结果为 ARIMA 模型(0,1,1)检验表且基于 1 差分数据,模型公式如下: y(t)=4.996+0.671*ε(t-1)

输出结果 9:时间序列图

时间序列预测 案例

图表说明:上图表示了该时间序列模型的原始数据图、模型拟合值、模型预测值。从图可知,拟合序列趋势与真实序列趋势有着极大的相似性,说明拟合效果较好。

输出结果 10:时间序列预测表 ​​

时间序列预测 案例

图表说明:上表显示了时间序列模型最近 5 期数据预测情况。

4 结论

ARIMA 是用于单变量时间序列数据预测的最广泛使用方法之一,模型十分简单,只需要内生变量而不需要借助其他外生变量,但是,采用ARIMA模型预测时序,数据必须是稳定的,如果不稳定的数据,是无法捕捉到规律的。比如股票数据用ARIMA无法预测的原因就是股票数据是非稳定的,常常受政策和新闻的影响而波动。

5 参考文献

[1] Scientific Platform Serving for Statistics Professional 2021. SPSSPRO. (Version 1.0.11)[Online Application Software]. Retrieved from https://www.spsspro.com.

[2] 王燕.应用时间序列分析[M].北京:中国人民大学出版社 2005.

[3] 郑莉,段冬梅,陆凤彬,等. 我国猪肉消费需求量集成预测——基于 ARIMA、VAR 和 VEC 模型的实证[J]. 系统工程理论与实践,2013,33(4):918-925.