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() # 此句,可加可不加。 # 得到不同的分解成分,接下来可以使用时间序列模型对各个成分进行拟合。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)