自动化与保存

Python 中的 ARIMA 模型

James Fulton

Climate informatics researcher

按模型阶数搜索

import pmdarima as pm
results = pm.auto_arima(df)
正在执行逐步搜索以最小化 aic
 ARIMA(2,0,2)(1,1,1)[12] 截距   : AIC=inf, Time=3.33 sec
 ARIMA(0,0,0)(0,1,0)[12] 截距   : AIC=2648.467, Time=0.062 sec
 ARIMA(1,0,0)(1,1,0)[12] 截距   : AIC=2279.986, Time=1.171 sec

 ...

 ARIMA(3,0,3)(1,1,1)[12] 截距   : AIC=2173.508, Time=12.487 sec
 ARIMA(3,0,3)(0,1,0)[12] 截距   : AIC=2297.305, Time=2.087 sec

最佳模型:  ARIMA(3,0,3)(1,1,1)[12]
总拟合时间: 245.812 秒
Python 中的 ARIMA 模型

pmdarima 结果

print(results.summary())

results.plot_diagnostics()

Python 中的 ARIMA 模型

非季节性搜索参数

Python 中的 ARIMA 模型

非季节性搜索参数

results = pm.auto_arima( df,             # 数据

d=0, # 非季节性差分阶数
start_p=1, # p 的初始猜测 start_q=1, # q 的初始猜测
max_p=3, # 测试的 p 最大值 max_q=3, # 测试的 q 最大值 )
1 https://www.alkaline-ml.com/pmdarima/modules/generated/pmdarima.arima.auto_arima.html
Python 中的 ARIMA 模型

季节性搜索参数

results = pm.auto_arima( df,             # 数据
                         ... ,          # 非季节性参数 
                         seasonal=True,  # 序列是否有季节性

m=7, # 季节周期
D=1, # 季节差分阶数
start_P=1, # P 的初始猜测 start_Q=1, # Q 的初始猜测
max_P=2, # 测试的 P 最大值 max_Q=2, # 测试的 Q 最大值 )
Python 中的 ARIMA 模型

其他参数

results = pm.auto_arima( df,                     # 数据    
                         ... ,                   # 模型阶数参数     

information_criterion='aic', # 用于选择最优模型
trace=True, # 训练时打印结果
error_action='ignore', # 忽略无效的阶数组合
stepwise=True, # 启用逐步智能搜索 )
Python 中的 ARIMA 模型

保存模型对象

# 导入
import joblib 
# 选择文件路径
filepath ='localpath/great_model.pkl'

# 保存模型到路径
joblib.dump(model_results_object, filepath)
Python 中的 ARIMA 模型

保存模型对象

# 选择文件路径
filepath ='localpath/great_model.pkl'

# 从路径加载模型对象
model_results_object = joblib.load(filepath) 
Python 中的 ARIMA 模型

更新模型

# 添加新观测并更新参数
model_results_object.update(df_new)
Python 中的 ARIMA 模型

更新对比

Python 中的 ARIMA 模型

Passons à la pratique !

Python 中的 ARIMA 模型

Preparing Video For Download...