首先,对时间序列概念有一个大致的了解,即根据变量过去的观测值来预测同一变量的未来值,就是根据已有的历史数据预测未来。
- 1、现实的、真实的一组数据,而不是数理统计中做实验得到的。既然是真实的,它就是反映某一现象的统计指标,因而,时间序列背后是某一现象的变化规律。
- 2、动态数据。
- 时间序列主要考虑的因素是:
- 长期趋势(Long-term trend)
- 时间序列可能相当稳定或随时间呈现某种趋势。
- 时间序列趋势一般为线性的(linear),二次方程式的 (quadratic)或指数函数(exponential function)。
- 季节性变动(Seasonal variation)
- 按时间变动,呈现重复性行为的序列。
- 季节性变动通常和日期或气候有关。
- 季节性变动通常和年周期有关。
- 周期性变动(Cyclical variation)
- 相对于季节性变动,时间序列可能经历“周期性变动”。
- 周期性变动通常是因为经济变动。
- 随机影响(Random effects)
- 指数平滑方法(Exponential smoothing models):
- ARIMA模型:
下面就以一个实例在spss中演示时间序列建模的整个流程
在spss中打开数据源,这是某超市2004-2015年的销售数据
1、首先检查有没有缺失数据
2、在图表构建器中观察销售额随时间变化趋势
发现整体趋势向上,销售额逐年增加,在打开分析——预测——序列图,输入变量和时间轴标签
可以看到销售额存在季节性波动,所以需要定义日期,打开 数据——定义日期,定义为年-季度-月份
接着进行自相关分析,【分析】--【预测】--【自相关】。
H0:不相关
P值均小于0.05说明这个序列不是白噪声
这些数据间是有关联性的
是有自相关的
3,打开分析——预测——周期性分解,进行季节因素分解,并观察数据季节性变化趋势
4、构建预测模型
打开 分析——预测——创建模型,如图
先在方法中选用指数平滑法——简单,此时忽略季节因素
输出模型
可以看出R²=0.921,显著性P值小于0.05,模型拟合效果较好,然后选用holt线性趋势
从结果来看,和简单条件时差不多,然后选用简单季节性条件,如图
还可采用winter相乘法如图
以上两种模型显著性检验均通过,且拟合度R²更接近1,显然考虑季节后,拟合优度更好。我们还可以选用专家建模器——ARIMA(自动回归移动平均模型)模型,同样考虑季节因素
平稳的R²=0.321,模型拟合效果不是很好,P值大于0.05,接受原假设(此处p值>0.05是期望得到的结果),认为这个序列的残差符合随机序列分布,同时也没有离群值,说明数据拟合效果可以接受。
3、根据模型预测未来销售额
假如要预测此超市未来12个月的销售额,首先在时间序列建模器的保存选项中将'预测值'和置信区间打钩(置信度95%),导出模型文件这里可以保存预测模型,如图
打开建模器—选项,填写预测最后终止日期
然后就可以在主界面看到预测数据及2016年的每月销售额,以及预测模型,如图
最后保存模型。并将预测数据和实际值比较
最后注意
- Sig.列给出了 Ljung-Box 统计量的显著性值,该检验是对模型中残差错误的随机检验;表示指定的模型是否正确。显著性值小于0.05 表示残差误差不是随机的,p值越大表示原假设成立的可能性越大,即数据是随机的可能性越大。(p>=0.05,说明残差序列通过了白噪声检验,则建模就可以终止了,因为没有信息可以继续提取.)
- 平稳的R方:决定系数,现有模型所能够解释的原变量的多少变异(较客观)。
- R方:原数据去掉季节趋势,波动趋势,周期趋势之后的变异解释度(偏高)。
- 判断时间序列属于加法模型还是乘法模型:如果数据随时间季节波动基本维持恒定,使用加法模型,如果数据趋势随时间波动越来越大,则使用乘法模型