時(shí)間序列簡介
時(shí)間序列是時(shí)間間隔不變的情況下收集的時(shí)間點(diǎn)集合翁狐,沒有其他數(shù)據(jù)輔助。這些集合被分析用來了解長期發(fā)展趨勢(shì),為了預(yù)測(cè)未來或者表現(xiàn)分析的其他形式详幽。
最近完成一個(gè)基于時(shí)間序列ARIMA預(yù)測(cè)的項(xiàng)目,為了處理非平穩(wěn)化的數(shù)據(jù)浸锨,需要將數(shù)據(jù)分解成長期趨勢(shì)項(xiàng)唇聘、季節(jié)性周期項(xiàng)以及殘差項(xiàng)幾部分,然后分別“對(duì)癥下藥”柱搜。以下寫寫數(shù)據(jù)的具體分解函數(shù)代碼及原理迟郎。
decompose數(shù)據(jù)分解
python代碼
數(shù)據(jù)分解的代碼可直接調(diào)用python的statsmodels庫,如下聪蘸,就分解成了三部分?jǐn)?shù)據(jù)宪肖。
from statsmodels.tsa.seasonal import seasonal_decompose
decomposition = seasonal_decompose(timeseries) #timeseries時(shí)間序列數(shù)據(jù)
trend = decomposition.trend
seasonal = decomposition.seasonal
residual = decomposition.resid
但到底是如何分解成這三部分呢表制,還是值得探究一下。以下寫寫數(shù)據(jù)的具體分解過程控乾。
數(shù)據(jù)分解原理
decompose數(shù)據(jù)分解模型主要有兩類:相加模型(additive)和相乘模型(multiplicative)么介。
官方解釋是:
The additive model is Y[t] = T[t] + S[t] + e[t]
The multiplicative model is Y[t] = T[t] * S[t] * e[t]
其中,T[t]是趨勢(shì)項(xiàng)蜕衡,S[t]是季節(jié)性周期項(xiàng)壤短,e[t]是殘值項(xiàng)。一般的慨仿,理想的分解模型中殘值項(xiàng)應(yīng)該是一個(gè)均值為0的隨機(jī)變量久脯。
兩種模型的分解思路一致,這里以相加模型(additive)為例介紹镰吆。
-
step1:分解趨勢(shì)項(xiàng)帘撰,采用中心化移動(dòng)均值的方法。
1.png -
step2:分解季節(jié)性周期項(xiàng)万皿。
2.png step3:計(jì)算殘值項(xiàng)骡和。
e[t] = Y[t] - T[t] - S[t]
以下是一個(gè)數(shù)據(jù)分解后的結(jié)果圖。
最后相寇,針對(duì)對(duì)數(shù)據(jù)分解結(jié)果的分析慰于,我們可采取移動(dòng)均值、差分等方式對(duì)數(shù)據(jù)進(jìn)行平穩(wěn)化處理唤衫,用于時(shí)間序列預(yù)測(cè)婆赠。