時間序列預(yù)測方法最全總結(jié)!
時間序列預(yù)測就是利用過去一段時間的數(shù)據(jù)來預(yù)測未來一段時間內(nèi)的信息,包括連續(xù)型預(yù)測(數(shù)值預(yù)測,范圍估計)與離散型預(yù)測(事件預(yù)測)等,具有非常高的商業(yè)價值。

01
基本規(guī)則法

圖 | 抽取時序的周期進行擬合
02
傳統(tǒng)參數(shù)法
首先需要對觀測值序列進行平穩(wěn)性檢測,如果不平穩(wěn),則對其進行差分運算直到差分后的數(shù)據(jù)平穩(wěn);在數(shù)據(jù)平穩(wěn)后則對其進行白噪聲檢驗,白噪聲是指零均值常方差的隨機平穩(wěn)序列;如果是平穩(wěn)非白噪聲序列就計算ACF(自相關(guān)系數(shù))、PACF(偏自相關(guān)系數(shù)),進行ARMA等模型識別,對已識別好的模型,確定模型參數(shù),最后應(yīng)用預(yù)測并進行誤差分析。
03
時間序列分解
長期趨勢(Secular trend, T):長期趨勢指現(xiàn)象在較長時期內(nèi)持續(xù)發(fā)展變化的一種趨向或狀態(tài)。季節(jié)變動(Seasonal Variation, S):季節(jié)波動是由于季節(jié)的變化引起的現(xiàn)象發(fā)展水平的規(guī)則變動循環(huán)波動(Cyclical Variation, C):循環(huán)波動指以若干年為期限,不具嚴(yán)格規(guī)則的周期性連續(xù)變動不規(guī)則波動(Irregular Variation, I): 不規(guī)則波動指由于眾多偶然因素對時間序列造成的影響

圖 | 原始時間序列
時間序列分解模型
// 加法模型

// 乘法模型

// 加乘混合模型
以上兩種方式的混合
時間序列的長期趨勢分析
圖 | 擬合的時序趨勢
// 移動平均法
// 時間回歸法
使用回歸分析中的最小二乘法,以時間t或t的函數(shù)為自變量擬合趨勢方程。常用的趨勢方程如下:
一階線性方程二次(多次)方程曲線指數(shù)曲線
時間序列季節(jié)變動分析
時間序列短期會受季節(jié)等短期因素影響,從而存在一些周期性
圖 | 擬合的季節(jié)變動
// 乘法模型-季節(jié)指數(shù)
乘法模型中的季節(jié)成分通過季節(jié)指數(shù)來反映。常用的方法稱為移動平均趨勢剔除法。步驟如下:
計算一動平均值
從序列中剔除移動平均值

時間序列循環(huán)變動分析
如果有季節(jié)成分,計算季節(jié)指數(shù),得到季節(jié)調(diào)整后的數(shù)據(jù)TCI根據(jù)趨勢方程從季節(jié)調(diào)整后的數(shù)據(jù)中消除長期趨勢,得到序列CI對消去季節(jié)成分和趨勢值的序列CI進行移動平均以消除不規(guī)則波動,得到循環(huán)變動成分C
圖 | 擬合的長期循環(huán)變動
時間序列不規(guī)則變動分析


圖 | 擬合的不規(guī)則變動
Prophet

04
機器學(xué)習(xí)
// 單步預(yù)測
,作為輸入變量來預(yù)測當(dāng)前的時間的觀測值
。這被稱為單步單變量預(yù)測。// 多步預(yù)測
來預(yù)測未來的觀測序列
。這就是多步預(yù)測或序列預(yù)測。// 多變量預(yù)測

,
,我們希望分析這組多元時間序列來預(yù)測
。05
深度學(xué)習(xí)
// 循環(huán)神經(jīng)網(wǎng)絡(luò)

// 卷積神經(jīng)網(wǎng)絡(luò)
數(shù)值縮放:將笛卡爾坐標(biāo)系下的時間序列縮放到[0,1]或[-1,1]區(qū)間極坐標(biāo)轉(zhuǎn)換:使用坐標(biāo)變換公式,將笛卡爾坐標(biāo)系序列轉(zhuǎn)化為極坐標(biāo)系時間序列角度和/差的三角函數(shù)變換:若使用兩角和的cos函數(shù)則得到GASF,若使用兩角差的cos函數(shù)則得到GADF
在語音信號處理場景使用很廣泛,其目標(biāo)主要將時間序列轉(zhuǎn)為時頻圖像,進而采用卷積網(wǎng)絡(luò)進行特征分析。

// 時間卷積網(wǎng)絡(luò)

// 基于注意力機制的模型
在RNN中分析時間序列需要我們一步步的順序處理從 t-n 到 t 的所有信息,而當(dāng)它們相距較遠(n非常大)時RNN的效果常常較差,且由于其順序性處理效率也較低?;谧⒁饬C制(Attention)的模型,采用跳步的方式計算每個數(shù)值之間的兩兩關(guān)聯(lián),然后組合這些關(guān)聯(lián)分?jǐn)?shù)得到一個加權(quán)的表示。該表示通過前饋神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí),可以更好的考慮到時序的上下文的信息。
CNN捕捉短期局部依賴關(guān)系 RNN捕捉長期宏觀依賴關(guān)系 Attention為重要時間段或變量加權(quán)

06
一些需要注意的難點
理解時間序列預(yù)測問題是要用歷史數(shù)據(jù)預(yù)測未來數(shù)據(jù)
時間序列問題的訓(xùn)練集、測試集劃分
特征工程方法及過程
如何轉(zhuǎn)化為監(jiān)督學(xué)習(xí)數(shù)據(jù)集
LSTM計算過程理解,包括輸入輸出維度、參數(shù)數(shù)量等
seq2seq過程的理解,decoder實現(xiàn)
attention注意力機制的原理及實現(xiàn),包括encoder-decoder attention, self attention, multi-head attention等
時間卷積網(wǎng)絡(luò)的含義,dilated-convolution 和 causal-convolution
prophet預(yù)測原理,各參數(shù)對模型擬合效果、泛化效果的影響
時間序列基本規(guī)則法中周期因子得計算過程
傳統(tǒng)方法如周期因子、線性回歸、ARMA等的預(yù)測結(jié)果表現(xiàn)為,預(yù)測趨勢大致正確,但對波動預(yù)測不理想,體現(xiàn)在波動的幅度差異、相位偏移。
時間序列分解方法。理解加法模型和乘法模型,判斷分解模型的選取及分解技巧。
// 工具
tslearn:開源的時間序列機器學(xué)習(xí)python工具包
tsfresh:開源的時間序列特征提取python工具包
pyts:開源的時間序列分類Python工具包。提供預(yù)處理工具及若干種時間序列分類算法
