时间序列分析 | Python实现奇异谱分析(SSA)分解时间序列
基本介绍
时间序列分解是时序分析中的重要方法,广泛应用于时间序列预测,时间序列异常检测,时间序列聚类等场景,在工业界有很多的落地应用。
分解描述
一个时间序列往往是以下几类变化形式的叠加或耦合:
-
长期趋势(Secular trend, T):长期趋势指现象在较长时期内持续发展变化的一种趋向或状态。
-
季节变动(Seasonal Variation, S):季节波动是由于季节的变化引起的现象发展水平的规则变动
-
循环波动(Cyclical Variation, C):循环波动指以若干年为期限,不具严格规则的周期性连续变动
-
不规则波动(Irregular Variation, I): 不规则波动指由于众多偶然因素对时间序列造成的影响
其中循环波动和季节变动一般可整合分解为有规律的周期序列,而长期趋势则可整合分解为趋势序列。分解出这两种序列是时序分解中的重要课题。
这里主要使用的技术是奇异谱分析(SSA),其是根据观测到的时间序列构造轨迹矩阵,并对轨迹矩阵进行分解和重构,从而提取出代表原时间序列不同成分的信号,如长期趋势信号、周期信号、噪声信号等,从而进一步对分解得到的信号进行分析。
算法流程如下:
- 根据原始时