时间序列_seasonal_decompose使用移动平均线进行季节性分解

在公众号「python风控模型」里回复关键字:学习资料

时间序列_seasonal_decompose使用移动平均线进行季节性分解_第1张图片

statsmodels.tsa.seasonal.seasonal_decompose使用移动平均线进行季节性分解

=============================================================

所谓分解就是将时序数据分离成不同的成分,分解有:

长期趋势Trend、季节性seasonality和随机残差residuals

statsmodels使用的X-11分解过程,它主要将时序数据分离成长期趋势、季节趋势和随机成分。 与其它统计软件一样,statsmodels也支持两类分解模型,加法模型和乘法模型,model的参数设置为"additive"(加法模型)和"multiplicative"(乘法模型)。

首先看看函数

statsmodels.tsa.seasonal.seasonal_decompose(x,model = 'additive',filt = None,period = None,two_side = True,extrapolate_trend = 0)

参数:

x:array_like,被分解的数据

model:{“additive”, “multiplicative”}, optional,“additive”(加法模型)和"multiplicative"(乘法模型)

fil:tarray_like, optional,用于滤除季节性成分的滤除系数。滤波中使用的具体移动平均法由two_side确定

period:int, optional,系列的时期。如果x不是pandas对象或x的索引没有频率,则必须使用。如果x是具有时间序列索引的pandas对象,则覆盖x的默认周期性。

two_sided:bool, optional,滤波中使用的移动平均法。如果为True(默认),则使用filt计算居中的移动平均线。如果为False,则滤波器系数仅用于过去的值

extrapolate_trend:int or ‘freq’, optional,如果设置为> 0,则考虑到许多(+1)最接近的点,由卷积产生的趋势将在两端外推线性最小二乘法(如果two_side为False,则为单一个最小二乘)。如果设置为“频率”,请使用频率最近点。设置此参数将导致趋势或残油成分中没有NaN值。

具体例子,数据我暂时找不出来,到时候再补上,再替换,现在主要任务是知道怎么用法,以及返回是什么

# 下面深入分解:长期趋势Trend、季节性seasonality和随机残差residuals。

# 强行补充小知识:平稳性处理之“分解”
# 所谓分解就是将时序数据分离成不同的成分。statsmodels使用的X-11分解过程,它主要将时序数据分离成长期趋势、季节趋势和随机成分。
# 与其它统计软件一样,statsmodels也支持两类分解模型,加法模型和乘法模型,model的参数设置为"additive"(加法模型)和"multiplicative"(乘法模型)。

import statsmodels.api as sm  # 导入统计建模模块
# multiplicative
res = sm.tsa.seasonal_decompose(ts.values,freq=12,model="multiplicative") 
# 这里用到的.tsa.seasonal_decompose()函数,经尝试:参数ts.values时,横坐标是Time;参数ts时,横坐标是date_block_num。其他不变。
# freg这个参数容后研究,这里暂且猜测是周期12个月。

# plt.figure(figsize=(16,12))
fig = res.plot()
# fig.show()  # 此句,可加可不加。

# 得到不同的分解成分,接下来可以使用时间序列模型对各个成分进行拟合。

时间序列_seasonal_decompose使用移动平均线进行季节性分解_第2张图片

QQ学习群:1026993837 领资料
seasonal_decompose使用移动平均线进行季节性分解就为大家介绍到这里,欢迎各位学习《呆瓜半小时入门python数据分析》bye!

你可能感兴趣的:(数据分析,python,时间序列,time,series)