geekdoc-python-zh/docs/askpython/time-series-analysis-python.md

5.2 KiB
Raw Permalink Blame History

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

原文:https://www.askpython.com/python/examples/time-series-analysis-python

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

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

什么是时间序列分析?

和所有的统计分析一样,时间序列数据是为我们感兴趣的东西收集的。通过计算机对数据进行分析,得出图形和数字结果。分析师可以使用数学趋势拟合和其他方法,甚至做出逻辑上合理的预测。这些数据还提供了一幅比通常肉眼所见更清晰的真实生活画面。

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

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

趋势是时间序列的总体长期方向。这种趋势的一个例子将是歌手和歌曲作者受欢迎程度的长期增长。这种“趋势”是多年来定期遵循的。有些系列可能没有任何特定的趋势。

当周期性的重复行为发生时,季节性就产生了。这方面的一个例子是印度六月至九月的日降雨量趋势。我们知道这每年都会发生。

当序列遵循非季节性的涨跌模式时,就会出现周期。周期可能长短不一,这使得它们比季节性更难识别。

在所有数据中,都存在随机扰动或随机变化。这被视为数据错误。无论我们的计算有多强大,总会包含一些误差。在一些数据中,误差较大,而在一些数据中,误差较小。

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

有几个库可用于时间序列分析。我们将查看前 5 个使我们能够轻松进行分析的库。

飞镖模块

首先,我们将关注 darts ,这是一个专门为时间序列开发的 python 库。Dart 支持单变量和多变量数据,这使得它对于初学者和一些有经验的分析师来说都是完美的。

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

pip install darts

t 刷新模块

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

pip install tsfresh

kats 模块

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

pip install kats

意大利面模块

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

pip install pastas

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

PyFlux

我们最后的库是 PyFlux 。PyFlex 提供了广泛的模型和推理选项。用户可以使用这个库并提出一个完整的概率模型,这样也可以找到一些关于不确定性或误差项的东西。

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

pip install pyflux

时间序列数据集

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

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

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

用户将不得不决定他们的特定用例应该遵循哪种格式,因为不同种类的分析需要不同的数据类型。

摘要

我们希望您喜欢学习 Python 中的数据分析,并期待更多这样的教程。这篇文章到此为止,要获得更多关于数据分析的精彩内容,请务必查看这个链接!