時間序列如何更好地分析週期性

by 王芳

​世界是不斷變化的,任何事物在兩個不同時刻都不可能保持完全相同的狀態,正如世上沒有兩片相同的樹葉。但同時很多變化都有着一定的規律,比如一天漲落兩次的潮汐,每過12小時就會重複轉動的時針等,我們把這些現象稱爲“週期”。

週期性,指的是時間序列中呈現出來的圍繞長期趨勢的一種波浪形或振盪式變動。準確提取週期信息,不僅能反映當前數據的規律,應用於相關場景,還可以預測未來數據變化趨勢。這是時間序列研究的基本要素。通過肉眼觀察時序圖,可以很容易地判斷數據是否滿足週期性,但無法知道準確的週期時長,且當數據組數達到一定量時,這種方式就不再適用了。

本文通過具體實例,揭示了一種週期性檢驗的有效方法,這種方法無需人爲判斷,而是通過多方面挖掘時序本身的特點,找到隱藏的週期信息。
現有一份7天的時序數據,每隔2分鐘記錄一次,爲了方便分析,事先對其做了預處理,用合適的數值替換異常點,處理過後的時序圖是這樣的:
在這裏插入圖片描述
如圖所示,該數據每隔一段時間就呈現相同的波動形態,是典型的週期型數據。那麼,怎麼用更智能的客觀方法檢測它的週期性呢?

事實上,時間序列週期性可分爲三種:
第一種是符號週期性,它表示只有一個符號是週期性的,比如序列T = fbcnfkgbfops,只有f有周期性,它的週期是p= 4,可以用CONV方法檢測;
第二種是部分週期性,它表示有一個以上的符號是週期性的,並且部分地出現,比如T= ansdcdmncdcacdascdmc,序列cd具有周期性,p=4,週期從位置4開始,可以用PARPER方法檢測;
第三種是分段週期性,整個時序被表示爲一個週期模式,也就是上圖所呈現的週期性。 爲了更好地介紹週期性檢測方法,我們需要先了解一下傅里葉變換和自相關係數。

傅里葉變換

傅里葉變換是一種將時域數據轉化爲頻域數據的方法,任何波形(時域)都可以看做是不同振幅、不同相位正弦波的疊加(頻域),比如下面最前方的圖形就是它後面所有正弦波的總和。
在這裏插入圖片描述
對於一份週期性的數據,它本身就很接近正弦波,所以它的組成裏一定有一個很重要的正弦波,週期就是該正弦波的週期,而這個正弦波可以通過傅里葉變換找到,它將時序數據展開成三角函數的線性組合,得到每個展開項的係數,就是傅里葉係數。傅里葉係數越大,表明它所對應的正弦波的週期就越有可能是這份數據的週期。

自相關係數

自相關係數度量的是同一事件不同時間的相關程度,比如有一個序列X=[1,2,3,5,7,9,13,14,17,19],求不同相位差的自相關係數,相位差爲1時,比較的序列是[1,2,3,5,7,9,13,14,17]和[2,3,5,7,9,13,14,17,19];相位差爲2時,比較的序列是[1,2,3,5,7,9,13,14]和[3,5,7,9,13,14,17,19]。不同相位差序列間的自相關係數可以用Pearson相關係數計算。當序列存在週期性時,遍歷足夠多的相位差,一定可以找到至少一個足夠大的自相關係數,而它對應的相位差就是週期。

所以對於檢測時序週期來說,只需找到兩個自相關係數達到一定閾值的子序列,反映在時序圖上,就是兩段很相似的數據,它們起始時間的差值就是我們需要的週期。比如下面第二張圖和第三張圖,它們的序列自相關係數爲1,時間間隔爲12.57,正好是第一張圖的週期。
在這裏插入圖片描述

週期性檢測流程

爲了保證結果的可靠性,現將傅里葉分析和自相關係數結合起來判斷週期性,首先通過傅里葉變換找到可能的週期,再用自相關係數做排除,從而得到最可能的週期。
在這裏插入圖片描述
下面週期圖將傅里葉變換得到的傅里葉係數長度的平方作爲縱座標,相應索引與序列總長度的比值(頻率)爲橫座標,很明顯的三個凸起點是P1、P2、P3,對應的週期爲橫座標的倒數,都可看作候選週期。自相關係數圖的橫座標爲滯後階數(相位差),縱座標爲對應的自相關係數值,上述三個點對應在自相關係數圖中,可以看到P3週期在“山谷”處(二階導是負的),而P1、P2週期在“山峯”處(二階導是正的),所以將P3從候選週期中排除。

在這裏插入圖片描述

實例分析

我們回到文章開頭的時序數據,基於上述方法,對其做週期性檢測。從週期圖中找到明顯的候選週期點是P1=720(週期點可以通過設定閾值得到,大於閾值的點即爲週期點),因爲數據是2分鐘一個點,所以該週期時長爲1天。
在這裏插入圖片描述
利用自相關係數圖做進一步檢驗,將候選週期點標註在該圖上,正好處於“山峯”處,所以它就是所求週期,符合實際觀察情況。
在這裏插入圖片描述

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