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年的真實數據了,對比一下模型預測及真實數據差別