SPSS(十九)SPSS之时间序列模型(图文+数据集)

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 模型的基本步骤:

  1. 对序列绘图,进行 ADF 检验,观察序列是否平稳;对于非平稳时间序列要先进行 d 阶差分,转化为平稳时间序列;
  2. 经过第一步处理,已经得到平稳时间序列。要对平稳时间序列分别求得其自相关系数(ACF)和偏自相关系数(PACF),通过对自相关图和偏自相关图的分析,得到最佳的阶数p、q;
  3. 由以上得到的d、q、p ,得到 ARIMA 模型。然后开始对得到的模型进行模型检验。

专家建模器:会在指数平滑模型和ARIMA模型里面选取

 

R方相对于平稳的R方来说,是比较过于乐观的,假如数据是有波动趋势的,我们将趋势解释掉之后,占相当大的变异解释度进去了,平稳的R方比较客观

RMSE(残差均方)

MAPE(相对误差)

MAXAPE(最大值相对误差)

MAE(绝对误差)

MAXAE(最大值绝对误差)

正态化BIC(比较专业化的指标)

 

当前模型剩下来的这块能否当成白噪声?

H0:白噪声序列

Sig.>0.05,剩下来的确实是白噪声序列

 

 

如何让其做预测?怎么用时间序列?

由于SPSS的一个小BUG,变量名前缀要修改一下,不能是中文

对比一下原始序列和预测值效果

我们想预测到久一点呢?

假如我们有1970年的真实数据了,对比一下模型预测及真实数据差别

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章