statsmodels 笔记:seasonal_decompose 时间序列分解
1 使用方法
statsmodels.tsa.seasonal.seasonal_decompose(x, model='additive', filt=None, period=None, two_sided=True, extrapolate_trend=0)使用滑動平均的方法進行時間序列分解
注:這只是一個最為簡單的分解方法
????????通過首先通過對數據應用卷積濾波器估計趨勢來獲得結果。 然后從序列中刪除趨勢,每個時期的去趨勢序列的平均值是返回的季節性分量。
2 參數說明
| x | 時間序列。 如果是 兩維的,則單個Series應該在一列中。 x 必須包含 2 個完整的周期。 |
| model | {“additive”, “multiplicative”} 時間序列分解的類型(加和 or 求乘積) 參數名稱縮寫是允許的 |
| filt | 過濾掉季節性分量的過濾系數。 濾波中使用的具體移動平均法(單邊or兩側)由 two_sided確定。 (個人理解是,計算滑動平均時,滑動平均階數內各點所乘的那個系數) |
| period | 時間序列的周期。 如果 x 不是 pandas 對象或 x 的索引沒有頻率,則必須使用。 如果 x 是具有時間序列索引的 pandas 對象,則覆蓋 x 的默認周期。 |
| two_sided | 濾波中使用的移動平均法。 如果為 True(默認),則使用 filt 計算居中移動平均值。 如果為 False,則濾波器系數filt僅適用于過去的值。 |
| extrapolate_trend | ????????如果設置為 > 0,考慮到這么多 (+1) 個最近點,移動平均(卷積)產生的趨勢是在兩端外推的線性最小二乘法(如果 two_lateral 為 False,則為單側外推)。 ???????? 如果設置為“freq”,則使用最近點。 ? ? ? ? ?設置此參數會導致趨勢或殘差組件中沒有 NaN 值。 |
返回內容:有季節性,趨勢和殘差三個屬性的對象
3 使用方法
假設我們現在有一個1*744維的ndarray:
import matplotlib.pyplot as plt plt.figure(figsize=(30,5)) plt.plot(west_tensor[0,:])?現在我們使用seasonal_decompose:
import statsmodels.api as smres = sm.tsa.seasonal_decompose(west_tensor[0,:],period=48,model="add")rcParams['figure.figsize'] = 30, 15 fig=res.plot() fig.savefig('decompose_add.png')?
總結
以上是生活随笔為你收集整理的statsmodels 笔记:seasonal_decompose 时间序列分解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文代码解读 Hierarchical
- 下一篇: pip 另一种安装方法:python s