时间序列分析和建模是数据科学和机器学习的复杂部分之一。一个时间序列建模的专家需要进行各种测试,并在各种模型之间进行迭代以获得最佳结果。如果使用一个工具,我们可以使这个复杂的程序变得非常容易,并且可以向初学者解释。这听起来是一个非常有用的说法。因此,在这篇文章中,我们将讨论一个可以使时间序列分析变得非常容易和可解释的工具,名为Arauto。本文要讨论的主要内容如下。
目录
- 什么是Arauto?
- 安装Arauto
- 使用Arauto进行时间序列建模
什么是Arauto?
Arauto是一个用于时间序列分析的开源项目,使用它我们可以对我们的时间序列数据进行各种分析。同时,我们可以用它来使用ARIMA系列的各种时间序列模型。其中一些模型的例子是AR,MA,ARMA,ARIMA,SARIMA,ARIMAX和SARIMAX。
我们可以说,Arauto是一个允许我们进行时间序列分析和建模的工具,而无需编写大量的代码。通过提供一个直观的体验,它支持外生变量。使用这个工具,我们可以定制从选择特定的转换函数到测试不同的时间序列参数的过程。谈到在时间序列分析中可以利用的arauto的特点如下:
- 它支持独立变量,或者我们可以说是外生的回归者。
- 利用季节性分解的特点,我们可以分析时间序列的趋势、季节性和残留。
- 它有一个使用Dickey-fuller检验来检查时间序列的静止性的功能。
- 可以对时间序列进行各种转换,如一阶差异和季节性对数差异。
- 它们有ACF和PACF图和函数,可以用来进行术语估计。
- 有一个设施可以使用网格搜索技术进行超参数调整。
- 在任何分析或建模程序结束时,我们可以从Arauto获得该程序的python代码。
- Arauto的一个最好的特点是,我们可以根据数据得到程序的建议。
使用Google Colab安装Arauto
我们可以把这个项目安装在网络、docker或者本地系统中。由于我在这个过程中使用的是Google Colab,我们也会了解到如何让它在Google Colab环境中工作。
让我们从在Google Colab环境中安装它开始。在这个过程的最后,我们将学习如何在Colab中使用conda,以及如何在Colab中制作一个python虚拟环境。由于我们使用的是Colab,我们需要先在运行时挂载我们的驱动器。下面给出的代码可以用来装载驱动器。
from google.colab import drive
drive.mount('/content/drive')
输出:

通过点击链接,我们将得到一个授权代码,使用该代码,我们将驱动器安装到运行时上。使用下面的代码,我们可以在Google Colab环境中安装conda。
!pip install -q condacolab
import condacolab
condacolab.install()
输出:

让我们检查一下我们收到的conda的版本:
!conda --version
输出:

让我们检查一下我们安装conda的位置:
!which conda
输出:让我们检查一下我们安装conda的位置:

经过这次安装,conda已经准备好与Arauto项目一起工作了。让我们开始Arauto的安装过程。使用下面的代码,我们可以在google drive中克隆GitHub的仓库:
!git clone https://github.com/paulozip/arauto.git
输出:

下面的代码将帮助我们把克隆的软件包设置为我们的工作目录:
!cd arauto
让我们建立一个Python虚拟环境,在那里我们可以安装Arauto项目:
#creatring environment
!conda create --name arauto_env
输出:

下面的代码可以帮助我们激活我们在上面制作的环境:
# activate your conda environment
%%bash
source activate arauto_env
python
# python commands are ready to run within your environment
import sys
print("Python version")
print (sys.version)
输出:

激活环境后,我们就可以使用下面几行代码来安装该项目了:
!pip install requirements.txt
输出:

这些是我们在requirements.txt中的以下包:

安装完毕后,我们就可以使用Arauto进行时间序列分析和建模了。使用下面的代码我们可以启动Streamlit应用程序:
!streamlit run /content/arauto/run.py
输出

使用链接,我们可以访问该应用程序。我们也可以通过点击链接直接使用Aruto的网络应用:
使用Arauto进行时间序列分析和建模
正如在Arauto的介绍中,我们谈到了它的特点。在本节中,我们将使用它的一些功能,这样我们就可以对Arauto项目的使用有一个基本了解。为了练习时间序列分析和建模,我们有以下数据集的设施。

每当产生一个时间序列,它就会产生一个时间的频率,根据这个序列,我们可以使用以下的频率选项:

选择数据和频率后,我们就可以进行时间序列分析了。在左侧的面板上向下滚动将为我们提供以下选项:

使用这些选项,我们可以选择验证集上的数据数量,并根据我们的选择和要求选择图表。下面是一些使用monthly_air_passenger.csv制作的图表和测试:

历史数据
在上图中,我们可以看到时间序列的整体趋势,它贯穿了以下的年份。
季节性分解

在上图中,我们可以看到时间序列的不同组成部分(季节性、趋势和残留):
ACF和PACF图

在上图中,我们可以看到ACF和PACF的图。 为了保持数据的静止性,我们需要进行数据转换。为此,我们可以很容易地在以下选项中进行选择和迭代:

对于执行强制数据转换,Arauto有一个自动功能,它已经建议使用ADF测试的最佳转换,如下图所示:

在上面的结果中,我们可以看到什么是最佳的转换选项。有了这个,我们还可以得到最佳模型和参数值的建议,以适应该数据。
现在,只要选择预测期并点击 "施展你的魔力 "按钮,我们就可以对数据进行模型训练并得到结果。以下图片是我仅使用Arauto建议的选项进行建模得到的结果。
训练集预测

测试集预测

样例外预测

上面的预测出现在Plotly仪表盘上,上面对训练和测试数据的预测似乎是我们在复制它。通过这个,我们也得到了程序的代码,可以用来交叉检查Aruto的模型和分析。
为了对自我生成的数据进行分析和建模,我们可以使用Arauto REST API来发送。通过根据数据的路径修改下面的代码,我们可以上传数据:
curl -X POST \
http://SERVER_ADDRESS:5000/upload_file \
-H 'content-type: multipart/form-data' \
-F file=@PATH_TO_YOUR_FILE
在这里,我们已经看到了Arauto应用程序上时间序列分析的实现。
结束语
在这篇文章中,我们已经看到了Arauto包,以及它的功能是如何使时间序列分析和建模变得强大和更准确的。由于安装时只需要一些代码,我们可以说它是一个用于时间序列分析的低代码工具。我鼓励读者使用这样的工具,使分析在概念上比以前更加强大和稳健。
参考文献