You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从auto_arima返回的最优模型中提取p、d、q参数自动化拟合ARIMA模型

参数提取与全流程自动化实现方案

1. 最优p/d/q参数提取方法

pmdarima的auto_arima返回的拟合对象自带order属性,直接返回(p,d,q)格式的元组,无需额外解析,提取方式如下:

p, d, q = fit.order

2. 自动化全流程修改后的代码

针对现有代码调整如下,核心改动是自动提取参数传入ARIMA拟合函数,同时优化了代码结构避免重复导入、增加结果存储逻辑:

import numpy as np
import pandas as pd
from pmdarima import auto_arima
from statsmodels.tsa.arima.model import ARIMA
import matplotlib.pyplot as plt

def ARIMACheck(data):
    # 不需要季节性模型可加seasonal=False参数提升计算速度
    fit = auto_arima(data[20], trace=True, seasonal=False)
    return fit

def ARIMA(data, p, d, q):    
    x_train = data.iloc[:-200]
    x_test = data.iloc[-200:]
    y_test = x_test.loc[:, 20]
    model = ARIMA(x_train[20], order=(p,d,q))
    model = model.fit()
    # 返回模型和测试集方便后续评估预测
    return model, x_test, y_test
        
def Split(data):
    # 新增:存储每个城市的模型结果方便后续调用
    city_model_res = {}
    for i in range(7):
        data[i].replace(0, np.nan, inplace=True)
    
    for i in range(7):
        datatemp = data.copy()
        datatemp = datatemp.dropna(subset=[i])
        datamap = datatemp.loc[:, 20]
        datamap.plot(figsize=(50,10))
        plt.show()
        # 获取最优模型
        fit = ARIMACheck(datatemp)
        # 自动提取p d q参数
        p, d, q = fit.order
        print(f"城市{i}最优参数:p={p}, d={d}, q={q}")
        # 传入参数拟合模型
        model, x_test, y_test = ARIMA(datatemp, p, d, q)
        # 存储结果
        city_model_res[f"城市{i}"] = {
            "model": model,
            "best_order": (p,d,q),
            "test_data": x_test,
            "test_y": y_test
        }
    return city_model_res

# 运行全流程,所有城市的建模结果存在res字典里
res = Split(data)

3. 注意事项

  • 如果城市数量不固定,可以把range(7)改成动态获取列数的逻辑,比如range(data.shape[1]-1)适配不同数据集
  • 如果单城市序列长度不足200,固定切200条测试集会报错,可以改成按比例切分,示例如下:
    test_size = int(len(data)*0.1)
    x_train = data.iloc[:-test_size]
    x_test = data.iloc[-test_size:]
    
  • 若需要验证模型效果,可以在ARIMA函数里新增预测逻辑,计算MAE、RMSE等指标输出。

内容的提问来源于stack exchange,提问作者NewCoder1423

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 07:54:06