时间序列分解是什么?详细介绍

导航至

企业越来越多地使用时间序列数据来了解不断变化的趋势和模式。通过分析时间数据模式,公司可以更好地预测需求、分配资源、预测客户行为并做出明智的财务决策。

但是,为了从时间序列数据集中提取价值,分析师必须将测量值和观察结果分解为更小的组成部分。实现此目的的最简单方法是使用时间序列分解。

对于任何希望释放时间序列预测价值的企业而言,理解时间序列分解至关重要。在这篇文章中,您将了解什么是时间序列分解、为什么它必不可少以及一些常用技术。

什么是时间序列分解? 

时间序列分解是将时间序列数据集分解为各个组成部分的统计过程。

软件工程师和数据分析师使用时间序列分解来发现时间序列数据集中的模式和变化。此过程简化了复杂的数据,使其更易于建模和预测未来的数据点、识别异常并做出准确的、数据驱动的决策。

时间序列分解的示例是什么?

时间序列分解在各个领域都很常见,包括经济学、零售业、医疗保健、制造业和物流业。它适用于任何希望分析历史数据和预测未来结果的组织。

时间序列分解的一个常见示例涉及研究多年来的店内客流量。为了实现此目的,企业将从原始时间序列数据开始并应用各种分解技术。通过分解,企业可以检查诸如客流量的总体增长或下降、周期性季节性模式以及可能需要进一步分析的变化等因素。

时间序列分解公式 

分解涉及将时间序列数据分解为三个组成部分:趋势、季节性和噪声。

1. 趋势 

趋势是指数据集随时间变化的模式或运动。换句话说,它指示数据移动的总体方向。趋势可以随数据变化而增加、减少或保持平稳。

2. 季节性 

季节性描述了在特定时间间隔内发生的周期性模式。例如,模式可能每天、每周、每月或每半年发生一次。

3. 噪声 

通常,数据集可能包含与趋势或季节性无关的随机变化(或噪声)。这包括不规则事件和其他导致短期波动的因素。

时间序列分解技术 

为了从时间序列中提取价值,您首先需要通过将数据分离为组成部分来操作它。考虑到这一点,两种常见的分解方法是加法模型和乘法模型。

加法模型

加法模型将时间序列表示为其各个组成部分(趋势、季节性和噪声(残差))的总和。通过将这些组成部分相加,您可以重建原始时间序列数据。

此模型对于季节性波动在其整个时间序列中幅度一致的时间序列数据是必需的。当季节性模式表明与总体数据水平相比,变化程度恒定时,这是一个不错的选择。

例如,加法模型适用于旅行社分析特定目的地的每月预订量,其中季节性变化具有稳定的绝对值。

乘法模型 

乘法模型将时间序列表示为其组成部分的乘积。换句话说,它涉及将组成部分相乘来确定数据行为。

当存在来自不同时间点的测量值时,您可以使用乘法模型来理解数据模式和行为。为了说明,汽车保险公司可以使用乘法模型来确定交通违规或索赔的季节性变化。数据集可能显示,由于季节性波动,冬季的索赔会增加或减少。这也可能揭示某些趋势,例如某些年份的索赔多于其他年份。

时间序列分解在各种语言中的工作方式

在时间序列分解方面,数据分析师可以从各种编程语言中进行选择。因此,分析师和数据科学家可以利用他们喜欢的工具和服务,使该过程灵活且方便。

考虑到这一点,以下是分解在一些常见编程语言中的工作方式的细分

Python 

许多数据分析师更喜欢使用 Python 进行时间序列分解,因为它提供了庞大的库和包生态系统。此外,Python 具有用户友好的语法,这使其对具有不同编程专业水平的个人都易于访问。Python 还提供了广泛的可视化工具,使理解和分享发现变得更加容易。 Python for time series decomposition

R

R 是另一种流行的时间序列分解语言。它提供了大量的时间序列包和一系列有用的函数和工具。它还提供了许多时间序列分解方法,包括加法模型和乘法模型。

与 Python 类似,R 也提供了强大的数据可视化包。此外,它适用于统计分析,这意味着分析师可以应用高级技术,如假设检验和残差分析。

Julia

Julia 正变得越来越流行的时间序列分解语言,尤其是在处理大型数据集时。这种语言提供了卓越的性能,因为它结合了 Fortran 和 C 等低级语言的速度以及高级的、用户友好的语法。

它也易于使用,并且可以与其他语言(如 Python、R 和 C/C++)无缝互操作。此外,Julia 还为数据分析提供了广泛的包和库,以及对分布式和并行计算的内置支持。

Rust

Rust 是另一种以其性能而闻名的语言,为大型时间序列数据集提供高速执行。更重要的是,该语言提供了可预测的性能,这对于时间序列分解非常重要,因为变化可能导致不可靠的结果。分析师还可以使用 Rust 创建自定义分解算法,从而完全控制算法实现、内存管理和底层优化。

常见问题

可以在 Excel 中执行时间序列分解吗?

可以使用 Excel 的数据分析工具和函数将时间序列分解为组成部分。例如,您可以使用 Excel 计算移动平均值、从原始观测值中减去计算出的趋势值、估计和消除季节性以及计算残差。此外,Excel 使创建图表和绘图以进行可视化变得容易。

时间序列分解和回归之间有什么区别?

时间序列分解和回归是两种用于建模和探索数据的技术,每种技术都有其独特的用途

  • 时间序列分解通常用于分析来自不同时期和定期时间间隔的时间序列数据。主要目标是将时间序列分解为更小的组成部分。
  • 回归是一种用于对变量之间关系进行建模的方法。它适用于任何类型的数据,而与时间无关。它对于探索一个或多个预测变量与结果之间的关联很有用。

什么是经典时间序列分解技术?

经典时间序列分解技术是一种将时间序列重新排列为趋势、季节性和噪声成分的方法。

此方法涉及将时间序列表示为这三个组成部分的总和。它通常是时间序列分析的起点,因为它提供了一种结构化的方法来识别数据模式。

使用 InfluxDB 增强时间序列数据分析

速度和效率对于时间序列分解的成功至关重要。工程师和分析师必须能够快速预测和实时检测异常。

但是,并非所有数据库都提供相同级别的性能和可用性,这可能会使时间序列数据分析具有挑战性。

InfluxData 提供 InfluxDB,这是一个改变游戏规则的高速平台,可以在单个专用数据库中运行所有类型的时间序列数据,从而实现更高的写入吞吐量、更快的查询和更低的存储成本。

要体验 InfluxDB 的变革性力量,立即试用