STL分解基于Loess,即局部加权回归散点平滑法,是1990年由密歇根大学的R. B. Cleveland教授以及AT&T Bell实验室的W. S. Cleveland等人提出来的一种对时间序列进行分解的方法。STL分解将时间序列分解成季节项、趋势项及残余项。
为了研究这种方法,我花了一天的时间仔细研读这篇论文,完成了17页的翻译稿(原文31页,不含讨论comment部分),基本对这种方法的原理有了大致的了解。本质上讲,这种方法是基于Loess,由内循环和外循环组成。其中,内循环包含了①去趋势、②周期子序列平滑、③对平滑后的周期子序列的低通滤波处理等6个步骤;而外循环主要作用则是引入了一个稳健性权重项,以控制数据中异常值产生的影响,这一项将会考虑到下一阶段内循环的临近权重中去。实际上,趋势分量和季节分量都是在内循环中得到的。循环完后,季节项将出现一定程度的毛刺现象,因为在内循环中平滑时是在每一个截口中进行的,因此,在按照时间序列重排后,就无法保证相邻时段的平滑了,为此,还需要进行季节项的后平滑,后平滑基于局部二次拟合,并且不再需要在loess中进行稳健性迭代。
R软件以及S-PLUS软件均提供了STL分解函数,但两个软件之间存在一些微小区别。具体可参考stl函数帮助。
下面直接给出对R软件中的co2数据进行STL分解的结果。图中最上端是原始的co2浓度随时间的变化,从1959年1月~1997年12月,共468个数据。下面依次为季节项、趋势项和残余项。从结果来看,分解的效果还是不错的。除了给出分解图,R还给出一些统计特征量,通过summary即可得到。
Time.series components:
seasonal trend remainder
Min. :-3.265996e+00 Min. :315.1541 Min. :-0.98368572
1st Qu.:-1.462496e+00 1st Qu.:323.3135 1st Qu.:-0.16954989
Median : 2.932741e-01 Median :335.3495 Median : 0.01276959
Mean :-2.899070e-09 Mean :337.0412 Mean : 0.01230954
3rd Qu.: 1.614786e+00 3rd Qu.:350.6615 3rd Qu.: 0.15367962
Max. : 3.000911e+00 Max. :364.2825 Max. : 1.05926138
IQR:
STL.seasonal STL.trend STL.remainder data
3.0773 27.3481 0.3232 26.7250
% 11.5 102.3 1.2 100.0
Weights:
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.0000000 0.8331992 0.9452152 0.8708025 0.9870979 0.9999976
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!