基于时间序列的回归问题(5)—— 时间序列分解算法STL

1、引言

seasonal-trend decomposition procedures based on loess (STL)就是时序分解中一种常见的算法,基于LOESS将某时刻的数据Yv分解为趋势分量(trend component)、季节周期分量(seasonal component)和剩余分量(remainder component),如下式所示,这种方法是Cleveland于1990年在论文:STL: A seasonal-trend decomposition procedure based on loess中提出的。

Yv=Tv+Sv+Rv v=1,⋯,N

2、各分量详解

  • 趋势分量:这里指时间序列的大体趋势,比如整体上升趋势,或先增加后降低的整体趋势
  • 季节周期分量:以一定的时间为固定周期,呈现循环的特性
  • 其余分量:在时间序列除上述两种分量的其余分量,这种分量一般在以不固定周期不断震荡,有时可能出现奇异值

Yv=Tv+Sv+Rv v=1,⋯,N
其中St为季节周期分量,Tt为趋势分量,Et为其余分量
先看一下原论文中的图:
在这里插入图片描述
下面通过2002年到2014年某物品价格举例:
在这里插入图片描述

3、分解步骤

  • 1、去趋势(Detrending),减去上一轮结果的趋势分量,Yv−T(k)v,T(k)v,k为迭代次数,一般将初始值T(0)取0
  • 2、 周期子序列平滑(Cycle-subseries smoothing),用LOESS (q=n(s), d=1)对每个子序列做回归,并向前向后各延展一个周期;平滑结果组成temporary seasonal series,记为C(k+1)v,v=−n§+1,⋯,−N+n§;
  • 3、周期子序列的低通量过滤(Low-Pass Filtering),对上一个步骤的结果序列C(k+1)v依次做长度为n§、n§、3的滑动平均(moving average),然后做LOESS (q=nn(l), d=1)回归,得到结果序列L(k+1)v,v=1,⋯,N;相当于提取周期子序列的低通量;
  • 4、去除平滑周期子序列趋势(Detrending of Smoothed Cycle-subseries),S(k+1)v=C(k+1)v−L(k+1)v
  • 5、去周期(Deseasonalizing),减去周期分量,Yv−S(k+1)v;
  • 6、趋势平滑(Trend Smoothing),对于去除周期之后的序列做LOESS (q=nn(t), d=1)回归,得到趋势分量T(k+1)v。
发布了35 篇原创文章 · 获赞 14 · 访问量 6845

猜你喜欢

转载自blog.csdn.net/caoyuan666/article/details/104927320
今日推荐