时间序列分析是一种统计方法,用于分析以固定时间间隔记录的数据点。它有助于识别模式、趋势和季节性变化,可用于预测一段时间内的结果。
处理时间序列数据的工程师和科学家可以使用时间序列分析来监控、建模和预测系统行为,从而优化系统并提高预测准确度。
时间序列数据的分量
时间序列数据可以分解成几个基本分量,以帮助理解底层模式和进行预测。
| 分量 | 定义 | 示例 | |
|
趋势 | 数据随时间变化的总体方向,例如上升、下降或保持不变 | 电动汽车技术的采用,初创公司的收入 |
|
季节性 | 在一段时间内(例如每天、每月或每年)的重复数据模式 | 电力需求在夏季月份达到高峰 |
|
周期性变化 | 数据中出现重复但非季节性的模式,持续数年 | 房地产市场周期 |
|
不规则变化 | 其他分量无法解释的不可预测的起伏 | 由于不可预见的事件,股票市场突然崩盘 |
时间序列分析步骤
分析时间序列数据涉及集成了各种技术的系统化方法,用于理解、建模和预测随时间收集的数据点。
探索性数据分析
分解
分解是一种用于将时间序列数据拆分为各个基本分量(趋势、季节性、周期和剩余部分)的方法,以便更容易分析底层模式和解释数据。
使用通过 trenddecomp 函数实现的奇异频谱分析算法,将时间序列数据集分解为长期趋势、季节性模式和其他。(请参阅 MATLAB 代码。)
模型选择和拟合
模型选择根据季节性、趋势和平稳性等特征找到最适合捕获底层数据模式的模型。模型拟合的重点是训练选定模型,以最小化所观测数据与预测之间的差异,确保它能够很好地推广到新数据。
模型预测和预报
在模型预测和预报中,在上一步中训练的模型将应用于新数据,以基于历史模式生成将来的数据点。
模型评估
模型评估涉及评估模型的性能及其预测的准确度。它由三个关键部分组成:
- 性能指标:均方根误差 (RMSE) 等指标计算预测值和实际值之间的差异,从而提供模型准确度的度量。
- 验证方法:交叉验证、回测和其他方法通过评估模型基于新数据集的预测性能来评估模型的可靠性。
- 可解释性方法:诸如与模型无关的局部可解释性解释 (LIME) 和夏普利加法解释 (SHAP) 等方法有助于理解模型预测,使模型的决策更加透明。
可视化新数据的 RMSE 值分布,以识别异常序列。(请参阅 MATLAB 代码。)
使用 imageLIME 函数可视化网络预测(请参阅 MATLAB 代码。)
时间序列建模的常用方法
时间序列数据建模的三种常见方法是传统预测模型、机器学习模型和深度学习模型。
传统预测模型
传统预测模型使用统计方法来识别和建模底层数据模式与趋势。
自回归综合移动平均 (ARIMA) 统计模型通过分析历史数据来预测将来值。它捕获趋势和季节性,使其同时适用于静态和非静态数据集,并适合中短期预测,如股票价格和销售额。
使用 System Identification Toolbox 估计 ARIMA 模型以进行时间序列预测。(请参阅 MATLAB 代码。)
指数平滑模型将指数递减权重应用于过去的观测值,优先考虑较新的数据。这种方法能够有效地平滑短期波动,同时捕获时间序列数据中的底层趋势和模式。这对于具有趋势或季节性的数据特别有用。
机器学习模型
机器学习模型可以捕获传统模型可能无法捕获的复杂数据模式。
随机森林模型构建多个决策树并组合其输出,以提高时间序列分析中的预测准确度。它们处理大型高维数据集,并且对过拟合具有稳健性。通过使用过去的数据作为预测变量,它们捕获非线性关系和交互情况,使其非常适合不规则模式建模。
支持向量机 (SVM) 是用于分类和回归的有监督学习模型。在时间序列分析中,它们可以进行非线性关系建模和处理高维数据,尤其是小型复杂数据集。例如,SVM 可以通过捕获消费历史记录、天气和经济指标之间的非线性交互预测能源需求。
图中显示使用信号处理、基于小波的特征提取和支持向量机 (SVM) 分类器对 ECG 信号进行分类,以区分心律失常 (ARR)、充血性心力衰竭 (CHF) 和正常窦性心律 (NSR)。(请参阅 MATLAB 代码。)
深度学习模型
深度学习通过直接从数据中自动学习模式和相关性来增强时间序列分析。这些模型捕获短期波动和长期趋势,使它们成为预测和异常检测的理想选择。
长短期记忆 (LSTM) 模型是一种特殊类型的循环神经网络 (RNN),旨在通过使用记忆单元和门控机制来克服传统循环神经网络的限制。这种设计使其能够有效地捕获长期相关性,从而使 LSTM 特别适用于时间序列分析任务,如预报和序列预测。
使用简单的长短期记忆 (LSTM) 网络进行闭环预测,以预测时间序列数据。(请参阅 MATLAB 代码。)
卷积神经网络 (CNN) 用于时间序列分析,因为它们可以使用卷积层从数据中自动提取特征。它们识别局部模式和层次结构,因而能够有效地识别任务(例如多元时间序列分类)的短期相关性。
使用小波分析和深度学习对时间序列数据进行分类。(请参阅 MATLAB 代码。)
使用一维卷积进行序列分类。(请参阅 MATLAB 代码。)
时间序列分析的类型
时间序列分析可以分为若干能够有效地描述、解释、预测和优化数据趋势和模式的类别:
- 描述性分析总结数据集的主要特征。它有助于理解数据中的底层模式、趋势和季节性变化。
- 说明性分析旨在理解数据中的关系和因果效应。它尝试通过检查底层因素和相关性来解释为什么某些模式或趋势会发生。
- 预测性分析使用历史数据、统计模型和机器学习算法来预测将来的趋势和模式。
- 指导性分析根据预测性的深入信息提供建议和操作。它通过评估不同场景及其潜在结果提出最佳决策建议。
时间序列分析的挑战
时间序列分析往往面临几项典型的障碍。在数据采集过程中,传感器或仪器往往以不一致的时间间隔记录数据,这对于许多旨在处理单调递增数据的时间序列模型来说是问题。准备数据可能包括处理缺失数据、离群值、噪声和其他不规则性,以及重采样数据以创建均匀时间间隔。上面讨论的探索性数据分析方法有助于缓解这些问题。
此外,时间序列数据中固有的季节性和周期性模式会使选择和拟合模型的过程变得复杂。最好首先深入了解数据集和适用的建模选项。在这些情况下,概述的建模方法以及交叉验证和其他成熟的模型验证方法会很有帮助。
经济和金融分析:了解经济指标和金融市场,为风险管理和战略规划提供深入信息。
环境监控:执行持续的环境监测和评估气候风险,这有助于了解长期趋势和风险。
预测性维护:预测设备故障并优化维护计划,减少停机时间和运营成本。
信号处理:解释来自物联网设备、传感器和健康系统的信号,以增强性能、检测异常并提高可靠性。
时间序列分析的示例
时间序列分析涉及理解和预测随时间演进的数据的方法。以下示例展示了各种应用,重点是从复杂数据集中提取有意义的深入信息的独特方法和工具。
洛马普列塔地震分析
了解如何在时间表中存储带时间戳的地震数据,并使用 timetable 函数来分析和可视化某特定时间间隔内的地表加速度,以了解地震活动。
加速度分量的时间序列。(请参阅 MATLAB 代码。)
时频分析的实用导论
了解如何执行和解释基本时频分析,以分析非平稳信号,如双音多频 (DTMF) 音调。
数字 508 的拨号 DTMF 音调的频谱图:音调持续时间和序列,强调第二列键盘输入的 1336 Hz 音调。(请参阅 MATLAB 代码。)
预测多元时间序列
了解如何对捕食者和猎物数量在猎物拥挤情况下测得的数据进行多元时间序列预测。
使用 ARMA、多项式 AR、高斯过程 (GP) 和灰盒模型对捕食者-猎物数量的比较预测分析。(请参阅 MATLAB 代码。)
使用 LSTM 对 ECG 信号进行分类
了解如何使用 LSTM 网络和时频分析对 ECG 数据进行分类。
正常和心房颤动 (AFib) ECG 信号中瞬时频率的比较。(请参阅 MATLAB 代码。)
继续探索此主题
用时间表为时间序列分析准备数据
如果您计划使用基于时间的操作,无论是在预处理任务(如处理缺失值和管理离群值)之前还是之后,您都需要将数据转换为适合时间序列分析的格式。timetable 函数是为具有时间戳的数据而设计的,它将时间与每行相关联,并存储具有相同行数的列向变量。它提供用于对齐、合并和计算数据的特定于时间的函数以及同步和重采样等特征,以便简化时间序列分析。
用时间表数据容器组织和预处理带时间戳的传感器数据,以分析自行车交通模式。(请参阅 MATLAB 代码。)
MATLAB 提供专用工具箱,根据您的具体应用领域来帮助您完成工作流。
| 应用 | 时间序列分析后续步骤 | 工具箱和主要功能 | 示例和资源 |
| 统计和机器学习 | 通过应用统计模型和机器学习算法进行时间序列数据建模 | Statistics and Machine Learning Toolbox™
|
分析时间序列数据 |
| 经济预测 | 执行计量经济学建模和分析,包括时间序列预测和假设检验 |
|
估计乘法 ARIMA 模型 |
| 动态系统建模 | 创建、估计和预测时间序列模型 | System Identification Toolbox™
|
使用时间表数据进行时域系统辨识 |
| 状态监控和预测性维护 | 通过分析传感器数据开发算法,预测设备故障并优化维护 | Predictive Maintenance Toolbox™
|
分析和选择特征以进行泵诊断 |
| 信号分析 | 过滤和分析信号;从时间序列数据中提取特征 |
|
从鲸鱼叫声中提取关注区域 |
| 深度学习 | 使用神经网络捕获复杂模式 |
|
使用深度学习进行时间序列预测 |
资源
通过文档、示例、视频等拓展您的知识。
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)