时间序列分析
时间序列也称动态序列,是指将某种现象的指标数值按照时间顺序排列而成的数值序列。
时间序列分析大致可分成三大部分,分别是描述过去、分析规律和预测未来,
季节分解,指数平滑方法,ARIMA模型
基础知识
时间序列数据:同一个对象在不同时间连续观察所得到的数据
例如,每天的股票价格、每月的销售额、每小时的气温等。
时间序列的两个要素:时间要素和数值要素
时间序列根据时间和数值性质的不同,可以分为时期时间序列和时点时间序列。
时期序列中,数值要素反映现象在一定时期内发展的结果(一年内的GDP变化)
时点序列中,数值要素反映现象在一定时点上的瞬间水平(每天的体重变化)
区别在于时期序列相加后有意义,时点序列相加后没有意义
比如GDP10年的数据相加表示10年内的GDP增量
但是体重尼,10年的相加没有任何的意义
时间序列的数值变化有4个规律:长期变动趋势,季节变动规律,周期变动规律,不规则变动
T,长期变动趋势:长期表现为持续上升/持续下降的趋势
S:季节变动规律:以月,季度,周的周期的变动
C:周期变动规律:以若干年为周期
I:不规则变动:不可预知,没有规律,噪声项
一般的变动会是上面四个的叠加/乘积的呈现形式
(1)数据具有周期性时才能使用时间序列分解,例如数据是月份数据(周期为12)、季度数据(周期为4),如果是年份数据则不行。
(2)在具体的时间序列图上,如果随着时间的推移,序列的季节波动变得越来越大,则反映各种变动之间的关系发生变化建议使用乘积模型;反之,如果时间序列图的波动保持恒定则可以直接使用叠加模型;当然,如果不存在季节波动,则两种分解均可以。
基本原理:
1.数据的预处理
对于时间序列我们如果遇到了缺失值,根据缺失值的位置,有以下的处理方法
(1)在收尾的缺失值,可以直接删除
(2)如果在序列的中间,有5个方法来填补
1.序列平均值:用整个序列的平均数代替缺失值
2.临近点的平均值:用相邻若干个点的平均数来替换缺失值(默认为两个点)
3.临近点的中位数:用相邻若干个点的中位数来替换缺失值(默认为两个点)
4.线性插值:用相邻两个点的平均数来替换缺失值
5.邻近点的线性趋势:将时期数作为x,时间序列值作为y进行回归求缺失点的预测值
(在spss左上角转换里面的替换缺失值)
2.spss定义时间变量
(在左上角的定义日期和时间中,选择这个问题的周期)
这里的是年份和季度,第一个是2014年,第1季度
3,观察时间序列图判断是叠加还是相乘
时间序列图的创建(在分析中选择时间序列预测里面的序列图)里面的变量是销量,时间是DATE_
4.模型的选择
4.1季节性分解(要求要周期小于1年)的方式来建模
Spss中选择分析 中的 时间序列预测中的季节性分解,根据上面的分析,我们选择是加法,并且因为是季度的周期,周期是偶数
之后会生成4个变量:
ERR_1:表示不规则变动(I)
SAS_1:季节性调整后系列(T+C+I)
SAF_1:季节性调整因子(S)
STC_1:趋势循环成分(T+C)
得到季节因子:S
上面的4个数相加为0(如果是相乘的分析,相乘就是1)
第一二季度的季节因子为正第三四季度的季节因子为负,这说明该产品一二季度的平均销量要高于三四季度且第二季度的平均销量要高于全年平均水平20.930件,第四季度的平均销量要低于全年平均水平19.727件
最后可以选择生成的四个变量以及销量来绘图
4.2使用专家建模器来帮助我们选择最佳拟合模型
7大模型介绍
(1)simple模型:
使用条件不含有趋势和季节的成分,这里的模型只可以预测一期
关于平滑系数α的选取原则:
1、如果时间序列具有不规则的起伏变化,但长期趋势接近一个稳定常数,α值一般较小(取0.05-0.02之间)
2、如果时间序列具有迅速明显的变化倾向,则α应该取较大值(取0.3-0.5)
3、如果时间序列变化缓慢,亦应选较小的值(一般在0.1-0.4之间)
(2)霍特线性趋势模型
有霍特线性趋势模型和布朗线性趋势模型
使用趋势:有线性趋势,不含季节成分
如果α=β,就是布朗线性趋势模型
(3)阻尼线性趋势模型
使用条件:线性趋势逐渐减弱且不含季节成分
经验表明,Holt的线性趋势模型倾向于对未来预测值过高,特别是对于长期预测。Gardner和 McKenzie(1985)在霍特的模型基础上引入了一种阻尼效应用来缓解较高的线性趋势。
二者的区别可以看下图:
(蓝色的是霍特,红色的是阻尼)
(4)简单季节性模型
适用条件:含有稳定的季节性成分,不含趋势
(5)温特加法模型
含有线性趋势和稳定的季节性成分
(6)温特乘法模型
含有线性趋势和不稳定的季节性成分
4.3AR,MA,ARIMA模型
一元时间序列分析的模型
时间序列的平稳性(弱平稳)的三个条件:
(1)白噪声序列(扰动项)
是平稳时间序列的一个特例
(2)
差分方程:
某个时间序列变量表示为该变量的滞后项、时间和其他变量的函数,这丫那个的方程就是差分方程
滞后算子L有如下的性质:
所以有
(3)自回归AR(p)模型
自回归模型是用自身的滞后值来预测当前值
是讨论的平稳的时间序列模型,如果原来的数据不平稳,需要进行差分得到平稳的数据再进行建模
将其转化为齐次的特征方程,让y=x^t,
平稳的条件:
例子:
(4)移动平均MA(q)模型
移动平均模型通过过去的白噪声项来描述当前值
MA 模型假设时间序列是平稳的,即序列的主要统计属性,如均值和方差,不随时间变化
所以看出一阶段的移动平均模型可以转换为无穷阶的自回归模型,所以我们把这个性质叫做移动平均模型的可逆性
所以MA(1)模型可以很大程度的简化AR模型
只要q存在(是常数),MA(q)一定是平稳的
(5)ARMA(p,q)自回归移动平均模型
就是设法将自回归过程AR和移动平均过程MA结合起来,共同模拟产生既有时间序列样本数据的那个随机过程的模型。
ARMA模型的平稳性之和AR(p)相关
简单说就是p个解都小于1ork个等于1的解可以k阶差分为平稳的时间序列
(6)ACF自相关系数和PACF偏自相关函数
相关系数:
自相关系数:
如果是白噪声序列,那么ρ就是1(s=0)/0(s!=0)
偏自相关系数
ACF 和 PACF 相互补充,共同描述时间序列的相关性结构。它们从不同角度展示了时间序列各观测值之间的关联,为模型选择提供重要依据。
(7)模型的选择:AIC和BIC准则:
过拟合问题:加入的参数个数越多,模型拟合的效果越好,但这却是以提高模型复杂度为代价的。因此,模型选择要在模型复杂度与模型对数据的解释能力之间寻求最佳平衡
(T是样本的个数)
估计完成时间序列模型后,我们需要对残差进行白噪声检验,如果残差是白噪声,则说明我们选取的模型能完全识别出时间序列数据的规律,即模型可接受;如果残差不是白噪声,则说明还有部分信息没有被模型所识别,我们需要修正模型来识别这一部分的信息。
(8)自回归积分滑动平均ARIMA(p,d,q)模型
因为之前的都是讨论的平稳的过程,然而一个时间序列可能是含有d阶单位根的,所以我们要对数据进行差分处理,将其转换为平稳的时间序列后建模
(9)季节ARIMA(p,d,q) (P,D,Q)模型
下面是Spss时间序列的建模思路:
(1)处理数据的缺失值问题、生成时间变量并画出时间序列图
(2)数据是否为季度数据或者月份数据(至少有两个完整的周期,即两年),如果是的话则要观察图形中是否存在季节性波动:
(3)根据时间序列图大致判断数据是否为平稳序列(数据围绕着均值上下波动无趋势和季节性)
(4)打开Spss,分析--时间序列预测一创建传统模型,看看Spss专家建模器得出的最优的模型类型,
(5)如果最后的结果是ARIMA(P,0,q)模型,那么我们就可以画出时间序列的样本ACF和PACF图形进行分析;
如果得到的是ARIMA(p,1,q)模型,我们可以先对数据进行1阶差分后再用ACF和PACF图形分析;
如果得到的结果与季节性相关,那么我们可以考虑使用时间序列分解
如何使用专家建模:
分析中选择时间序列预测,选择里面的创建传统模型
变量中 可以在条件里面选择具体的模型和对离散值的处理
统计中
需要给出参数估算值
图中,可以勾选下面的选项
保存可以保存一列预测值
选项
- 预测值和拟合值是不相同的,预测值是将样本外年份的数据带入模型计算得到的,而拟合值是将样本的年份重新带入模型计算得到的。
- (2)这里保留残差的ACF和PACF图形可以帮助我们判断残差是否为白噪声,即该时间序列是否能被模型识别完全。
(1)一般比较两个模型的好坏,我们可以使用平稳的R方或者标准化BIC(BIC准则),这两个指标既考虑了拟合的好坏,又考虑了模型的复杂度;
(2)R方可用来反映线性模型拟合的好坏,越接近于1拟合的越准确。