python STL分解

文章目录

  • 一、原理
  • 二、代码示例


一、原理

分解函数成三部分:趋势、周期、和剩余部分(一般指噪声,均值为0)
分解就是将时序数据分离成不同的成分,分解有:长期趋势Trend、季节性seasonality和随机残差residuals
返回包含三个部分 trend(趋势部分) , seasonal(季节性部分) 和residual (残留部分)
传入:一个序列,可以是时间序列
输出:趋势、周期、和剩余部分 三部分

函数详解链接:详解

二、代码示例

import statsmodels.api as sm
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
x=np.arange(0,100,1)

data=1+10*np.sin(2*x)+10*x+5*np.sin(x)
rd = sm.tsa.seasonal_decompose(data,freq=2)#该时间序列周期为2

rd.plot()
plt.show()
#得到趋势、周期性、随机变量的数据输出
#print(rd.trend)
#print(rd.seasonal)
#print(rd.resid)
print(rd.trend+rd.seasonal)
plt.plot(data)
plt.plot(rd.trend+rd.seasonal)
plt.show()

python STL分解_第1张图片 python STL分解_第2张图片

freq=2 ,则表示趋势+季节性 里面有2个空值,首末各一个
python STL分解_第3张图片

在这里插入图片描述
作者:电气-余登武
python STL分解_第4张图片

你可能感兴趣的:(算法笔记,python)