時間序列分解 STL分解法

2021-08-29 03:58:51 字數 2297 閱讀 3346

stl(』seasonal and trend decomposition using loess『 )是以魯棒區域性加權回歸作為平滑方法的時間序列分解方法。

其中loess(locally weighted scatterplot smoothing,lowess or loess)為區域性多項式回歸擬合,是對兩維散點圖

進行平滑的常用方法,它結合了傳統線性回歸的簡潔性和非線性回歸的靈活性。當要估計某個響應變數值時,先從其預

測變數附近取乙個資料子集,然後對該子集進行線性回歸或二次回歸,回歸時採用加權最小二乘法,即越靠近估計點的

值其權重越大,最後利用得到的區域性回歸模型來估計響應變數的值。用這種方法進行逐點運算得到整條擬合曲線。

robust loess 為魯棒區域性加權回歸,具體演算法可以參看之前的博文 魯棒區域性加權回歸 。

stl對異常點具有健壯性,僅能處理加法模式的分解,對於乘法模式需要先轉換為加法模式處理最後在逆變換回去。

魯棒區域性加權回歸法方法的loess 過程和魯棒性過程分別在stl 的內部環 和外部環中巢狀實現.

用r做時間序列的stl分解:

stl(x, s.window, s.degree = 0,

t.window = null, t.degree = 1,

robust = false,

na.action = na.fail)

s.window----提取季節性時的loess演算法時間視窗寬度,須為奇數

s.degree -----提取季節性時區域性擬合多項式的階數,須為0或1

t.window----提取趨勢性時的loess演算法時間視窗寬度,須為奇數

t.degree-----提取趨勢性時區域性擬合多項式的階數,須為0或1

robust -----在loess過程中是否使用魯棒擬合

library(quantmod)

###時間序列stl分解法######

##stl是』seasonal and trend decomposition using loess『 的以魯棒區域性加權回歸作為平滑方

#法的時間序列分解方法。其中loess(locally weighted scatterplot smoothing,

#lowess or loess)為區域性多項式回歸擬合。

getsymbols('^ixic',src='yahoo',from='2008-1-1',to='2015-10-1')

sdata.month=to.monthly(ixic)

sdata.close=sdata.month$ixic.close

head(sdata.close)

sdata=ts(as.double(sdata.close),frequency=12,start=c(2008,1))

#as.double(sdata.close)為避免出現『只允許單變數序列』的報錯

fit=stl(sdata,t.window=13,s.window='periodic',robust=t)

#時間序列的stl分解是以魯棒區域性加權回歸作為平滑方法的時間序列分解方法

#故應使robust=t,s.window='periodic'指使用均值平滑季節性子串行

(上圖4個板塊的最右側的高度不等的灰色柱條對應各板塊數值大小的乙個視覺化度量,它們對應的數值大小是一樣的)

時間序列分解隨筆

對於時間序列來說,傳統的時間序列 模型對於不平穩的資料是不能進行處理的,需要對時間序列進行分解,使得時間序列區域平穩,才可以進行時間序列的模擬 本次採用python的seasonal decompose分解來進行時間序列的分解。python3.6 statsmodels庫 pandas庫 matpl...

任務分解法 WBS

即work breakdown structure,如何進行wbs分解 目標 任務 工作 活動 wbs分解的原則 將主體目標逐步細化分解 最底層的任務活動可直接分派到個人去完成 每個任務原則上要求分解到不能再細分為止 wbs分解的方法 至上而下與至下而上的充分溝通 一對一個別交流 小組討論 wbs分...

R 時間序列 分解季節性時間序列

包含 長期趨勢trend,季節趨勢seasonal,週期迴圈circle,隨機項random 這裡分解為相加模型x t s c r 在對時間序列進行分解之前,應該對序列進行檢驗 下次寫 將時間序列進行上述分解 以紐約市月出生數量 1946.1 1959.12 的資料集為例 出生數量 從圖上可以看出,...