想象一下,你的任务是:根据已有的历史时间数据,预测未来的趋势走向。作为一个数据分析师,你会把这类问题归类为什么?当然是时间序列建模。 Show 从预测一个产品的销售量到估计每天产品的用户数量,时间序列预测是任何数据分析师都应该知道的核心技能之一。常用的时间序列模型有很多种,在本文中主要研究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 适用条件
1.2 分量解释
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 ) 的每一个数值都是从一个概率分布中随机得到,如果满足下列条件:
则称改随机时间序列是平稳的,而该随机过程是平稳随机过程。 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 有 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 检验表 图表说明:该序列检验的结果显示,基于字段年度销量: 输出结果 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. |