gpt4 book ai didi

python - 等价于 python 的 auto.arima()

转载 作者:IT老高 更新时间:2023-10-28 21:43:48 24 4
gpt4 key购买 nike

我正在尝试使用 ARMA ARIMA 模型预测每周销售额。我在 statsmodels 中找不到用于调整 order(p,d,q) 的函数。目前 R 有一个函数 forecast::auto.arima() 将调整 (p,d,q) 参数。

如何为我的模型选择正确的订单? python中是否有为此目的可用的库?

最佳答案

您可以实现多种方法:

  1. ARIMAResults包括 aicbic。根据他们的定义,(参见 herehere),这些标准会惩罚模型中的参数数量。因此,您可以使用这些数字来比较模型。 scipy 也有 optimize.brute它在指定的参数空间上进行网格搜索。所以像这样的工作流程应该可以工作:

     def objfunc(order, exog, endog):
    from statsmodels.tsa.arima.model import ARIMA
    fit = ARIMA(endog, order, exog).fit()
    return fit.aic()

    from scipy.optimize import brute
    grid = (slice(1, 3, 1), slice(1, 3, 1), slice(1, 3, 1))
    brute(objfunc, grid, args=(exog, endog), finish=None)

确保使用 finish=None 调用 brute

  1. 您可以从 ARIMAResults 获得 pvalues。因此,一种易于实现的步进算法,其中模型的度数在整个维度上增加,从而获得添加参数的最低 p 值。

  2. 使用ARIMAResults.predict交叉验证替代模型。最好的方法是将时间序列的尾部(例如最近 5% 的数据)保留在样本之外,并使用这些点来获得拟合模型的测试误差

关于python - 等价于 python 的 auto.arima(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22770352/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com