基于时间序列的回归问题(2)——序列去噪之奇异谱分析(SSA)

1、基本介绍

奇异谱分析(SSA)是一种用来分析和预测非线性时间序列的有效方法,它适用于分析具有潜在结构的时间序列。对于笔者正在做的基于时间序列的回归项目,对于原始数据,需要对数据进行分析去噪,从而得到较为有规律的数据为下一步的回归做好准备。SSA正是通过对所要研究的时间序列的轨迹矩阵进行分解、重构等操作,提取出时间序列中的不同成分序列(长期趋势,季节趋势,噪声等),从而进行对时间序列进行分析或去噪并用于其他一些任务。

2、基本步骤

SSA分解可分为嵌、分解、分组、重构四大步骤,各步骤基本操作如下图所示:
在这里插入图片描述

2.1 嵌入

SSA的分析对象是中心化的有限长一维时间序列 [x1,x2,…,xN],N为序列长度。首先需要选择合适的窗口长度 L 将原始时间序列进行滞后排列得到轨迹矩阵:
在这里插入图片描述
通常情况下取 L<N/2L<N/2L<N/2。令 K=N−L+1K =N-L+1K=N−L+1,则轨迹矩阵X为L×K的矩阵:
在这里插入图片描述

2.2 分解

接下来对轨迹矩阵进行奇异值分解,注意,这里是对轨迹矩阵进行SVD分解。看资料的时候就是在奇异值分解这里困惑了很久,具体来说就是将 X分解为以下形式:
在这里插入图片描述
奇异值分解(SVD)是矩阵论中的一种经典矩阵分解方式,如果想具体了解原理,请自行百度或打开矩阵论课本回顾一下奇异值分解的原理。
对于程序上的实现,这里笔者由于使用Python编写程序,这里就用了numpy.linalg.svd()这个函数。

2.3 分组

在上一步中,只是把轨迹矩阵分成了三个矩阵,但是并没有对整体时间序列做进一步的分组处理,这一步就是基于SVD做进一步的分组,将原有的时间序列分为多个不相交的组,这里有一点像主成分分析(PCA)中的做法,将原有数据按照重要程度的大小分为多个序列,为下一步的重构做准备。
我们利用SSA去噪,其实就是将原有数据的主要成分留下,将不重要的成分认为是噪声,从而去除噪声。

2.4 重构

根据实际需求,选择前n个主要成分组成新的时间序列,即实现重构,从而实现去噪的目的。

  • 9
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力改掉拖延症的小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值