使用 Python 进行时间序列分析简介

在本文中,我们将研究时间序列分析。时间序列数据是时间的数据或与时间相关的数据。准确地说,时间序列数据以特定的时间间隔进行索引,因此得名。时间序列数据的示例包括财政年度的股票价格、特定地区 10 年来每天的降雨量等。

时间序列对于数据分析师来说是一个极其重要的研究领域,并且由于Python是一种简单易用的语言,因此有许多库和模块可用于此类分析。今天我们将讨论其中的一些。

什么是时间序列分析?

与所有统计分析一样,时间序列数据是针对我们感兴趣的内容收集的。数据通过计算机进行分析,并生成图形和数值结果。分析师可以使用数学趋势拟合和其他方法甚至做出逻辑上合理的预测。这些数据还提供了比通常看到的更清晰的现实生活情况。

时间序列是在相等的时间间隔内对同一变量进行的一组数值测量。时间序列数据可以每年、每月、每季度、每周、每天甚至每小时收集。时间序列数据有四个主要方面的行为:

  • 趋势
  • 季节性
  • 周期
  • 和无法解释的变化(包括异常值)

趋势是时间序列的整体长期方向。这一趋势的一个例子是歌手和词曲作者的受欢迎程度的长期增长。多年来,人们经常跟踪“趋势”。有些系列可能没有任何特定的趋势。

当存在定期发生的重复行为时,就会出现季节性。印度 6 月至 9 月的每日降雨量趋势就是一个例子。我们知道这种情况每年都会发生。

当序列遵循非季节性的上下模式时,就会出现循环。周期的长度可能不同,这使得它们比季节性更难被识别。

所有数据中都存在随机扰动或随机变异。这被视为数据错误。无论我们的计算有多么强大,总会存在一定程度的误差。有的数据误差较大,有的数据误差较小。

用于时间序列分析的 Python 模块

有几个库可用于时间序列分析。我们将研究排名前 5 的库,这些库使我们可以轻松地进行自己的分析。

飞镖模块

首先也是最重要的,我们将关注darts,它是一个专门为时间序列制作的 Python 库。Dart 支持单变量和多变量数据,这使其非常适合初学者和一些经验丰富的分析师。

该库还具有训练神经网络的能力。该库中还实现了深度学习模型。要安装该库,请执行以下代码:

pip install darts

新鲜模块

对于第二个模块,我们将研究tsfresh模块。Tsfresh对于常见时间序列参数的计算速度非常快,可以自动计算1200多个特征,并轻松管理数据。它还支持不同的时间序列长度。由于特征选择和提取,还支持并行化。您可以通过运行以下命令来安装 tsfresh:

pip install tsfresh

kats模块

下一个必须包含的模块是KatsKats 的一个独特功能是它可以识别和报告各种时间序列模式,例如趋势、季节变化和异常值。安装 kats,请运行以下代码:

pip install kats

面食模块

值得使用的有趣模块之一是Pastas它是一个开源的python包,专门用于分析水文地质时间序列数据。您可以通过运行以下代码来安装 Pastas:

pip install pastas

Pastas 支持 ARMA 模型,如果预计会发现自相关,则可用于消除自相关。

pyflux

我们最终的库是PyFluxPyFlex 提供了广泛的模型和推理选项选择。用户可以使用该库并提出完整的概率模型,这样就可以找到有关不确定性或误差项的信息。

然而,这非常耗时。对于小型项目,用户可以使用最大似然法。使用以下命令安装 PyFlux:

pip install pyflux

时间序列数据集

数据集通常以表格格式存储,该表中的每一列都包含给定变量/特征的测量值。在时间序列数据集中,列可以包含随时间重复测量的一个或多个变量。因此,时间序列可以是单变量或多变量。

现在让我们看看时间序列数据可以存储的格式。通常有两种格式:长格式和宽格式。在长格式中,不同时间序列的值存储在同一列中。以这种方式存储数据使得必须有一个标识符列,以便我们可以在多个变量的情况下区分。

另一种格式是宽格式,其中数据的存储方式是将每个单独的时间序列存储在单独的列中。

用户必须决定其特定用例应遵循哪种格式,因为不同类型的分析需要不同的数据类型。

概括

我们希望您喜欢学习 Python 数据分析,并期待更多此类教程。这就是本文的内容,有关数据分析的更多此类精彩内容,请务必检查链接!