python使用Auto ARIMA构建高性能时间序列模型

ARIMA介绍

ARIMA是一种非常流行的时间序列预测统计方法。ARIMA全称是自回归积分滑动平均模型。ARIMA模型基于以下假设:

1、数据序列是平稳的,这意味着均值和方差不应该随时间变化。利用对数变换或对级数求导,可以使级数保持平稳。

2、作为输入提供的数据必须是单变量序列,因为ARIMA使用过去的值来预测未来的值。

ARIMA有三个组成部分——AR(自回归项)、I(差分项)和MA(移动平均项)。其中:

AR项:用来预测下一个值的过去值。AR项由arima中的参数“p”定义。p的值是通过PACF图确定的。

MA项:用于预测未来值的过去预测错误的数量。arima中的参数q表示MA项。ACF图用于识别正确的“q”值。

差分次数:对级数执行差分运算使其平稳的次数。ADF和KPSS等测试可以用来确定序列是否平稳,有助于识别d值。

Auto ARIMA介绍

虽然ARIMA是预测时间序列数据的一个非常强大的模型,但是数据准备和参数调整过程最终非常耗时。在实现ARIMA之前,您需要使级数保持平稳,并使用上面讨论的ACF和PACF图确定p和q的值。Auto ARIMA则对我们来说非常简单,因为它可以帮我们自动调参获得较好模型性能。以下是实现auto ARIMA的步骤:

加载数据:这一步是相同的。把数据载入你的机器

预处理数据:输入应该是单变量的,因此删除其他列

创建Auto ARIMA:适合单变量系列的ARIMA模型

预测:对验证集进行预测

计算RMSE:用预测值与实际值对比检验模型的性能

如您所见,我们完全绕过了传统ARIMA算法的p和q特性的选择。我松了一口气!下面我们将使用toy数据集实现Auto ARIMA。

Auto ARIMA模型实战(python)

我们将使用国际航空旅客数据集。该数据集包含每月乘客总数(以千计)。它有两栏数据—月和旅客人数。在进行操作前,你需要安装pyramid.arima库。

1、下载数据并预处理

2、创建模型并训练

3、模型评价

到此,我们在国际航空旅客数据集上简单实现了Auto ARIMA模型,在上面的代码中,我们简单地使用.fit()命令来拟合模型,而不需要选择p、q、d的组合。但是模型是如何计算出这些参数的最佳组合的呢?Auto ARIMA会考虑生成的AIC和BIC值(正如您在代码中看到的那样),以确定参数的最佳组合。AIC和BIC值是比较模型的估计量。这些值越低,模型越好。总的来说,Auto ARIMA比较简单,对于初学时间序列建模的同学来说比较容易入手。

结语:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181201A084PK00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券