天天看點

時間序列的資料分析(一):主要成分一,趨勢(Trend) 二,季節性(Seasonal)三,殘差(Residual)總結參考資料

時間序列是一組按照時間發生先後順序進行排列,并且包含一些資訊的資料點序列,在時間序列資料中通常包含了資料的發展趨勢(向上、向下、保持)和資料的變化規律(季節性)等特征。而這些特征往往具有一定的規律性和可預測性,具體來說時間序列資料具有如下幾種特點:

  1. 趨勢性:某個變量随着時間進展或自變量變化,呈現一種比較緩慢而長期的持續上升、下降、儲存不變的趨向,但變動幅度可能不相等。
  2. 季節性:某因素由于外部影響如随着自然季節的交替出現高峰與低谷的規律。
  3. 随機性:個别時刻呈現随機變動,整體呈統計規律。

在某些應用場景中需要對時間序列資料進行預測,比如在零售,電商等行業需要對未來一段時間的銷售金額,客流量,訂單量等進行預測,準确的預測結果可以為企業的上司層提供決策參考,并有助于提高企業的人效,為企業帶來更多的利潤。

一,趨勢(Trend)

時間序列的資料往往包含了一定的資料發展趨勢,比如下圖中的資料有非常明顯的趨勢:

時間序列的資料分析(一):主要成分一,趨勢(Trend) 二,季節性(Seasonal)三,殘差(Residual)總結參考資料

 二,季節性(Seasonal)

時間序列資料中的季節性指的是資料中包含的周期性變化的規律,這些周期性變化規律往往和年度,月,季度,周等季節性時間點有密切的關系。通常季節性因子又可以分為1.加法季節性,2.乘法季節性。

2.1 加法季節性(Additive)

所謂加法季節性是指時間序列資料周期性變化的幅度不會随着時間的發展而發生變化,換句話說資料變化的幅度不受時間的影響(幅度保持不變)如下圖所示:

時間序列的資料分析(一):主要成分一,趨勢(Trend) 二,季節性(Seasonal)三,殘差(Residual)總結參考資料

從上圖中可以看到,資料呈現出季節性變化規律,但是這種變化的幅度沒有随着時間的發展而發生變化,即時間對季節性變化沒有影響。

 2.2 乘法季節性(Multiplicative)

所謂乘法季節性是指時間序列資料周期性變化的幅度會随着時間的發展而發生變化,換句話說資料變化的幅度和時間呈現線性關系如下圖所示:

時間序列的資料分析(一):主要成分一,趨勢(Trend) 二,季節性(Seasonal)三,殘差(Residual)總結參考資料

 從上圖中可以看到,資料呈現出季節性變化規律,并且這種季節性變化的幅度随着時間的發展而發生變化(比如逐漸變大或變小)。

三,殘差(Residual)

殘差是指當時間序列資料中删除了趨勢和季節性特征以後剩餘的部分,我們一般認為具有季節性特征的時間序列資料的殘差的服從均值為0的正太分布,殘差一般被認為是一種白噪聲信号,我們可以通過逐漸删除時間序列資料中的趨勢和季節性特征來得到殘差:

時間序列的資料分析(一):主要成分一,趨勢(Trend) 二,季節性(Seasonal)三,殘差(Residual)總結參考資料

 如上圖所示當從原始資料中删除了趨勢以後,剩餘的成分就是:季節性+殘差,接下來我們要從季節性+殘差的成分中删除季節性成分後得到殘差。

時間序列的資料分析(一):主要成分一,趨勢(Trend) 二,季節性(Seasonal)三,殘差(Residual)總結參考資料

下面我們通過python的第三方類庫statsmodes的seasonal_decompose來分解時間序列資料:

from statsmodels.tsa.seasonal import seasonal_decompose

df=pd.read_csv("airline_Passengers.csv")
df.set_index('Period',inplace=True)
df.index = pd.to_datetime(df.index)
data = df["#Passengers"]
seasonal_decomp = seasonal_decompose(data, model="additive")
seasonal_decomp.plot();
           

時間序列的資料分析(一):主要成分一,趨勢(Trend) 二,季節性(Seasonal)三,殘差(Residual)總結參考資料

總結

時間序列資料的主要成分包含: 趨勢、季節性、殘差。季節性又分為加法季節性和乘法季節性。可以使用statsmodes包的seasonal_decompose方法來分解時間序列。

參考資料

statsmodels.tsa.seasonal.seasonal_decompose — statsmodels

繼續閱讀