R语言——STL时间序列分解

存在季节性因素的时间序列数据(如月度数据、季度数据等)可以被分解为趋势因子、季节性因子和随机因子

趋势因子(trend component)能捕捉到长期变化;
季节性因子(seasonal component)能捕捉到一年内的周期性变化;
随机(误差)因子(irregular/error component)则能捕捉到那些不能被趋势或季节效应解释的变化。

通过相加模型相乘模型来分解数据。

相加模型
在这里插入图片描述

相乘模型

在这里插入图片描述
很多时候,相乘模型比相加模型更现实一些。

stl()函数只能处理相加模型,但相乘模型总可以通过对数变换转换成相加模型:
在这里插入图片描述

stl(ts, s.window, s.degree=0, t.window=NULL, t.degree=1, robust=FALSE, na.action=na.fail)

ts————将要分解的时序
s.window————控制季节效应变化的速度。提取季节性时的loess算法 时间窗口的宽度,需要是奇数;**令s.window="periodic"可使得季节效应在各年间都一样。**较小的值意味着更快的变化速度。
s.degree————提取季节性时局部拟合多项式的阶数,需要是0或者1;
t.window————控制趋势项变化的速度。提取趋势性时的loess算法 时间窗口的宽度,需要是奇数;较小的值意味着更快的变化速度
t.degree————提取趋势性时局部拟合多项式的阶数,需要是0或者1;
robust————在loess过程中是否使用鲁棒拟合

这一函数中,参数ts和s.window是必须提供的

画出图之后,有4个图,每个图的y轴尺度不同,因此通过图中右侧的灰色长条来指示量级,即每个长条代表的量级不一样。

stl()函数返回的对象中有一项是time.series,它包括每个观测值中的趋势、季节以及随机效应的具体组成。此时,直接用 A$time.series则返回时序

R中自带的monthplot()函数和forecast包中的seasonplot()函数可以对季节分解进行可视化

你可能感兴趣的:(R)