分解函数成三部分:趋势、周期、和剩余部分(一般指噪声,均值为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()