SPSS(十九)SPSS之时间序列模型(图文+数据集)
时间序列是指将同一统计指标的数值按其发生的时间先后顺序排列而成的数列。正如人们常说,人生的出场顺序很重要,时间序列中隐藏着一些过去与未来的关系。时间序列分析试图通过研究过去来预测未来。
时间序列分析在工程、金融、科技等众多领域有着广泛的应用。在大数据时代,时间序列分析已经成为 AI 技术的一个分支,通过将时间序列分析与分类模型相结合,更好的应用于数据检测、预测等场景。
时间序列模型简介
- 依时间顺序排列起来的一系列观测值(观测值之间不独立)
- 它考虑的不是变量间的因果关系,而是重点考察变量在时间方面的发展变化规律,并为之建立数学模型
- 使用时间序列模型的前提:有足够长的数据序列;数据序列的变动是稳定而规律的
另外一种理解方式:假如我们对一件事情研究其背后规律很久的话,可以收集到很多的自变量/影响因素去研究与因变量之间的关系,但是由于各种原因我们做不到,我们只能用一个t(时间)来替代所有的影响因素来研究自变量是如何变化的
时间序列分析面临的问题
时序应该在现实生活中应用的很广,但是为什么不常用这个模型呢?
- 基础统计数据原因(数据收集)
报表系统——质量问题
统计口径——不统一
范围变化、区域划分——变化
- 理论和技术培训原因
之前没有好的工具来实现时间序列模型
时间序列的方法分类
- Time domain(最为常见的方法):将时间序列看成是过去一些点的函数,或者认为序列具有随时间系统变化的趋势,它可以用不多的参数来加以描述,或者说可以通过差分、周期等还原成随机序列。
- Frequency domain:认为时间序列是由数个正弦波成份叠加而成,当序列的确来自一些周期函数集合时,该方法特别有用。 比如心电图
时间序列的构成
并不是每个序列都包含所有4种成分。比如以年为时间单位的序列就不会有季节变化;
一些较短的序列也看不出循环变化。所以在分析的时候得具体情况具体分析。
- 长期趋势
指一种长期的变化趋势。它采取一种全局的视角,不考虑序列局部的波动
下图,整体呈下降趋势
- 季节变化(Season)
反映一种周期性的变化一般在一年中完成
虽然称作“季节”,但是周期并不一定是季度,也可以是月、周等其它能在一年内完成的周期。因为,大多数的周期都以季节的形式出现,所以称作季节变化
比较典型的季节变化例子:圣诞节效应;冷饮的销售情况
- 循环变化(Cyclic)
循环跨度超年
指一种较长时间的周期变化。一般来说循环时间为2-15年。循环变化一般会出现波峰和波谷,呈现一种循环往复的现象。
比如:经济危机
- 不规则变化(error)
指时间序列中无法预计的部分,也可以理解为误差
序列的随机波动
突发事件引起的
它是无法预测的
在分析中往往又将其称为白噪声
它是时间序列中除去趋势、季节变化和自相关性之后的剩余随机扰动。由于时间序列存在不确定性,随机噪声总是夹杂在时间序列中,致使时间序列表现出某种震荡式的无规律运动。
比如:911事件
时间序列分析对长度的要求
- 不同的序列分析方法对时间序列分析对长度不一样,建模过程一般都会做差分,差分会损失信息,差分得越多,相应要求的时间序列越长
- 如果是稳定序列的话,历史数据越多,对预测的帮助越大
- 如果存在周期,一般需要4个周期以上;数理上认为应当在20个周期以上
假如只有两三个周期,那周期性的分析就没有太大作用了
对于时间序列问题有哪些基本分析思路
看到数据其实不一定要上最复杂的方法
- 平滑与季节分解(遇到比较简单的序列)
用移动平均的方式消除波动,反映出主要的趋势
- 回归模型
如果在序列分析中我们考虑到自变量的话,根据历史数据建立相应的回归模型用于预测。甚至来说可以直接把时间当做自变量用于预测,当然我们知道回归时候要求残差是独立的,假如检验出来是非独立的话,我们可以去建一个自回归模型
- ARIMA
如果时间序列变化太复杂,我们可以采用ARIMA建模,现在最强大的时序建模方法。真正的时间序列模型建模分析方法
平滑与季节分解
- 是利用时间序列资料进行短期预测的一种方法。它的基本思想是:除去一些不规则变化后,时间序列将剩下一些基本的变化模式,而这种变化模式将延续到将来。
- 描述时间序列数据的变化规律和行为,不去试图解释和理解这种变化的原因。例如:您可能发现在过去的一年里,三月和九月都会出现销售的高峰,您可能希望继续保持这样,尽管您不知道为什么。
- 平滑的主要目的就是除去时间序列的不规则变化,把时间序列的基本变化模式突现出来,作为短期预测的基础。因此也有人把平滑称作“修匀”。
- 平滑的方法很多。广义上说,可以认为回归也是一种平滑。因为拟合回归曲线可以把杂乱的观测数据修匀得到连续而光滑的曲线。
- 移动平均和移动中位数等这些不同的平滑技术又被称为平滑器。平滑处理后,可以得到一些新的序列。不同的平滑器得到的新序列是不同的。选择合适的平滑器,寻求最佳的预测效果是平滑处理的关键。
案例:NRC数据的建模预测
美国1947年1月到1969年12月住宅建筑的数据,分析目的是希望能过通过历史数据来预测1970年全年的情况。
数据集
nrc是我们准备用于分析的变量
nrc2又新增了12个月的数据,可以用来评价我们的预测效果
556 556
528 528
545 545
607 607
701 701
785 785
874 874
950 950
1006 1006
1093 1093
1135 1135
1070 1070
891 891
757 757
874 874
1028 1028
1168 1168
1257 1257
1294 1294
1305 1305
1273 1273
1203 1203
1100 1100
978 978
846 846
731 731
763 763
844 844
981 981
1086 1086
1147 1147
1171 1171
1207 1207
1238 1238
1241 1241
1171 1171
1077 1077
1031 1031
1089 1089
1276 1276
1499 1499
1703 1703
1827 1827
1898 1898
1900 1900
1785 1785
1614 1614
1427 1427
1289 1289
1188 1188
1229 1229
1288 1288
1324 1324
1399 1399
1428 1428
1409 1409
1400 1400
1397 1397
1330 1330
1200 1200
1015 1015
963 963
1149 1149
1234 1234
1346 1346
1437 1437
1472 1472
1486 1486
1473 1473
1481 1481
1438 1438
1309 1309
1131 1131
1057 1057
1206 1206
1363 1363
1431 1431
1570 1570
1577 1577
1550 1550
1514 1514
1481 1481
1420 1420
1294 1294
1104 1104
1029 1029
1167 1167
1347 1347
1517 1517
1627 1627
1717 1717
1770 1770
1783 1783
1759 1759
1717 1717
1650 1650
1473 1473
1379 1379
1562 1562
1753 1753
1925 1925
2064 2064
2098 2098
2082 2082
2051 2051
1983 1983
1851 1851
1656 1656
1392 1392
1305 1305
1457 1457
1618 1618
1753 1753
1884 1884
1908 1908
1895 1895
1860 1860
1798 1798
1741 1741
1567 1567
1324 1324
1206 1206
1350 1350
1486 1486
1604 1604
1718 1718
1767 1767
1796 1796
1787 1787
1761 1761
1694 1694
1513 1513
1292 1292
1192 1192
1302 1302
1421 1421
1550 1550
1702 1702
1804 1804
1876 1876
1907 1907
1954 1954
1957 1957
1832 1832
1606 1606
1493 1493
1676 1676
1907 1907
2091 2091
2253 2253
2350 2350
2358 2358
2310 2310
2232 2232
2092 2092
1883 1883
1588 1588
1408 1408
1613 1613
1804 1804
1935 1935
2112 2112
2039 2039
1982 1982
1931 1931
1860 1860
1790 1790
1644 1644
1378 1378
1221 1221
1459 1459
1720 1720
1860 1860
2059 2059
2053 2053
2053 2053
2055 2055
2041 2041
1974 1974
1807 1807
1543 1543
1368 1368
1605 1605
1906 1906
2141 2141
2377 2377
2357 2357
2377 2377
2330 2330
2210 2210
2113 2113
1965 1965
1686 1686
1492 1492
1666 1666
1950 1950
2206 2206
2421 2421
2517 2517
2553 2553
2516 2516
2500 2500
2450 2450
2230 2230
1867 1867
1678 1678
1866 1866
2068 2068
2191 2191
2385 2385
2518 2518
2541 2541
2439 2439
2327 2327
2260 2260
2118 2118
1834 1834
1639 1639
1782 1782
2000 2000
2203 2203
2429 2429
2550 2550
2561 2561
2473 2473
2377 2377
2284 2284
2136 2136
1848 1848
1644 1644
1781 1781
1979 1979
2124 2124
2287 2287
2387 2387
2351 2351
2202 2202
1978 1978
1785 1785
1614 1614
1368 1368
1248 1248
1405 1405
1613 1613
1836 1836
2107 2107
2336 2336
2471 2471
2446 2446
2375 2375
2310 2310
2191 2191
1859 1859
1655 1655
1885 1885
2262 2262
2518 2518
2628 2628
2721 2721
2790 2790
2780 2780
2678 2678
2593 2593
2454 2454
2133 2133
1940 1940
2195 2195
2540 2540
2810 2810
2962 2962
2974 2974
2880 2880
2763 2763
2648 2648
2482 2482
2288 2288
1961
1765
1986
2297
2485
2592
2650
2707
2721
2747
2735
2627
时间序列操作的基本步骤
- 预处理过程
缺失值的填补
一般这两种方法我们比较常用
时间变量的定义(spss对数据集进行了特殊标记,让spss知道其为序列数据,并非新增三个变量那么简单,必须是刚才进行下面的操作)
时间序列的平稳化
观测原始序列是什么分布,时间刻度这一块随便选一个时间自变量
发现其有长期趋势及季节变化(大概一年)
一次差分(假如序列匀速上升的话,一次差分序列后应该是平的)
继续查看其变化(一次差分作为变量)
确实序列变平了,但是随着时间增加季节变换还是存在的
季节差分(把周期性也干掉),一阶:相邻的两个季节做相减
看季节差分分布分布状况
看到下面的序列,无长期趋势、无季节变换,可认为是一个比较平稳的序列了
但是刚才上面在做一次差分后的序列,可以看出其序列随着时间增长离散程度会慢慢变大,后续分析可以考虑这一点,可以做变量变换。
其实刚才上面的步骤不用那么麻烦,在序列图中即可观察
当前周期:12在哪里设置呢?(在我们刚才定义日期选取的)
关于数据平稳化问题:(非常详细的理论基础)
大家可以参考
https://zhuanlan.zhihu.com/p/60023855
https://zhuanlan.zhihu.com/p/60648709
时间序列趋势的图形化观察
- Sequence Chart:序列图
实际上就是一种特殊的线图
- Autocorrelation Chart:做单个序列,任意滞后(包括负的滞后,也就是超前)的自相关和偏相关图
对序列图的初步观察结果作进一步确认(检验其是不是白噪声序列)
重点关心主要的相关趋势,然后再对模型进一步修正
刚才我们认为做了一次差分和季节差分真的为平稳序列了吗?
滞后n阶:隔了n个数据的自相关性
Sig.<0.05,证明存在自相关的,不都是白噪声
为了方便查看,给出了图,1到5阶都是存在统计学意义的
自相关系数是有传递性的问题在里面的,spss就会计算偏自相关系数,屏蔽传递的效应后,看剩余的关联是否还存在
自相关拖尾,偏自相关也拖尾,这两个是为了知道我们进行建模的
自相关图:自回归系数的变化
偏相关图:偏回归系数的变化
假如他是以下模型,应满足下面的特征
实际用起来,spss会提供一个自动分析的方法
模型拟合
几乎均可包含在ARIMA模型族中
寻找适当的参数是一个反复尝试的过程
生成 ARIMA 模型的基本步骤:
- 对序列绘图,进行 ADF 检验,观察序列是否平稳;对于非平稳时间序列要先进行 d 阶差分,转化为平稳时间序列;
- 经过第一步处理,已经得到平稳时间序列。要对平稳时间序列分别求得其自相关系数(ACF)和偏自相关系数(PACF),通过对自相关图和偏自相关图的分析,得到最佳的阶数p、q;
- 由以上得到的d、q、p ,得到 ARIMA 模型。然后开始对得到的模型进行模型检验。
专家建模器:会在指数平滑模型和ARIMA模型里面选取
R方相对于平稳的R方来说,是比较过于乐观的,假如数据是有波动趋势的,我们将趋势解释掉之后,占相当大的变异解释度进去了,平稳的R方比较客观
RMSE(残差均方)
MAPE(相对误差)
MAXAPE(最大值相对误差)
MAE(绝对误差)
MAXAE(最大值绝对误差)
正态化BIC(比较专业化的指标)
当前模型剩下来的这块能否当成白噪声?
H0:白噪声序列
Sig.>0.05,剩下来的确实是白噪声序列
如何让其做预测?怎么用时间序列?
由于SPSS的一个小BUG,变量名前缀要修改一下,不能是中文
对比一下原始序列和预测值效果
我们想预测到久一点呢?
假如我们有1970年的真实数据了,对比一下模型预测及真实数据差别