谈R软件中的STL分解

来源:互联网 发布:云南地税网络申报平台 编辑:程序博客网 时间:2024/05/22 03:33

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

 

[原创]谈R软件中的STL分解


0 0
原创粉丝点击