statsmodels 笔记 STL
生活随笔
收集整理的這篇文章主要介紹了
statsmodels 笔记 STL
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
理論部分見:機器學習筆記: 時間序列 分解 STL_UQI-LIUWJ的博客-CSDN博客
1 基本用法
class statsmodels.tsa.seasonal.STL(endog, period=None, seasonal=7, trend=None, low_pass=None, seasonal_deg=0, trend_deg=0, low_pass_deg=0,robust=False, seasonal_jump=1, trend_jump=1, low_pass_jump=1)2 參數說明
| endog | 要分解的數據。 必須可擠壓至 1-d。 |
| period | int 或者 None 序列的周期性。 如果 是None,并且 endog 是 pandas Series 或 DataFrame,則嘗試從 endog 確定。 如果 endog 是 ndarray,則必須手動提供。 |
| seasonal | int 季節分量的LOSSES平滑參數。 必須是奇數,并且通常應該 >= 7(默認值)。 【內循環的第二步?】 |
| trend | int 或者 None 趨勢分量的LOSSES平滑參數。 必須是奇數。 如果未提供,則使用大于 1.5 * period / (1 - 1.5 /seasonal) 的最小奇數。 |
| low_pass | int 或者 None 低通濾波器的長度。 必須是 >=3 的奇數。 如果未提供,則使用大于周期的最小奇數。(感覺像內循環第三步的前兩個Np?) |
| robust | bool 是否使用對某些形式的異常值具有魯棒性的版本。 |
| seasonal_jump | int 確定季節分量LOSSES線性插值步長的正整數。 (內循環第二步)【每多少步進行一次線性插值】 |
| low_pass_jump | int 內循環第三步LOSSES 線性插值步長 |
| trend_jump | int 確定趨勢分量LOSSES線性插值步長的正整數。(內循環第六步) |
3 使用舉例
3.1 數據集
月度數據
from statsmodels.datasets import co2data = co2.load(True).data data'''co2 1958-03-29 316.1 1958-04-05 317.3 1958-04-12 317.6 1958-04-19 317.5 1958-04-26 316.4 ... ... 2001-12-01 370.3 2001-12-08 370.8 2001-12-15 371.2 2001-12-22 371.3 2001-12-29 371.5 2284 rows × 1 columns '''data = data.resample('M').mean().ffill() data '''co2 1958-03-31 316.100000 1958-04-30 317.200000 1958-05-31 317.433333 1958-06-30 317.433333 1958-07-31 315.625000 ... ... 2001-08-31 369.425000 2001-09-30 367.880000 2001-10-31 368.050000 2001-11-30 369.375000 2001-12-31 371.020000 526 rows × 1 columns '''3.2 模型
from statsmodels.tsa.seasonal import STL res = STL(data).fit() #import matplotlib.pyplot as plt plt.rcParams['figure.figsize'] = 20, 15res.plot() plt.show() STL(data).config ''' {'period': 12,'seasonal': 7,'seasonal_deg': 1,'seasonal_jump': 1,'trend': 23,'trend_deg': 1,'trend_jump': 1,'low_pass': 13,'low_pass_deg': 1,'low_pass_jump': 1,'robust': False} '''STL(data).period #123.3 返回結果可以得到的一些信息
| observed | 已分解的時間序列。 |
| seasonal | 時間序列的周期分量 ? |
| trend | 時間序列的趨勢分量 |
| resid | 時間序列的殘留分量 ? |
| weights | 用于減少異常值影響的權重。 ? |
總結
以上是生活随笔為你收集整理的statsmodels 笔记 STL的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sklearn 笔记:make_blob
- 下一篇: NTU 课程笔记 :NLP - lang