时间序列分解算法:STL

STL (Seasonal-Trend decomposition procedure based on Loess) 为时序分解中一种常见的算法,基于LOESS将某时刻的数据Y_{v}分解为趋势分量(trend component)、周期分量(seasonal component)和余项(remainder component):

STL分为内循环(inner loop)与外循环(outer loop),其中内循环主要做了趋势拟合与周期分量的计算。假定T^{(k)}_{v}、S_{v}(k)为内循环中第k-1次pass结束时的趋势分量、周期分量,初始时T^{(k)}_{v}=0;并有以下参数:

n_{i}内层循环数,

n_{o}外层循环数,

n_{p}为一个周期的样本数,

n_{s}为Step 2中LOESS平滑参数,

n_{l}为Step 3中LOESS平滑参数,

n_{t}为Step 6中LOESS平滑参数。

每个周期相同位置的样本点组成一个子序列(subseries),容易知道这样的子序列共有共有n(p)个,我们称其为cycle-subseries。内循环主要分为以下6个步骤:

外层循环主要用于调节robustness weight。然后每一次迭代的内循环中,在Step 2与Step 6中做LOESS回归时,邻域权重(neighborhood weight)需要乘以\rho_{v},以减少outlier对回归的影响。STL的具体流程如下:

为了使得算法具有足够的robustness,所以设计了内循环与外循环。特别地,当n_{(i)}足够大时,内循环结束时趋势分量与周期分量已收敛;若时序数据中没有明显的outlier,可以将n_{(o)}设为0。

参考:https://www.cnblogs.com/en-heng/p/7390310.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容