论文 | Deep Time Series Models: A Comprehensive Survey and Benchmark |
---|---|
作者 | Yuxuan Wang, Haixu Wu, Jiaxiang Dong, Yong Liu, Mingsheng Long, Jianmin Wang |
机构 | Tsinghua University, Beijing 100084, China |
论文 | https://arxiv.org/pdf/2407.13278 |
代码 | https://github.com/thuml/Time-Series-Library |
【注】因为系统原因本文公式无法显示,具体可查看原文或者微信公众号:【TPAMI】深度时间序列模型:全面综述与基准
作者: 王煜轩, 吴海旭, 董嘉祥, 刘勇, 龙明盛, 王建民
摘要:时间序列是一种以离散时间顺序排列的数据点序列,广泛存在于实际应用中。与其他数据类型不同,时间序列因其复杂和动态的特性而带来了独特的挑战,包括非线性模式的纠缠和时间变异趋势。分析时间序列数据在实际场景中具有重要意义,且已经被研究了数个世纪。近年来,时间序列领域取得了显著突破,技术从传统的统计方法转向先进的深度学习模型。本文从基本模块和模型架构两个角度深入分析了各种时间序列分析任务中的深度学习模型,回顾了现有文献。此外,我们开发并发布了时间序列库(TSLib),作为多样分析任务的深度时间序列模型的公平基准,该库实现了24种主流模型,涵盖了来自不同领域的30个数据集,支持五大常见分析任务。基于TSLib,我们对12种先进的深度时间序列模型进行了全面评估,实证结果表明,==具有特定结构的模型在不同分析任务中表现优异==,为研究和采用深度时间序列模型提供了见解。代码可在GitHub - thuml/Time-Series-Library: A Library for Advanced Deep Time Series Models.获取。
关键词: 时间序列分析、深度时间序列模型、综述、基准
非线性模式的纠缠:在时间序列数据中,存在多个非线性关系相互交织或交互作用的现象。这种纠缠使得很难通过简单的线性模型来捕捉和预测时间序列的变化,因为不同变量之间的关系可能不是线性的,而是高度复杂和动态的。
多变量关系:在时间序列中,多个变量可能同时受到影响,并且这些影响关系是非线性的。例如,气温、湿度和风速之间可能存在复杂的相互作用。
非线性动态:时间序列中的变化不仅受到历史值的影响,还可能受到外部因素(如季节变化、经济波动等)的影响,这些因素的作用可能是非线性的。
模式识别的复杂性:由于这些非线性模式的交织,传统的线性预测模型(如ARIMA等)可能无法有效捕捉数据的真实模式,因此需要更复杂的模型(如非线性回归、深度学习模型等)来进行分析和预测。
1 引言
时间序列指的是一组按离散时间顺序索引的数据点序列【1】【2】,广泛存在于实际应用中,如金融风险评估、能源可持续性和天气预测。随着大量时间序列数据在各个领域的不断积累,时间序列分析领域也随之发生了巨大进步。与具有明确语法结构的图像和文本数据不同,时间序列数据的语义信息主要源自时间变化【3】。因此,理解时间序列数据面临着一些显著的挑战,比如==识别顺序依赖、趋势、季节性模式和复杂的动态特征==。因此,对时间序列数据的分析需要复杂的方法来捕获和利用这些复杂的时间表示。
顺序依赖:顺序依赖是指数据点之间的关系受到时间顺序的影响。在时间序列中,先前的观测值可能会影响后续观测值的结果。这种依赖性需要模型能够捕捉到数据点随时间变化而产生的动态关系,例如股票价格、气温变化等。
趋势:趋势是时间序列数据中的长期变化方向,通常表现为数据在一段时间内的上升或下降趋势。例如,某地区的气温随着季节的变化可能会呈现出长期上升的趋势。识别趋势对于预测未来数据非常重要,因为它可以帮助分析潜在的长期变化。
季节性模式:季节性模式是指时间序列中在特定时间段内(如日、月或季度)重复出现的规律性变化。这种模式通常与自然或社会因素有关,如每年的冬季供暖需求、夏季电力需求等。识别季节性模式有助于制定更精确的预测和计划。
复杂的动态特征:复杂的动态特征指的是时间序列数据中的变化模式可能是多样化且高度复杂的,可能涉及非线性关系、多个周期性因素或外部冲击的影响。这些动态特征可能使得简单模型无法准确捕捉数据的真实行为,因此需要使用更复杂的模型(如机器学习模型)来进行分析。
鉴于时间序列数据在实际应用中的重要作用【4】【5】【6】,时间序列分析一直是一个长期的研究方向。时间序列分析包含分析时间变化的过程,以理解时间序列数据并作出准确的预测和决策。时间序列分析的核心之一是揭示数据中潜在的模式,这涉及到==数据中复杂的时间依赖和变量间的关联关系==。通过捕捉这些复杂的依赖关系,时间序列模型能够有效地揭示数据的内在动态,并支持多种下游任务,包括**==预测、分类、补全和异常检测。==**
传统的时间序列方法,如自回归积分滑动平均模型(ARIMA)【1】、指数平滑、频谱分析【7】等,一直是时间序列分析中的重要工具。这些基于统计的方法在发现时间变化中的模式、趋势和季节性方面发挥了重要作用。然而,由于其在捕捉真实世界时间序列数据中的复杂非线性关系和长期依赖的能力有限,传统方法的适应性受到限制。传统模型的线性和平稳性假设限制了它们对事件频繁变化的数据流的适应性。
长期依赖:长期依赖则是指观测值之间的关系不仅局限于最近的值,而是可能涉及到更久远的历史值。在某些时间序列中,当前的值可能受到很长时间之前的值的影响。例如,经济数据(如GDP增长率)可能会受到几年前经济政策或事件的长期影响。
深度模型在自然语言处理【16】【17】、计算机视觉【18】【19】和推荐系统【20】等多个领域获得了显著关注和出色表现。近年来,深度学习模型【3】【21】【22】【23】【24】因其能够捕捉时间序列数据中的复杂依赖关系,逐渐成为时间序列分析的强大工具,优于传统的统计方法。尤其是具有注意力机制的Transformer模型最初为自然语言处理任务开发,展现出处理大规模数据的惊人能力【17】,并已被用于时间序列数据的学习。这些架构使模型能够选择性地关注输入序列的不同部分,从而在时间序列分析中更精细地发现时间和变量间的依赖关系。
相关综述
尽管近年来设计用于不同分析任务的时间序列模型层出不穷,但缺乏对现有方法的全面综述,涵盖了任务和模型两个方面。先前的综述要么专注于特定的模型架构,要么专注于某个分析任务。例如,文献 [8], [9], [10], [11] 仅回顾了深度学习方法在特定时间序列分析任务中的应用,未能包括诸如Transformer等先进架构。几篇综述 [12], [13] 提供了侧重于特定深度学习架构(如图神经网络和Transformer)的最新时间序列分析综述。最近的BasicTS [14] 和TFB [15] 提出了用于预测的基准,旨在公平评估现有方法,但没有提供这些深度模型架构设计的概述。
image-20241101153812562
表1 我们的工作与其他相关综述的比较。我们提供了任务和模型的全面回顾,并附带基准。
在本综述中,我们为研究人员和实践者提供了深度时间序列模型的全面回顾,从==基本模块到现代架构设计==展开。为了推动实际应用,我们还提供了一个时间序列基准,便于公平评估和确定现有模型的有效范围。本文的结构如下:==第2节介绍了时间序列分析的基础概念。第3节介绍了广泛应用于主流深度时间序列模型的基本模块。第4节从架构设计的角度回顾了现有的深度时间序列模型。第5节介绍了我们提出的开源基准——时间序列库(TSLib),并展示了基于该基准的广泛实验比较及详细分析。第6节简要讨论了未来的研究方向,第7节对本文进行了总结。==
2 预备知识
2.1 时间序列
时间序列是一组按时间排序的T个观察值,可以表示为 ,其中 表示在时间点 观察到的值, 表示变量的个数。由于时间序列数据通常是从传感器等物理测量设备获得的,因此记录时通常伴有多个变量。因此,真实的时间序列通常呈现出多变量形式。理论研究【25】【26】表明,当存在两个或多个非平稳序列时,它们的线性组合可能是平稳的。这种==协整性==有助于揭示和建模非平稳序列之间的长期关系。因此,时间序列分析的本质在于捕捉和利用观测值中的时间依赖性和变量间的相关性。
如果有两个或多个非平稳的时间序列(即随时间的变化呈现不稳定的特性,比如均值和方差会随着时间变化),通过适当的线性组合(加权相加)可能会形成一个平稳序列。平稳序列是指统计特性(如均值、方差等)在时间上保持不变的序列。
这种现象称为协整性。尽管单独看这些序列是非平稳的,但它们之间可以形成一种长期稳定的关系,这样的关系可以用于建模和预测时间序列数据的长期依赖性。
时间依赖性 基于观测数据的序列特性,显而易见的技术范式是捕捉一组历史数据的时间依赖性。时间依赖性的基本思想是时间点或子序列之间的复杂相关性。传统的统计模型为建模时间依赖性奠定了基础。经典模型包括广泛应用于捕捉时间序列中复杂时间模式的ARIMA(自回归积分移动平均)模型【1】。由于其简单性和可解释性,这些统计方法在处理基础时间动态不复杂的任务中依旧受到欢迎。鉴于真实世界时间序列的高维性和非平稳性,研究重点逐渐转向深度学习方法,以更好地分析时间序列数据。这些高级方法设计用于处理更复杂的时间动态,并为捕捉时间序列数据的时间依赖性提供了更大的灵活性。
变量间相关性 除了捕捉时间依赖性外,理解高维数据中变量间的相关性在分析多变量时间序列中也具有关键作用。这些相关性指的是不同变量间的复杂交互和关联关系,随时间变化。这些相关性为数据的内在动态和变量之间的依赖性提供了重要洞见,帮助更全面地理解潜在过程。传统方法,如向量自回归(VAR)模型【27】,将自回归的概念扩展到多个变量,可捕捉多个变量随时间演变的关系。VAR模型从技术上将每个变量表示为其自身滞后值和模型中其他所有变量的滞后值的线性组合,这种设计导致无法捕捉复杂的非线性关系。近年来,图神经网络【28】和Transformer【29】【30】等先进深度模型也被引入以建模变量间的相关性。
在时间序列分析中,“滞后值”指的是时间序列数据中变量的历史值。例如,在一个变量的时间序列中,滞后值是过去的观测数据,如上一时刻的值或更早时刻的值。滞后值通常用于模型中来预测未来的数值,因为它包含了过去的趋势和变化信息。
在向量自回归(VAR)模型中,滞后值是每个变量自己以及其他变量在先前时刻的值,用于构建当前时刻的线性组合。也就是说,VAR模型假设当前值可以通过这些历史值的线性组合来解释或预测。这种方法在处理简单的线性关系上有优势,但对复杂的非线性关系则相对不足。
2.2 时间序列分析任务
基于对时间序列数据中潜在模式和趋势的理解,时间序列分析涵盖了各种下游应用任务,包括预测【31】【32】、补全【33】【34】【35】、分类【8】【36】和异常检测【5】【37】,这些任务在不同应用领域中具有独特的用途。
在时间序列分析中,“imputation”指的是数据插补,即用某种方法填补时间序列中缺失的数据点。在实际数据中,可能由于各种原因(如传感器故障、数据传输问题等)导致某些时间点的数据缺失。插补方法利用已有数据推测这些缺失值,以保持数据的完整性和连续性,从而使模型能够更准确地进行预测、分类或异常检测等分析任务。
图1展示了代表性的时间序列分析任务。预测是时间序列分析中的基本任务,要求模型揭示数据中的时间依赖性和动态模式。通过捕捉过去和未来数据之间的关系,预测模型旨在预测输入序列的未来值或趋势。由于传感器故障、数据损坏或测量缺失导致的缺失数据在实际应用中普遍存在,因此对时间序列补全的需求不断增加,以获取更高质量的数据。==与根据历史观察数据预测未来值的预测任务不同,补全关注的是使用可用的上下文信息来重建缺失值==。异常检测的目标是识别时间序列中异常或异常模式,这可以指示关键事件、系统故障或需要进一步调查的离群值。最后,分类任务基于时间序列的特征为其分配标签或类别,这一任务在如医疗诊断等领域得到广泛应用。
图 1.不同时间序列分析任务的示意图。
以下是时间序列分析任务在实际场景中的应用例子:
预测(Forecasting)
电力需求预测:电力公司使用过去的用电数据预测未来需求,确保电网的稳定和电力供应的充足。
股票价格预测:金融分析师通过分析历史股票价格数据,预测未来的价格走势,以辅助投资决策。
天气预测:气象机构通过历史气象数据预测未来天气条件,有助于防灾减灾和农事安排。
补全(Imputation)
医疗数据补全:在病人的健康监测数据中,心率、血压等因设备故障或测量间隔导致缺失时,使用补全方法重建这些缺失的数据,从而提供更完整的健康记录,支持医生的诊断。
环境监测数据补全:环境传感器采集的空气质量数据或水质监测数据中,经常会出现因设备故障或数据传输问题导致的数据缺失,通过补全技术恢复缺失的数据,有助于连续监控环境质量。
物流跟踪数据补全:在货物运输过程中,因信号问题可能导致 GPS 位置信息间断,通过补全可以推测这些间隔位置,以便掌握完整的运输轨迹。
异常检测(Anomaly Detection)
银行的欺诈检测:分析用户的交易行为,发现可能的异常交易模式,以识别潜在的信用卡欺诈或其他金融风险。
设备故障检测:工业中监控机器设备的传感器数据(如振动、温度等),当出现异常数据或模式时,及时检测以防止潜在的设备故障。
网络安全:通过分析网络流量,识别异常访问行为,检测可能的网络攻击或系统入侵行为。
分类(Classification)
医疗诊断:根据患者的心电图(ECG)或脑电图(EEG)时间序列数据,进行疾病分类,帮助医生进行心脏病或癫痫的诊断。
人类活动识别:根据可穿戴设备记录的加速度数据分类用户的活动类型(如走路、跑步、骑车等),用于健康监测和行为分析。
语音识别:通过分析语音的时间序列数据,对不同的声音进行分类,将其识别为特定的单词或短语,用于语音助手或电话客服系统。
3 基础模块
时间序列建模方法经历了显著的演变,从传统的统计模型发展到复杂的深度学习模型。尽管取得了这些进步,许多经典工具和分析算法仍然广泛使用,并继续作为现代深度模型中的基础设计原则。在本节中,我们将重点介绍经典时间序列分析的主要工具,并展示它们如何作为当代深度时间序列模型的基本组成部分进行整合。
3.1 平稳化
平稳性是时间序列分析中的一个基础概念,指的是时间序列的统计特性随时间保持不变。一个平稳的时间序列具有恒定的均值和方差,这简化了统计分析,并有助于捕捉时间序列中的潜在模式和行为。由于许多基于统计的时间序列分析方法将平稳性视为基本假设,因此时间序列数据的平稳化成为了一个基本模块。将非平稳时间序列转换为平稳序列的传统方法包括差分或对数变换。近年来的深度学习方法则采用数据==归一化==【38】作为一种简单而有效的平稳化方法,它在保持固有变化的同时标准化观测值的分布,从而进一步减轻源域和目标域之间的分布偏差。
image-20241112165459814
深度自适应输入归一化(DAIN)层【39】被提出用于根据原始分布自适应地平稳化时间序列数据。RevIN【40】引入了可逆实例归一化作为时间序列数据的一种有效的归一化和去归一化方法,通过可学习的仿射变换使模型能够绕过非平稳的输入。Non-Stationary Transformer【41】(在下文简称为Stationary)提出了一种更为简单但更有效的序列平稳化技术,在无需额外参数的情况下提高了非平稳序列的预测能力。具体来说,对于一个具有 个时间戳和 个变量的序列 ,Stationary的流程可以概括如下:
其中, 是用于数值稳定的小值, 和 是特定变量的均值和方差。为了恢复原始序列的分布和非平稳性,进一步使用去归一化模块将模型输出 增强为输入的均值和方差统计信息。
平稳化的理念及上述技术已在后续的深度时间序列模型【23】【30】【42】【43】中被广泛应用。最近的SAN【44】重新审视了非平稳数据的本质,并尝试将其分割为不重叠的等大小片段,对每个片段执行归一化。具体而言,基于统计属性的演变趋势,SAN引入了一个统计预测模块,用于预测未来片段的分布。
3.2 分解
分解【45】【46】作为时间序列分析中的一种传统方法,可以将时间序列分解为具有不同模式的多个组成部分,主要用于探索复杂的序列变化。在以往的工作中,已探索出多种不同的分解方法。
3.2.1 季节-趋势分解
季节-趋势分解【47】【48】是一种常用的处理方法,它能够将原始数据分解为不同的成分:趋势、季节性、周期性和不规则项。即:
其中,趋势成分 表示数据随时间变化的整体长期模式,周期性成分 反映了数据中的非周期性波动,季节性成分 表示固定周期内重复出现的模式,不规则项 是在去除其他成分后剩余的时间序列残差。
可以使用滤波器或指数平滑【49】【50】等数学工具实现趋势-季节性分解。传统的统计方法主要将趋势-季节性分解作为数据预处理步骤【51】。在深度学习模型中,Autoformer【22】首次将分解的概念引入到深度学习架构中,并提出了一个系列分解块作为基本模块,用于从输入序列和深度特征中提取季节性和趋势-周期性成分,其计算过程可简化为:
该序列分解块基于带填充操作的时间平均池化层简单实现,以保持序列长度不变。通过这种设计,可以捕捉趋势成分 ,剩余部分则作为季节性成分 。所提出的序列分解块已在后续的研究【6】【52】【53】【54】【55】中被广泛应用,成为深度模型的原生构建模块,以便分离深度特征中的潜在模式。
3.2.2 基函数展开
基函数展开是一种数学方法,用于以新的预定义函数集表示一个函数或一组数据点。这些新函数构成一个函数空间的基,意味着该空间中的任何函数都可以表示为这些基函数的线性组合。
在时间序列分析的背景下,基函数展开用于揭示复杂的非线性时间关系,通过将时间序列分解为基本变化的组合,提升了可解释性。作为代表性模型,N-BEATS【56】通过全连接层生成回归和前向预测的展开系数,对时间序列进行层级分解。对于在其提出的分层架构中的第 层块,其操作如下:
其中, 是回溯结果,限制该块对输入信号 的近似。然后, 从 中移除已很好估计的信号部分,从而实现分层分解。 是基于分解输入 的部分预测,最终预测结果 为所有部分预测的和。
随后,N-HiTs【57】通过在全连接块之前引入子采样层对N-BEATS进行了重新定义,这通过多频率数据采样强化了输入分解,并通过多尺度插值优化了未来预测。DEPTS【58】引入了一种新的周期时间序列的解耦公式,通过引入周期状态作为隐藏变量,并在残差学习的基础上开发出深度扩展模块,用于在观察信号和隐藏的周期状态之间进行逐层扩展。类似地,DEWP【59】也是一种分层扩展模型,专门处理多变量时间序列数据,其中每一层由一个变量扩展块构成,用于捕捉多个变量之间的依赖关系,并包含一个时间扩展块以学习时间依赖性。
3.2.3 矩阵分解
上述两种分解方法主要用于单变量序列或在多变量序列中独立于变量进行应用。接下来,我们讨论一种基于因子分解的多变量序列分解方法。具体来说,许多实际场景中的多变量时间序列数据可以视为高维数据,其形式为矩阵,其中行对应于变量,列对应于时间点。由于多变量时间序列中的变量往往具有高度相关性,因此可以将其降至一个更加紧凑的空间。矩阵分解方法【60】通过将高维序列数据分解为两个在低维潜在空间中的矩阵乘积来工作。对于一个多变量时间序列 ,如图 2 所示,矩阵可近似为两个较低秩的嵌入矩阵的乘积:
其中,,, 为超参数。
image-20241108180817356
除了估计,矩阵分解中还引入了正则化项,以避免过拟合。在分解中,传统设计通常采用平方Frobenius范数作为正则化项,而时间正则化矩阵分解(TRMF)【61】则设计了基于自回归的时间正则化,以描述潜在时间嵌入之间的时间依赖性。此外,文献【62】进一步扩展了TRMF,提出了一种新的空间自回归正则化方法,能够在低秩潜在因子中同时学习空间和时间的自相关性。NoTMF【63】将向量自回归过程与差分操作整合到经典的低秩矩阵分解框架中,以更好地建模带有趋势和季节性的真实世界时间序列数据。消除了调节正则化参数的需求,BTF【64】是一种完全贝叶斯模型,将概率矩阵分解与向量自回归过程结合到单一的概率图模型中。不同于基于自回归的时间正则化,DeepGLO【65】利用了时间卷积网络作为正则化手段,以捕捉非线性依赖性。LSTM-GL-ReMF【66】包含一个基于LSTM的时间正则化器,用于学习复杂的长短期非线性时间相关性,以及一个图拉普拉斯(Graph Laplacian)空间正则化器【67】,用于捕捉空间相关性。
平方Frobenius范数:这是用于衡量矩阵中每个元素平方和的一种数学度量,用于衡量矩阵的大小。假设有一个矩阵 :
其平方Frobenius范数为 。平方Frobenius范数在矩阵分解中常作为一种正则化手段,用于限制矩阵分解中的过大值,以防止过拟合。例如,在推荐系统中,它可以避免模型过度依赖少数数据,从而提高泛化能力。
低秩潜在因子:低秩潜在因子指的是将矩阵分解成更低复杂度的形式,用更少的维度去描述原数据。例如,电影推荐系统中,矩阵行表示用户、列表示电影,矩阵元素是评分。通过低秩分解可以找到每个用户和电影的主要特征(例如“喜欢动作片”或“喜欢喜剧”),将其压缩为少数“潜在因子”,大幅减少需要存储的数据量。这样可通过少数因子来重建原矩阵,同时捕捉到数据中的主要信息。
向量自回归过程(VAR):向量自回归是一种用于多个时间序列数据的模型。假设要预测股市中三个指标的未来走势:股票价格、交易量和波动率。VAR模型会根据这三个变量在过去若干时间点的数值,建立相互依赖的模型来预测未来的数值。例如,VAR可以说明在一个时间点上,价格和交易量的变化如何影响未来的波动率。VAR模型适合捕捉变量间复杂的相互关系。
差分操作:差分操作是一种用于平稳时间序列的方法。假设一组数据表示某产品的月销量:[100, 105, 110, 115, 120]。这组数据有一个稳定增长趋势,不适合直接分析。使用差分操作可以将其转换为[5, 5, 5, 5],去除趋势后数据变得更平稳,更适合建模分析。差分操作在金融和经济数据分析中非常常见,有助于消除时间序列中的趋势,使模型预测更准确。
低秩矩阵分解:低秩矩阵分解是一种降维方法。例如,在图像处理领域,一幅灰度图像可以看作一个大矩阵,行和列分别代表像素位置,元素代表像素灰度值。使用低秩矩阵分解,将图像分解成少数几个矩阵相乘,保持图像主要特征的同时压缩数据。这种方法在推荐系统、图像压缩中广泛使用,可提取核心信息并去除冗余数据。
概率矩阵分解:这是将概率统计引入矩阵分解的一种方法。比如在电影推荐中,评分矩阵可能含有未评分的数据。通过概率矩阵分解,系统可以根据已有评分生成概率分布,估计每个用户对未评分电影的喜好度。这种方式通过概率表示评分预测的不确定性,可以更灵活地处理数据中的缺失值。
时间卷积网络(TCN):时间卷积网络用于处理时间序列中的前后依赖关系。不同于RNN(递归神经网络),TCN采用卷积层来捕捉长期和短期的依赖。假设有一组温度数据,TCN可以通过多层卷积,分析不同时间点的温度变化趋势,用于短期和长期的天气预测。TCN在捕捉非线性时间模式方面比传统模型更高效。
长短期记忆网络(LSTM):LSTM是一种改进的RNN,专门用于处理长序列数据中的依赖关系。举例来说,如果你要根据一篇长文预测某句中的关键词,LSTM会利用“记忆单元”来保留前面内容的关键信息,以便预测当前词汇。LSTM在机器翻译、语音识别中表现出色,因为它能够记住数据的长期依赖并自动忘记不重要的信息。
图拉普拉斯(Graph Laplacian):图拉普拉斯是一种描述网络中节点连接关系的数学工具。例如,在一个社交网络中,图的节点表示用户,边表示用户之间的关系。图拉普拉斯矩阵可以帮助我们分析用户群体的特征,找到相似用户或群体。图拉普拉斯正则化在空间数据建模中常用,比如在地理数据分析中描述不同地理区域的相似性。
3.3 傅里叶分析
傅里叶分析【68】【69】能够将物理信号转换到傅里叶域,从而突出原始数据的固有频率特性,在广泛的领域中被广泛认可为一种有效的分析工具。由于时间序列通常以离散时间点的形式记录,即通过采样获得的原始连续信号,傅里叶分析已成为时间序列建模中的主流工具之一,其有效性和效率得到了广泛验证【70】【71】。引入傅里叶域不仅增强了对原始序列的表示,还提供了全局视角,因为频谱分布可以揭示时间序列的重要周期特性。在实践中,快速傅里叶变换(FFT)【72】和小波变换(WT)【73】作为连接离散时间域和频率域的基础算法,已在深度时间序列模型的模块设计中获得了广泛应用【74】【75】【76】【77】【78】【79】【80】【81】。现有方法大致可分为两类:时域建模和频域建模。
3.3.1 时域建模
傅里叶变换的基本原理是序列数据可以通过一系列周期信号来分解和表示。因此,它可以通过分析最大振幅的分量来识别数据中可能的主导周期和对应的频率。作为典型实践,TimesNet【3】利用快速傅里叶变换(FFT)提取具有最高振幅值的主要频率,随后根据识别的周期将一维时间序列数据重塑为二维空间,以便更好地进行表示学习。继TimesNet之后,PDF【82】提出具有更大值的频率可以在长短期关系之间提供更清晰的区分。
除了利用傅里叶变换获得的序列信息外,一些工作尝试通过快速傅里叶变换(FFT)进行高效计算。自相关是时间序列分析中的一个基本概念,用于衡量数据序列中不同时间点的观测值之间的依赖关系。Wiener-Khinchin定理【83】提供了自相关函数与平稳随机过程的功率谱密度(PSD)之间的数学关系,其中自相关函数表示功率谱密度的逆傅里叶变换。Autoformer【22】提出了一种自相关机制(Auto-Correlation Mechanism),结合高效的快速傅里叶变换捕捉序列间的相关性。
频域表示提供了幅度和相位信息,其中低频成分对应于信号中的缓慢变化或趋势,而高频成分则捕捉快速变化或精细细节。大量研究集中于利用频域信息增强模型在捕捉时间依赖性方面的能力。FiLM【84】引入了频率增强层(Frequency Enhanced Layers, FEL),将傅里叶分析与低秩近似相结合,保留与低频傅里叶成分和顶层特征空间相关的部分,从而有效减少噪声并提升训练速度。FITS【85】集成了一个低通滤波器(LPF),以消除超过指定截止频率的高频成分,从而在压缩模型尺寸的同时保留了关键信息。从相反的观点出发,FEDformer【86】提出仅保留低频成分对于时间序列建模是不够的,因为这可能会忽视数据中的重要波动。基于上述考虑,为捕捉时间序列的全局视角,FEDformer通过随机选择一定数量的傅里叶成分(包括高频和低频成分)来表示时间序列。
3.3.2 频域建模
基于信号处理中的时频分析,一些方法被开发出来用于在时间和频率域中同时研究时间序列。ATFN【87】包括一个增强的序列到序列模型,该模型可以学习复杂非平稳时间序列的趋势特征,并设计了一个频域模块用于捕捉动态和复杂的周期性模式。TFAD【88】引入了一种基于时频分析的模型,该模型采用时间卷积网络来学习时间域和频率域的表示。
一些工作开发了专门的深度学习架构以处理时间序列的频域。STFNet【75】对输入信号应用短时傅里叶变换(STFT),并直接在频域中进行滤波、卷积和池化操作。StemGNN【28】结合图傅里叶变换(GFT)和离散傅里叶变换(DFT)来同时建模跨序列的相关性和时间依赖性。EV-FGN【89】在时空平面上对嵌入执行二维离散傅里叶变换,并通过图卷积同时捕捉频域中的时空依赖性。FreTS【90】利用离散傅里叶变换(DFT)将数据转换为频域频谱,并引入了为复数设计的频域多层感知机(MLP),分别对实部和虚部进行建模。FCVAE【91】将全局和局部频率特征同时集成到条件变分自编码器(CVAE)的条件变量中。最近,TSLANet【92】提出了一种轻量级的自适应频谱模块(ASB),通过全局和局部滤波器的傅里叶乘积来替代自注意力机制。FourierDiffusion【93】探索将扩散的基于得分的随机微分方程(SDE)扩展到复数数据,并在频域实现时间序列扩散。
傅里叶分析:傅里叶分析是一种将复杂信号分解为不同频率的正弦波的技术。它可以揭示信号中的周期性特征或趋势。例如,心电图中的傅里叶分析可以分离出心跳的基础节奏和可能存在的异常波动。
傅里叶域:傅里叶域指的是信号在频率方面的表示,相对于时间域的信号表示。简单来说,傅里叶域显示的是一个信号由哪些频率组成以及每个频率的强度。这样可以帮助识别数据的周期性变化特征。例如,在股市数据中,可以通过傅里叶域看到某只股票是否有周、月、或年周期性的价格波动。
频谱分布:频谱分布描述信号在不同频率上的能量或强度。它可以揭示时间序列数据中的周期性成分。例如,在语音信号中,高频段通常包含清晰度的信息,低频段通常反映音调特征。
快速傅里叶变换(FFT):FFT是一种高效计算傅里叶变换的算法,大大加快了分析的速度。例如,在音频处理软件中,FFT可以快速将声音分解为不同频率,以便进行均衡、降噪等处理。
小波变换(WT):小波变换是另一种将信号转换到频率域的方式。不同于傅里叶变换将整个信号分解为固定频率的波,小波变换使用“短暂波段”来分解信号,能够同时分析数据的时间和频率信息。例如,小波变换可以同时查看某音频信号在特定时间段的频率内容,适用于分析随时间变化的非稳定信号。
时域建模:在时域建模中,分析是基于数据的时间特征。时域建模注重时间序列中每一时间点的数值,适用于数据的波动和趋势。时域模型在股市、气温预测等日常领域有广泛应用。
频域建模:频域建模基于数据的频率特征,而非时间点。例如,在气象数据中,频域建模可以揭示一年内的季节性变化特征,而无需关注每天的具体温度值。
自相关:自相关是衡量时间序列中不同时间点之间的相似性。例如,在日销售量数据中,自相关可以用来查看周末的高销量是否会持续到下周的同一天。高自相关表明过去的值对当前数据有显著影响。
功率谱密度(PSD):功率谱密度描述的是信号在频率上的能量分布,显示出信号在哪些频率上最强。假设一项经济指标有明显的年度周期,则其功率谱密度会在1年周期的频率上显示出高峰。
自相关函数的逆傅里叶变换:这是通过自相关计算来得到数据的频谱分布。Wiener-Khinchin定理指出,通过信号的自相关可以推导出它的频谱,即信号在不同频率上的强度。
自相关机制(Auto-Correlation Mechanism):在Autoformer等模型中,利用自相关机制,通过捕捉数据的周期性特征和时间依赖性来改进预测效果。例如,预测电力负荷时,自相关机制可以帮助模型更好地捕捉日常、每周或每月的周期性。
4 模型架构
如第2节所述,时间序列模型需要挖掘观测数据中的内在时间依赖性和变量相关性。在本节中,我们将对现有的深度时间序列模型进行技术回顾。如图3所示,现有的工作可以根据其主干架构分为五类,即基于MLP、RNN、CNN、GNN和Transformer的模型。
image-20241108180526440
4.1 多层感知机(MLP)
作为传统统计时间序列模型的代表,自回归(AR)模型假设模型输出线性依赖于自身的历史值。受自回归模型显著表现的启发,多层感知机(MLP)成为了时间序列数据建模的流行架构。
作为线性模型的代表性工作,N-BEATS【24】是一种纯MLP的深度时间序列模型,不包含任何特定时间序列知识,用于捕捉时间序列中的时间模式。具体而言,正如公式(4)中描述的,N-BEATS由全连接层深度堆叠组成,每层包含两个残差分支:一个用于回溯预测,另一个用于前向预测。扩展了神经基展开分析的理念,N-HiTs【57】采用多频率信号采样和分层插值,而N-BEATSx【94】则通过结合外生变量来提升预测性能。
最近的研究DLinear【52】(又称为LTSF-Linear)质疑复杂深度架构在时间建模中的有效性。该研究提出,在原始空间中的简单线性回归可以在模型性能和效率上表现出色。正如图4所示,流行的MLP深度时间序列模型主要由简单的线性层组成,主要设计用于预测任务。同样轻量但有效的FITS【85】认为时间序列分析可以作为频域中插值的任务,进一步提出在频域中引入一个复数线性层来学习幅度缩放和相位移动。受到计算机视觉中MLP-Mixer【95】的启发,一些工作尝试使用MLP来建模时间和变量依赖性。TSMixer【96】包含交替的时间混合和特征混合MLP,以便从不同角度提取信息。为了更好地捕捉时间序列数据中的全局依赖性,FreTS【90】研究了在频域MLP中学习的模式,MLP在跨序列和跨时间尺度上操作,以捕捉多变量数据中的通道依赖和时间依赖。
image-20241108180949052
最近的研究不仅仅是利用离散时间点上的简单线性层。TimeMixer提出时间序列在不同采样尺度上表现出不同的模式,并提出一种基于MLP的多尺度混合架构。TiDE【97】通过结合外生变量来增强时间序列的预测性能。基于库普曼理论和动态模式分解(DMD)【98】,Koopa【99】通过端到端的预测训练框架分层解耦动态,能够利用实时传入的序列进行在线预测。
4.2 循环神经网络(RNN)
循环神经网络(RNN)专门用于建模序列数据【100】【101】【102】,广泛应用于自然语言处理【103】和音频建模【104】等领域。由于时间序列本身也具有序列特性,RNN成为分析时间序列数据的一种热门选择。现有的基于RNN的深度时间序列模型主要集中在解决**==由简单递归结构引起的梯度消失问题,以及建模多变量之间的相互关联==**。早期研究【106】【107】【108】【109】【110】使用RNN的变体来建模时间依赖性。
LSTNet【111】结合了卷积层和递归结构,以捕捉变量间的短期局部依赖关系和长期模式。此外,该模型引入了基于周期模式的递归跳跃组件,以缓解在建模长期依赖性时的梯度消失问题。同样地,DA-RNN【112】结合了递归单元和双阶段注意力机制,能够在每个时间步自适应地提取相关的序列。除了用于确定性预测外,DeepAR【113】提出了一种自回归递归网络模型,用于预测未来时间点的概率分布。技术上,该模型不仅学习了时间序列中的季节性行为,还学习了给定协变量下不同时间序列之间的依赖关系,从而允许模型即使在缺乏历史数据的情况下也能做出预测。
**"给定协变量"**指的是在进行预测时,除了历史时间序列数据之外,还会考虑一些其他已知的信息或变量,这些变量被称为协变量。协变量不受实验设计控制或不受干预变量影响,但它们可能会影响因变量,即我们想要预测的目标变量。在时间序列预测中,协变量可以是任何与目标变量有相关性并且可以提供额外信息的变量,例如天气、经济指数、政策事件分类等。通过结合这些协变量,模型能够捕捉到时间序列数据中更复杂的模式和依赖关系,从而提高预测的准确性。简而言之,给定协变量就是在时间序列预测中,除了历史数据之外,还会考虑的其他影响预测结果的变量。
image-20241114175118730
基于马尔科夫状态表示的另一类经典数学框架是**==状态空间模型(SSM)==**【114】,它在随机动态系统中捕捉观测量之间的概率依赖关系。具体而言,单输入单输出(SISO)线性状态空间模型定义如下:
其中 、 和 分别表示输入信号、隐藏状态和输出信号。系统由矩阵 、、 和 表征,这些矩阵可以通过深度神经网络学习得到。
SSM在处理结构化时间序列数据时表现出色,但传统方法需要分别对每个时间序列样本进行重新拟合,因而无法从类似时间序列的数据集中推断出共享的模式。随着深度学习模型的兴起,现代SSM通常以递归方式实现。通过自适应地传播一个确定性的隐藏状态,RNN能够表示连续数据中的长期依赖性,提供了经典状态空间模型的替代方案。因此,一些工作【115】【116】尝试将经典状态空间模型与深度神经网络相结合。代表性模型Deep State Space Model(DSSM)【117】利用递归神经网络(RNN)来参数化特定的线性SSM,结合结构假设以学习复杂模式。Structured State Space sequence model(S4)【118】引入了一种新的SSM参数化方法,通过在矩阵 ( A ) 上施加低秩修正,使其可以稳定地对角化,从而提升了模型在长期建模中的能力。与S4类似,LS4【119】是一个生成模型,具有遵循状态空间常微分方程(ODE)演变的潜在空间。
近期的Mamba【120】在建模长上下文序列数据方面表现出色,随序列长度线性缩放。Mamba采用一种简单的选择机制,通过基于输入对SSM参数进行参数化,可以像注意力机制一样辨别信息的重要性,为序列建模提供了有效的方式。
4.3 卷积神经网络(CNN)
由于时间序列数据的语义信息主要隐藏在时间变化中,卷积神经网络(CNN)【18】【121】凭借其捕捉局部特征和模式识别的能力,成为时间序列分析中的一种有力架构。通过卷积和分层特征提取,CNN在各种计算机视觉任务中取得了显著成功,如图像分类【122】、分割【123】和目标检测【124】。
考虑到时间序列数据的时间连续性,早期工作【125】【126】【127】主要采用一维卷积神经网络(1D CNN)来捕捉时间序列数据的局部模式。最近,SCINet【128】采用了具有分层下采样-卷积-交互架构的常规卷积,用于捕捉时间序列数据在不同时间分辨率下的动态时间依赖性。受掩码卷积【129】的启发,Wavenet【130】引入了因果卷积和膨胀因果卷积以建模长期时间因果关系。与Wavenet类似,Temporal Convolutional Networks(TCN)【131】使用堆叠的膨胀卷积核,其膨胀因子逐渐增大,从而获得较大的感受野。然而,TCN的有限感受野使得其难以捕捉时间序列数据中的全局关系。基于TCN,MICN【132】是一种结合了局部-全局卷积的网络,通过不同的卷积核从局部和全局视角建模时间相关性。ModernTCN【133】通过分别使用深度卷积(DWConv)和卷积FFN来捕捉跨时间和跨变量的依赖性。由于DWConv设计用于学习时间信息,因此对各个单变量时间序列逐一操作,以学习每个序列的时间依赖性。
除了在一维空间中操作,受时间序列数据周期性特性的启发,TimesNet【3】将一维时间序列数据 转换为一组二维张量 (在每个TimesBlock中)以估计周期长度,其中跨周期变化表现为张量列,周期内变化则表现为张量行。这里, 是一个超参数,对应多个不同周期的一维到二维转换。随后TimesNet在转换后的二维张量上应用了inception块【134】【135】,可以总结如下:
其中, 是第 个转换的二维张量。通过inception块 后,学习到的二维表示被转换回一维用于聚合。这些转换使得TimesNet能够有效地同时捕捉多尺度的周期内和周期间变化。此外,通过利用分层卷积层,TimesNet能够学习高层和低层的表示,促进四大任务的全面时间序列分析。
image-20241114183215056
4.4 图神经网络(GNN)
在多变量时间序列数据中,由于变量之间的相关性通常较为复杂且非线性,分析这些数据往往具有挑战性。为了解决此问题,图神经网络(GNN)【136】【137】被广泛应用于时间序列分析中。通过将多变量数据建模为时空图,其中每个节点代表一个变量,GNN可以提取相邻节点间的关系,并捕捉节点属性随时间的演变,从而为理解多变量时间序列的内在动态提供了强有力的框架。
image-20241114202736467
图神经网络的核心目标是建模多变量数据中潜在的拓扑关系,因此现有基于GNN的工作可大致分为两类,具体取决于图结构是否作为模型的输入。DCRNN【138】将交通的空间依赖性建模为有向图上的扩散过程,并通过扩散卷积来捕捉空间依赖性,同时利用递归神经网络捕捉时间动态。同样地,STGCN【139】结合了图卷积网络,以捕捉交通传感器之间的空间依赖性,并采用时间卷积来捕捉时间序列数据中的时间依赖性。Graph WaveNet【140】将图卷积和膨胀因果卷积结合起来,并通过节点嵌入学习自适应的依赖矩阵,使模型能够自动捕捉空间-时间图数据中的隐藏空间依赖关系。类似地,AGCRN【141】通过节点自适应参数学习和数据自适应图生成模块增强了传统的图卷积网络,能够在没有预定义图结构的情况下自动捕捉空间和时间相关性。MTGNN【142】引入了图学习层,以自适应学习图的邻接矩阵,从而捕捉多变量时间序列数据中的隐藏关系。STFGNN【143】通过生成的时间图使用了空间-时间融合图神经网络,以学习局部空间-时间异质性和全局空间-时间同质性。StemGNN【28】利用图傅里叶变换(GFT)和离散傅里叶变换(DFT)的优势,在频域中对多变量时间序列进行建模。
4.5 Transformer
在自然语言处理(NLP)【16】、【144】、【145】、【146】、【147】和计算机视觉【19】、【148】、【149】、【150】领域取得巨大成功的背景下,Transformer模型在时间序列分析中也成为一种强大的骨干网络。受益于自注意力机制【151】,基于Transformer的模型能够捕捉长期的时间依赖性以及复杂的多变量相关性。正如图8所示,现有的基于Transformer的时间序列模型可以根据注意力机制所用表示的粒度划分为三类:点级(point-wise)、块级(patch-wise)和序列级(series-wise)方法。
4.5.1 点级依赖性
由于时间序列的序列特性,大多数现有的基于Transformer的工作使用时间序列数据的点级表示,并应用注意力机制来捕捉不同时间点之间的相关性。在这些点级建模方法中,数据嵌入是一个关键组件,用于将时间序列数据的值映射到高维表示空间。给定时间序列 及其相应的时间戳信息,其中 (C) 为变量数,(D) 为时间戳类型数量,嵌入模块可以概括为如下公式:
其中 , 是嵌入表示的维度。值投影 和时间戳嵌入 通过通道维度的线性层实现, 表示绝对位置嵌入,用于保留输入序列的顺序上下文信息。
公式解释:
为了更好地将Transformer架构应用于时间序列领域,研究人员主要在==设计预处理模块和修改注意力机制两方面==展开探索。正如3.1节中所述,过往的RevIN【40】和Stationary【41】通过在标准Transformer前后引入标准化与反标准化模块,实现了更优的性能。此外,Stationary【41】进一步提出了去稳态注意力机制(De-stationary Attention),以避免过度稳态化问题。
==由于经典的注意力方法会导致计算复杂度呈二次增长==,许多高效Transformer【21】、【22】、【86】、【153】被提出,以减少由点级建模导致的复杂度,详见表2。LogSparse【152】提出了卷积自注意力机制(Convolutional Self-Attention),通过使用因果卷积生成自注意力层中的查询和键,以替代标准注意力机制。Informer【21】引入了查询稀疏度测量(Query Sparsity Measurement),测量结果越高的查询越可能包含显著信息。基于这一稀疏度测量,Informer设计了仅使用测量结果较大查询的概率稀疏自注意力(ProbSparse Attention),从而减少了时间和内存上的二次复杂度。Pyraformer【153】构建了一个多分辨率C阶树,并开发了一种金字塔注意力机制(Pyramidal Attention Mechanism),其中每个节点只能关注其邻近、相邻和子节点。通过计算注意力的掩码,Pyraformer能够在线性时间和空间复杂度下捕捉短期和长期的时间依赖性。
1. 因果卷积(Causal Convolution)
因果卷积是一种特殊的卷积运算方式,用于确保卷积只依赖于过去的时间点,而不包含未来的信息。这在时间序列建模中尤为重要,因为我们在预测时只能看到历史数据。因果卷积通过在计算时将未来的时间点“屏蔽”掉,保证输出仅与过去的输入有关,从而避免了“未来信息泄漏”。这对自注意力机制的应用很有帮助,使得模型能够对序列信息进行有序依赖。
2. 查询稀疏度测量(Query Sparsity Measurement)
查询稀疏度测量用于判断哪些查询(Query)包含更显著的信息。自注意力机制通过计算每个查询和所有键的相似度来衡量其重要性。然而,在大规模时间序列中,计算所有查询和键的相关性是耗时的。查询稀疏度测量通过一种度量方式,识别出较重要的查询,聚焦在这些查询上以提升模型效率。换言之,这一机制帮助模型忽略掉无关或不重要的部分,专注于核心信息,减少了计算量。
3. 概率稀疏自注意力(ProbSparse Attention)
基于查询稀疏度测量,Informer模型引入了概率稀疏自注意力来选择性计算注意力权重。概率稀疏自注意力(ProbSparse Attention)是一种仅对较重要查询计算注意力的机制,能够筛选出最相关的查询以执行注意力运算,从而避免在所有时间点之间进行复杂的全局计算。这种方法显著降低了自注意力机制的计算复杂度,尤其适合长序列时间序列的建模。
4. 多分辨率C阶树(Multi-Resolution C-Order Tree)
多分辨率C阶树是一种分层结构,用于在不同分辨率下表示时间序列信息。Pyraformer将序列结构设计为C阶树,使得模型可以在多个分辨率上查看序列。C阶树中的节点按时间顺序分布,其中不同分辨率的节点可以捕捉不同时间尺度的信息。这样,模型既可以关注短时间内的细节信息,也可以在更大时间尺度上捕捉长期依赖。
5. 金字塔注意力机制(Pyramidal Attention Mechanism)
金字塔注意力机制是一种分层的注意力计算方式,模拟了从局部到全局逐步扩展的注意力结构。在Pyraformer中,金字塔注意力机制规定每个节点只能关注它的邻近节点、相邻节点和子节点,形成一种逐步扩展的层次结构。这种分层关注的方法减少了全局注意力带来的计算负担,使得注意力计算在保证局部与全局信息融合的同时仍能保持较低的计算复杂度。
6. 注意力掩码(Attention Mask)
注意力掩码用于选择性屏蔽注意力计算中不需要的部分。在Pyraformer的结构中,注意力掩码用来确保模型的注意力计算只在特定的节点之间发生,遵循其邻近、相邻和子节点的约束。掩码能够屏蔽掉不相关的时间点,使得注意力计算变得更加高效,从而减少了计算和存储的复杂度。
4.5.2 块级依赖性
在自然语言处理(NLP)和计算机视觉(CV)领域,块级架构在Transformer模型中发挥了关键作用【16】【19】。由于点级表示不足以捕捉时间数据中的局部语义信息,若干研究【23】【154】【155】致力于探索时间序列数据中的块级时间依赖性。
开创性的Autoformer【22】提出了一种自动相关机制(Auto-Correlation Mechanism),它能够捕捉时间序列的序列级依赖性,以替代经典的点级自注意力。基于随机过程理论【156】,Auto-Correlation利用快速傅里叶变换(FFT)发现不同子序列之间的时延相似性。时延模块进一步被用来聚合来自潜在周期的相似子序列,而非仅关注离散点之间的关系,这首次探索了基于Transformer的模型中的子序列级建模。
不同于修改注意力机制,大多数近期的研究使用时间序列数据的块级表示并执行自注意力机制,以捕捉块级依赖性【23】【54】【157】。==PatchTST【23】和后续工作将时间序列 (X) 划分为重叠的块序列,并按照以下公式嵌入每个块:==
====
==假设块长度为 ,相应的块数为 , 表示第 个块,序列长度为 。这些块通过时间线性投影 和可学习的位置嵌入 映射到潜在空间。==
3. 核心思想
捕捉块级依赖性:通过将时间序列划分为块,模型可以更有效地捕获不同时间段之间的关系,而不是逐点建模。
降低计算复杂度:块级建模减少了时间序列的长度,降低了自注意力机制的计算量,同时保留了序列的局部特性和全局特性。
image-20241116153558430
基于标准注意力机制,PatchTST【23】学习块级依赖性。超越PatchTST,最近的Pathformer【158】提出了一种具有自适应路径的多尺度Transformer模型。基于不同尺度的块划分,自适应路径选择由路由器生成的权重最高的块大小,以捕捉多尺度特性。
PatchTST的成功部分归因于其通道独立设计,每个时间块级标记仅包含单一序列的信息。除了捕捉单个序列内的块级时间依赖性,最近的研究【54】【157】还致力于捕捉不同变量的块间依赖性。==Crossformer==【29】引入了一个包含跨时间阶段和跨维度阶段的两阶段注意力层,以高效地捕捉每个块标记之间的跨时间和跨变量依赖性。对于获得的嵌入向量 ,总体注意力阶段可以描述为:
其中 是用于聚合和分发信息的可学习向量数组。
==上面内容公式解释:==
MSA:多头自注意力机制(MSA, Multi-Head Self-Attention)
image-20241116155036490
4.5.3 序列级依赖性
为了进一步扩展感受野,一些研究尝试使用整个时间序列的标记化来捕捉跨序列的依赖性。iTransformer【30】为多变量数据引入了变量嵌入,对于第 个变量 ,可以简单地表示为:
其中 是一个可训练的线性投影器。基于每个序列的全局表示,iTransformer利用标准Transformer(不进行任何架构修改)来捕捉多变量时间序列数据中的相互相关性。类似地,TimeXer【159】专注于带外生变量的预测,使用块级和序列级表示来分别处理内生和外生变量。此外,还引入了内生全局标记(endogenous global token)作为一个桥梁,用以捕捉内生变量间的时间依赖性及外生和内生变量之间的关联,从而实现整体协同建模。
5 时间序列库
时间序列分析已成为一个重要的研究领域,吸引了学术界和工业界的广泛关注。近年来,基于深度学习的方法在时间序列分析中取得了显著进展。然而,公平的基准测试问题成为该领域的一个紧迫挑战。缺乏公平、合理和全面的基准可能会导致不同方法之间的对比出现偏差,影响其效果的准确评估,这既可能夸大领域进展,也可能阻碍实际应用。这为理解进展并促进该领域的稳健发展带来了实质性的障碍。
在时间序列分析领域,已提出了多个基准,如DGCRN【160】、LibCity【161】、DL-Traff【162】、TS-bench【163】和BasicTS【14】。尤其是Autoformer【22】提出了一个覆盖不同实际应用的标准长期预测基准。此外,为了验证不同时间序列分析模型的通用性,TimesNet【3】构建了一个更全面的模型泛化基准,涵盖了五大主流的时间序列分析任务。然而,这些基准通常存在一些局限性。当前时间序列基准的一个问题在于其对时间序列分析任务和特定领域的覆盖有限,从而限制了其实际应用。此外,这些基准往往缺乏对任务类型、模型架构和特定基准方法的详细讨论和全面总结。因此,它们并未有效地指导更高效的时间序列分析方法的设计或推动该领域的进一步发展。
为了有效解决这些问题,我们引入并实现了时间序列库(Time Series Library,TSLib),这是一个用于公平和全面比较与评估深度时间序列模型在各种时间序列分析任务上的性能的基准。如图9所示,TSLib涵盖了统一的模型实验流程、标准化的评估协议、丰富多样的真实世界数据集、主流及先进的时间序列分析模型,以及统一的实验验证和分析过程。
在我们的时间序列库中,我们严格按照官方代码,实施了24个广泛使用且先进的深度时间序列分析模型。这些模型来源于四种经典的深度学习架构。用户可以根据实际使用场景从这些模型中进行选择。代码可在GitHub上获取。
接下来,我们将详细描述我们的TSLib,包括设计和实现原则(5.1节)、评估协议和指标(5.2节)、数据集描述(5.3节),以及具有不同架构模型的主要结果(5.4节)。
image-20241116163837691
5.1 设计与实现原则
TSLib基于成熟的工厂模式设计,实现了数据和模型对象之间的统一接口,从而实现了深度模型创建和使用的清晰分离,促进了模块化和灵活性。通过加载不同的数据和模型对象并在模型训练期间结合特定任务头,TSLib支持不同的数据集和模型的共享和扩展,方便在各种时间序列分析任务之间轻松切换。这些设计和实现原则为TSLib提供了更高的灵活性和可扩展性。
此外,如图9所示,TSLib引入了一个统一的实验流程,涵盖了模型训练和评估的全过程,包括数据源、数据处理、模型训练与分析、以及模型性能评估。以下是该实验流程的具体步骤:
-
数据源:我们的 TSLib 广泛支持各种不同类型的数据集,包括".csv"、".npz"、".txt "等多种格式。如图 9 和表 3 所示,TSLib 目前支持==四种主流时间序列分析任务中 30 多种不同采样频率的数据集==,这些数据集均来自能源、交通、经济、气象和医学等领域的真实场景。此外,TSLib 还具有出色的可扩展性,可以毫不费力地集成不同数据类型的新数据源。
-
数据处理:数据处理在时间序列分析的稳定训练中起着关键作用。TSLib提供了多种数据处理步骤,包括时间窗口分割、数据批次生成等。原始数据经过这些处理后,被分成训练集、验证集和测试集,便于模型的训练和公平的对比。作为准确可靠的结果获得过程,这些步骤在多样化的时间序列分析任务中都是必不可少的。
此外,TSLib还支持许多基于不同模型设计原则的关键且有效的数据处理策略【39】【40】【41】【45】,以提升模型性能和训练效率。我们在基础的数据处理层中封装了多种策略,如数据标准化、时频分解和傅里叶分析等。用户可以根据具体需求在TSLib中选择这些策略,以提升训练效果。
-
模型训练与分析:在数据处理阶段后,原始时间序列数据被转化为模型训练所需的格式。模型训练是整个实验流程的核心,在此阶段,我们基于输入数据优化模型参数,以最小化误差并获得最佳效果。训练的主要目标是获得在模型性能上显著提升的可训练参数。模型分析过程则用于通过比较训练和验证损失来确定最优的模型参数。TSLib包括完整的日志记录和结果存储功能,用于记录和评估训练过程。通过合理的模型分析技术,可以有效地获得高性能且具备更强泛化能力的模型。
-
性能评估:模型评估是验证训练后时间序列模型有效性和泛化能力的关键步骤。它包含模型预测和性能评估,提供关于模型效率的重要见解。在TSLib中,我们提供了分类、填补、预测(长期或短期)和异常检测四大主流时间序列分析任务的评估支持。每个任务都配有特定的评估指标,以全面评估模型的表现。这些指标在判断训练模型的有效性及其任务适用性方面发挥了重要作用。
image-20241116165419629
5.2 评估协议
为了进行公平且全面的模型性能验证,我们的时间序列库(TSLib)为四种主流时间序列分析任务提供了标准化的评估协议【3】。这些标准化和统一的评估协议的主要目的是量化不同时间序列分析方法在各种架构下的有效性,同时提供这些方法在多样化时间序列分析任务中的优缺点洞察。通过建立这些评估协议,我们力求促进不同方法之间的公平比较,并加深对其在各种时间序列分析场景下性能的理解。
-
长期预测和填补:我们主要采用均方误差(MSE)和平均绝对误差(MAE)作为长期预测和填补任务的评价指标。这些指标帮助我们准确评估预测和填补结果的精度。
-
短期预测:对于短期预测任务,我们使用对称平均绝对百分比误差(SMAPE)和平均绝对比例误差(MASE)作为评价指标。这些指标更关注绝对误差,同时减少异常值的影响,从而在不同数据集和方法下提供可靠的预测准确度评估。
-
分类:在时间序列分类任务中,我们利用准确率(Accuracy)作为评价指标。准确率通过计算正确分类的样本比率来衡量整体预测表现。
-
异常检测:在异常检测任务中,我们采用F1分数来评估异常检测的准确性。F1分数是精确率和召回率的平衡组合,在处理不平衡类时提供了全面的分类器表现评价,尤其适合检测异常数据。
5.3 数据集
TSLib包含了多种主流数据集,覆盖了不同的样本数量和类别、丰富的任务以及多样化的领域。在本节中,我们将重点介绍TSLib中包含的用于各类时间序列分析任务的代表性数据集。
-
分类:时间序列分类的目标是根据时间序列的时间特征为其分配标签或类别。为了评估这一能力,我们从UEA时间序列分类档案【164】中选择了十个多变量数据集,已在TSLib中提供支持。这些数据集涵盖了多种实际任务,包括手势、动作、音频识别和心跳监测等医学诊断。我们根据【165】中的描述对这些数据集进行了预处理,详细的数据集描述见表3。
-
填补:由于数据缺失情况时常发生,时间序列中可能存在部分缺失值,这对时间序列分析带来了挑战。因此,时间序列填补在实际应用中至关重要,其目的是根据上下文信息填补序列中的缺失值。我们的基准选取了电力变压器温度(ETT)、电力和天气数据集,以不同的缺失率来评估填补任务的性能。
-
预测:时间序列预测是时间序列分析中的基础任务,已在学术界和工业界得到广泛研究。通过利用历史模式和趋势,模型可以预测时间序列的未来值或趋势。时间序列预测大致可以分为长期预测和短期预测。对于长期预测任务,我们的基准涵盖了多个数据集,包括ETT、电力、天气、交通、汇率和疾病(ILI)数据集。对于短期预测任务,我们选择了M4数据集【166】,其中包括六个具有不同采样频率和领域的子数据集。
-
异常检测:异常检测的目标是识别时间序列中的异常模式,这些异常可能表示关键事件、故障或需要注意的离群点。TSLib中支持一些主流的异常检测数据集,包括服务器机器数据集(SMD)【167】、火星科学实验室(MSL)【168】、土壤湿度主动被动卫星(SMAP)【168】、安全水处理(SWaT)【169】和汇集服务器指标(PSM)【170】等工业场景数据。
5.4 主要结果
为了评估各种方法在主流时间序列分析任务中的优劣,我们从TSLib中选择了十二个具有代表性的模型。这些模型涵盖了四种常见的深度学习架构,应用于长期和短期预测、分类、填补和异常检测等任务。
-
基准模型:为了进行公平的比较分析,并全面探讨不同模型架构在多种时间序列分析任务中的有效性,我们使用基于不同深度架构的最新模型进行了对比实验。如图10所示,我们选取了一些先进且具有代表性的Transformer模型,包括iTransformer【30】、PatchTST【23】、Autoformer【22】、Non-Stationary Transformer (Stationary)【41】和FEDformer【86】来验证性能。此外,我们还选取了CNN模型TimesNet【3】和SCINet【128】进行比较。对于RNN模型,我们选择了创新且有效的Mamba【120】。最后,DLinear【52】、N-BEATS【24】和TiDE【97】作为MLP模型的代表参与分析。值得注意的是,TiDE【97】设计上依赖特定的时间戳,无法直接应用于不含时间戳的任务,如短期预测、异常检测和分类。
-
统一实验设置:对于长期预测任务,我们进行了两种实验设置以确保比较的公平和全面性:统一超参数设置和超参数搜索。==在统一超参数设置中,我们对不同数据集采用标准化超参数,准确评估不同架构时间序列模型的相对性能。==对于“超参数搜索”情境,我们针对不同模型架构和时间序列数据集分别进行超参数搜索,从而找出不同模型的最佳表现。通过这两种设置,我们对不同时间序列模型的预测性能有了更全面的理解。对于其他任务,我们按照【3】中的标准实验设置来验证模型的性能。
-
==总体结果:==根据不同架构模型的总体结果(见图11),我们惊讶地发现,尽管MLP模型架构较为简单且计算开销较低,但在时间序列预测任务中表现出色。然而,在其他任务中,这些模型的表现相对较弱,因这些任务要求模型学习更具信息量的表示。相反,基于CNN的模型展示了更全面的能力,在分类、填补和异常检测任务中表现优异。基于RNN的模型在异常检测任务中表现良好,但整体效能相较于其他模型架构有限。Transformer模型在各类时间序列分析任务中则表现出极具竞争力的性能,得益于Transformer架构强大的数据建模能力,使其在多种任务中均展现出显著的优势。这进一步表明,Transformer架构在时间序列分析领域中具有显著的研究价值和应用潜力,已成为一种特别有前景的选项。
总结:MLP模型结构在预测方面任务表现出色,CNN模型架构在分类、填补、异常检查表现更为突出。Transformer架构的模型表现效果再多个方面都出色。
image-20241116180630687
-
任务表现:如图10所示,我们提供了四个代表性时间序列分析任务的详细结果以及前三名的表现排名。这些结果清楚地表明,基于Transformer的模型(如iTransformer【30】和PatchTST【23】)在长期和短期预测任务中展现出优越的预测能力。这进一步证实了探索不同的时间序列建模方法的重要性。此外,TimesNet【3】在时间序列分类、填补和异常检测任务中展示出全面而有效的表现,为通用时间序列分析模型设立了里程碑。
我们相信,TSLib能够为未来的研究和实际应用提供有用的代码起点、关于模型特性的宝贵见解以及模型选择的指导。
6 未来方向
在本节中,我们将讨论时间序列分析中一些有前景的研究方向。
6.1 时间序列预训练
预训练-微调(pretraining-finetuning)是一种常见的学习范式,主要用于自然语言处理(NLP)和计算机视觉(CV)领域的两阶段学习。预训练通过无监督学习在大规模数据上构建模型的基本能力,而微调则提升预训练模型在特定任务或领域中的表现。
随着标注数据集的有限性问题,自监督预训练在自然语言建模和计算机视觉领域中受到广泛关注。自监督预训练方法显著降低了标注成本,并对多种下游任务表现出良好的效果。近年来,时间序列数据的自监督预训练方法不断涌现,主要分为对比学习和掩码时间序列建模两大类。
下游任务 是机器学习领域中的一个术语,指的是模型在完成预训练或主要任务后应用于的具体任务。下游任务通常是实际需要解决的特定问题,模型在这些任务上的表现直接反映了其预训练效果的好坏。
image-20241116184526144
==什么是下采样?==
image-20241116184625702
对比学习是通过对比相似和不相似样本对来学习数据表示的方法,其中相似的样本对被学习到彼此靠近,而不相似的样本对则被学习到彼此远离【180】【182】【183】。尽管 SimCLR【182】在计算机视觉领域表现出显著的成功,但直接将其应用于时间序列数据领域的效果不佳,这是由于对时间依赖性的建模不足。CPC【184】提出了对比预测编码(Contrastive Predictive Coding),利用模型预测的特征作为正样本,随机采样的特征作为负样本,从而获得有利于下游任务的时间序列表示。TimeCLR【185】提出了一种基于 DTW(动态时间规整)的数据增强方法,通过生成相位偏移和幅度变化现象来保留时间序列的结构和特征信息。TS-TCC【186】设计了针对时间序列数据的高效数据增强方法,并通过提出的时间对比模块(Temporal Contrasting Module)和上下文对比模块(Contextual Contrasting Module)来学习判别性表示。TS2Vec【187】采用了一种分层对比学习方法,从实例级和块级的角度在不同增强的上下文视图之间定义对比损失,为每个时间戳生成鲁棒的上下文表示。此外,LaST【188】借鉴了变分推理理论【189】,提出了季节-趋势表示学习和解耦机制。CoST【190】提出了一种对比学习框架,用于学习长序列时间序列数据的解耦季节-趋势表示。TF-C【191】开发了一种基于频率的对比增强方法,利用丰富的频谱信息并探索时间-频率一致性。
掩码建模是一种基于重建的方法,其通过序列中未掩码部分的上下文来预测被掩码的标记【16】【181】【192】。TST【193】遵循 BERT【16】提出的预训练范式,提出了一种针对多变量时间序列的预训练框架。此外,PatchTST【23】将时间序列数据分割为多个不重叠的块,并提出了一种基于块级别掩码建模的方法。SimMTM【194】将掩码建模与流形学习联系起来,提出了一种基于系列表示空间中学习到的相似性的邻域聚合设计来进行重建。HiMTM【195】提出了一种新颖的分层掩码时间序列预训练框架,有效捕捉时间序列数据的多尺度特性。TimeSiam【196】构建了一种非对称掩码重建任务,以捕捉随机采样的过去和当前子序列之间的内在时间相关性,并基于 Siamese 网络学习时间依赖的内部表示。
6.2 大规模时间序列模型
随着大型语言模型(LLMs)的发展,利用大规模模型来解决时间序列下游任务已成为未来的研究方向。当前研究为大规模时间序列模型提供了以下两条可能的路径。
6.2.1 时间序列基础模型
深度学习领域的最新进展,尤其是基础模型(Foundation Models, FMs)的出现,在自然语言处理和计算机视觉中取得了显著成就。与早期的深度模型不同,基础模型通过在大量数据上预训练,获得广泛的通用知识。基于基础模型在捕获上下文信息和语义理解方面的成功,探索能够有效学习复杂时间依赖关系并捕捉时间序列内在动态的通用时间序列基础模型将是一个有前景的方向。初步尝试如TimeGPT【199】、Lag-LlaMa【200】和Timer【155】主要聚焦于单变量时间序列数据。然而,在实际预测场景中,结合外部因素(如天气或节假日)等与目标时间序列的时间变化相关的信息非常关键。因此,发展能够处理多模态数据的多模态时间序列基础模型将成为未来的趋势。MOIRAI [201] 试图将多变量时间序列展平为包含所有变量的单个序列,但其对其他下游分析任务的泛化能力尚未得到充分探索。除了对序列间依赖关系进行建模外,对时间序列与其他外部因素之间的关系进行建模还可以更好地理解时间序列数据。这些外部因素可能以其他模态的形式出现,例如文本数据或日历数据,因此多模态学习是多模态时间序列基础模型开发的未来趋势。
6.2.2 大型语言模型的适应
大型语言模型 (LLM) 在解决各种自然语言处理任务方面取得了重大进展。GPT [17]、[146] 和 LLaMA [202]、[203] 等模型的成功就是一个例子,事实证明,LLM 擅长通过简单地遵循提供的提示来推广到看不见的任务。因此,在时间序列领域释放 LLM 的力量已成为一个有前途的未来研究方向。目前的研究提出了以下两种可能的大型时间序列模型路线图。
微调预训练语言模型 基于相似的顺序性质,微调预训练语言模型以使其具备时间序列分析能力已成为一个很有前途的研究课题。将 LLM 应用于时间序列时,必须先对时间序列进行标记,然后再将其提供给预先训练的模型。因此,为时间序列调整 LLM 包括两个关键组成部分:时间序列标记化和时间序列分析任务的有效微调方法。LLM4TS [204] 提出了一种两阶段的微调策略,包括使 LLM 与时间序列数据的细微差别保持一致的时间序列对齐阶段,以及下游任务的微调阶段。LLMTime [205] 将时间序列预测视为文本中的下一个标记预测,并尝试将时间序列数据编码为一串数字。最近的 Chronos [206] 引入了一种基于现有基于 Transformer 的语言模型架构的预训练概率时间序列模型。从技术上讲,Chronos 使用缩放和量化将时间序列值分词为固定词汇表,并通过交叉熵损失在这些分词化的时间序列上训练模型。受益于 LLM 的生成能力,大多数现有研究都集中在时间序列预测任务上。GPT4TS [207] 通过使用预先训练的 GPT-2 模型并微调每个分析任务的位置嵌入和层归一化参数,为不同的时间序列分析任务提出了一个统一的框架。
提示大型语言模型 最近的大型语言模型表现出强大的上下文学习 [146] 和指导遵循 [208] 的能力。因此,利用自然语言指令或任务示例来指导模型处理新任务的范式已成为一种开创性的方法 [209]、[210]、[211],它已成为时间序列分析任务的潜在解决方案 [212]。最近的文献,如 PromptCast [212]、UniTime [213] 和 TimeLLM [214],侧重于研究提示模板以使 LLM 能够执行预测任务。还有其他以 Autotimes [55], [215] 为代表的作品,它们试图为时间序列数据设计软提示。然而,现有的提示方法是为预测量身定制的,如何将 LLM 用于预测之外的其他时间序列任务相对尚未探索。
6.2.2 大型语言模型的适应
大型语言模型在解决多种自然语言处理任务方面取得了重大进展。例如,GPT和LLaMA模型表现出色的泛化能力,通过简单的提示便能完成新任务。因此,将大型语言模型的强大能力引入时间序列领域成为了一个潜力巨大的研究方向。
-
微调预训练语言模型:由于时间序列数据具有与自然语言相似的序列性质,微调预训练语言模型以支持时间序列分析任务已成为重要课题。关键在于如何对时间序列进行适当的标记化处理。LLM4TS提出了一种两阶段微调策略,通过时间序列对齐和下游任务微调阶段来增强模型的表现。Chronos则通过量化和缩放时间序列值形成固定词汇表来进行训练,从而支持生成任务。
-
大型语言模型的提示学习:近期,大型语言模型展现了强大的上下文学习和指令遵循能力。提示学习通过使用自然语言指令或任务示例来引导模型执行新任务,为时间序列分析任务提供了新的解决方案。例如,PromptCast等工作尝试通过提示模板来执行预测任务。然而,现有的提示方法主要集中在预测任务上,如何将大型语言模型扩展到预测以外的时间序列任务仍需进一步探索。
6.3 实际应用
6.3.1 处理超长时间序列
尽管深度时间序列模型在广泛的下游任务中展示了卓越的表现,但其在超长时间序列数据上的适用性常常受限于可扩展性和高计算复杂度。在工业时间序列分析中,高频采样通常会生成大量的历史数据,这对先进深度模型的实际应用形成了阻碍。现有方法通常通过分块技术来应对长序列问题,并在输入长度增加时相应地增加分块长度以降低计算复杂度。然而,模型性能与分块长度密切相关,因此仅通过增大分块大小来降低复杂度可能会牺牲模型的能力。因此,探索深度模型在处理更长时间序列方面的局限性是一个有前景的研究课题。
6.3.2 利用外生变量
由于时间序列中的变化通常受到外部因素的影响,包含外生变量以更全面地了解这些因素至关重要。在时间序列预测任务中,外生变量的使用已得到广泛讨论,并通过统一训练的方式将其纳入模型以辅助时间序列建模,而无需单独进行分析。然而,在实际应用中,与多变量时间序列分析不同,主要变量和协变量通常处于不同的位置。鉴于外生变量在现实应用中的关键作用,探索一种统一的框架来建模内生变量与外生变量之间的关系显得尤为重要。这将有助于更全面地理解不同变量之间的相互关系和因果关系,从而提高模型的表现、可靠性和可解释性。
6.3.3 处理异质数据
在时间序列分析领域,关于异质时间序列数据建模的研究尚属未开拓领域。异质时间序列数据包含了多种不同特征,如采样率变化、不规则性和不同的长度尺度。这些多样性特征使得构建能够有效捕捉数据内部模式和关系的模型变得极具挑战性。此外,当前深度学习模型对固定尺寸输入的需求限制了其应对异质时间序列数据动态特性的能力。应对这些挑战需要创新的方法,以适应每个时间序列的独特特征,同时仍能捕捉跨多个序列的整体模式。这可能涉及开发新的特征提取技术、将领域知识融入模型设计,或探索更适合处理变长输入的替代架构。随着研究者继续在时间序列分析中探索这一未开拓的领域,金融、医疗和环境监测等领域有望取得显著进展。通过提升我们对异质时间序列数据的建模和分析能力,我们可以更深入地洞察复杂系统,并基于预测分析做出更为明智的决策。总体而言,在这一领域的进一步研究对提升我们对时间数据动态的理解和增强时间序列建模在现实应用中的能力具有巨大潜力。
7 结论
在本综述中,我们系统性地回顾了深度模型在时间序列分析中的应用,并引入了一个用于各类时间序列分析任务的公平基准库——时间序列库(TSLib)。与以往专注于特定分析任务或模型架构的综述不同,本文对现有的时间序列分析深度模型进行了全面的综述,涵盖了预测、分类、填补和异常检测等任务。首先,我们详细介绍了在时间序列模型中广泛使用的通用模块,包括归一化、分解和傅里叶分析。接着,我们从骨干架构的角度总结了现有的深度时间序列模型。在对现有文献进行回顾的基础上,我们提出了一个开源的时间序列库(TSLib),其中包含了代表性深度时间序列模型,可以作为时间序列分析领域的公平评估基准。最后,基于AI领域的最新发展和时间序列分析在实际应用中的需求,我们讨论了深度时间序列模型的未来研究方向。
[返回上面内容](####3.3 傅里叶分析)
傅里叶分析解释
傅里叶分析是一种用于将复杂信号分解为一系列正弦波的数学方法,这些正弦波各自具有特定的频率、振幅和相位。傅里叶分析的核心在于将时间域(即随时间变化的数据)信号转化为频率域,使得信号的周期性特征变得清晰易见。这种分析方法在物理学、工程学、经济学和生物学等许多领域有广泛的应用。
-
傅里叶分析的基本原理
傅里叶分析基于一个核心概念,即任何周期性或准周期性信号都可以表示为不同频率的正弦波和余弦波的和。这一概念由法国数学家傅里叶提出,因此得名“傅里叶分析”。
假设一个周期信号 ( f(t) ),傅里叶分析将其表示为一系列正弦和余弦波的组合,即傅里叶级数:
其中, 表示信号的直流成分, 和 是傅里叶系数,代表每个频率的振幅, 是基频。对于非周期信号,可以使用傅里叶变换来将信号转换到频率域:
傅里叶变换的结果是频域上的一个复数函数 ,其模长表示各个频率成分的振幅,角度则表示相位信息。
-
傅里叶分析的步骤
傅里叶分析通常包括以下几个步骤:
-
获取信号数据:例如,采集一段心电图的电压随时间的变化数据。
-
选择采样频率:根据奈奎斯特采样定理,采样频率必须至少是信号最高频率的两倍,以避免混叠现象。
-
应用傅里叶变换:使用快速傅里叶变换(FFT)将时间域数据转换到频率域,得到各个频率成分的振幅和相位信息。
-
分析频谱:通过频谱图查看信号中不同频率成分的强度,识别出主要的周期性或频率特征。
-
傅里叶分析示例
示例:心电图(ECG)信号分析
在心电图信号中,傅里叶分析可以揭示出心跳的基础节奏以及可能的异常波动。假设采集到一段心电图数据,该数据通常包含P波、QRS波群和T波,反映了心脏的电活动。
-
应用傅里叶变换:对心电图信号执行FFT后,我们可以获得频域上的振幅谱。振幅谱的高峰对应于心跳的基本频率,通常在低频范围内。
-
识别异常频率:如果在较高频段出现异常峰值,可能暗示着心律不齐或其他问题。医生可以根据这些频率特征判断患者的心脏健康状况。
-
傅里叶分析在时间序列建模中的作用
在时间序列建模中,傅里叶分析用于识别周期性或季节性模式。例如,股票价格或电力负荷数据通常表现出日、周或年周期性波动。通过傅里叶分析可以找到这些周期成分,从而在预测模型中加以利用,提高预测的准确性。
示例:电力负荷预测
电力负荷通常在每天、每周或每年会有明显的周期性变化。利用傅里叶分析对历史负荷数据进行处理,可以将这些周期性模式提取出来,用于短期或长期负荷预测。
-
傅里叶变换步骤:对电力负荷数据进行傅里叶变换,得到频域的频谱。
-
识别周期:通过频谱可以识别出每日高峰(例如早上和晚上用电高峰)或周末高峰等不同周期。
-
建模:将识别到的周期性特征融入到预测模型中,使得模型能够在短期内更准确地预测电力负荷。
-
傅里叶分析的优点与局限性
-
优点:傅里叶分析提供了一种直接的方式来识别信号中的周期性模式,有助于处理平稳的周期性时间序列。
-
局限性:傅里叶分析无法有效处理非平稳信号(即频率成分随时间变化的信号),对于这类信号,需要采用小波变换等方法进行时频分析。
总结来说,傅里叶分析是时间序列数据分析中的重要工具,能够帮助识别数据的周期特征和频率结构。在许多应用中,它可以作为提取特征和模型构建的基础。