@创建于:2022.03.28
@修改于:2022.03.28
1、Auto-Arima介绍
ARIMA是一种非常流行的时间序列预测方法,它是自回归综合移动平均(Auto-Regressive Integrated Moving Averages)的首字母缩写。ARIMA模型建立在以下假设的基础上:
- 数据序列是平稳的,这意味着均值和方差不应随时间而变化。通过对数变换或差分可以使序列平稳。
- 输入的数据必须是单变量序列,因为ARIMA利用过去的数值预测未来的数值。
ARIMA有三个分量:AR(自回归项)、I(差分项)和MA(移动平均项):
- AR项是指用于预测下一个值的过去值。AR项由ARIMA中的参数‘p’定义。“p”的值是由PACF图确定的。
- MA项定义了预测未来值时过去预测误差的数目。ARIMA中的参数‘q’代表MA项。ACF图用于识别正确的‘q’值。
- 差分顺序规定了对序列执行差分操作的次数,对数据进行差分操作的目的是使之保持平稳。像ADF和KPSS这样的测试可以用来确定序列是否是平稳的,并有助于识别d值。
通过预测结果来推断模型阶数的好坏毕竟还是耗时耗力了些,一般可以通过计算AIC或BIC的方式来找出更好的阶数组合。pmdarima模块的auto_arima方法就可以让我们指定一个阶数上限和信息准则计算方法,从而找到信息准则最小的阶数组合。
2、安装
pip
pip install pmdarima
conda
conda config --add channels conda-forge
conda config --set channel_priority strict
conda install pmdarima
3、代码示例
Fitting a simple auto-ARIMA on the wineind dataset:
import pmdarima as pm
from pmdarima.model_selection import train_test_split
import numpy as np
import matplotlib.pyplot as plt
# Load/split your data
y = pm.datasets.load_wineind()
train, test = train_test_split(y, train_size=150)
# Fit your model
model = pm.auto_arima(train, seasonal=True, m=12)
# 到底需不需要fit?官方没有fit
# http://www.javashuo.com/article/p-kbvzydbl-ee.html
# model.fit(train)
# 模型导出与载入
import joblib
joblib.dump(model,'auto_arima.pkl')
# model = joblib.load(model,'auto_arima.pkl')
# make your forecasts
# predict N steps into the future
forecasts = model.predict(test.shape[0])
# Visualize the forecasts (blue=train, green=forecasts)
x = np.arange(y.shape[0])
plt.plot(x[:150], train, c='blue')
plt.plot(x[150:], forecasts, c='green')
plt.show()
4、参数介绍
4.1 全参数英文介绍
调出参数方式
from pmdarima.arima import auto_arima
help(auto_arima)
Help on function auto_arima in module pmdarima.arima.auto:
auto_arima(y, X=None, start_p=2, d=None, start_q=2, max_p=5, max_d=2, max_q=5, start_P=1, D=None, start_Q=1, max_P=2, max_D=1, max_Q=2, max_order=5, m=1, seasonal=True, stationary=False, information_criterion='aic', alpha=0.05, test='kpss', seasonal_test='ocsb', stepwise=True, n_jobs=1, start_params=None, trend=None, method='lbfgs', maxiter=50, offset_test_args=None, seasonal_test_args=None, suppress_warnings=True, error_action='trace', trace=False, random=False, random_state=None, n_fits=10, return_valid_fits=False, out_of_sample_size=0, scoring='mse', scoring_args=None, with_intercept='auto', sarimax_kwargs=None, **fit_args)
Automatically discover the optimal order for an ARIMA model.
The auto-ARIMA process seeks to identify the most optimal
parameters for an ``ARIMA`` model, settling on a single fitted ARIMA model.
This process is based on the commonly-used R function,
``forecast::auto.arima`` [3].
Auto-ARIMA works by conducting differencing tests (i.e.,
Kwiatkowski–Phillips–Schmidt–Shin, Augmented Dickey-Fuller or
Phillips–Perron) to determine the order of differencing, ``d``, and then
fitting models within ranges of defined ``start_p``, ``max_p``,
``start_q``, ``max_q`` ranges. If the ``seasonal`` optional is enable

本文详细介绍了Auto-ARIMA模型的原理与应用,包括模型的基本假设、安装方法、代码示例及参数说明等内容。适用于时间序列预测场景。
最低0.47元/天 解锁文章
5326

被折叠的 条评论
为什么被折叠?



