【问题标题】:How to Find parameters [p, d, q] value for ARIMA model in python?如何在python中查找ARIMA模型的参数[p,d,q]值?
【发布时间】:2019-05-09 16:04:43
【问题描述】:

预测 ARIMA 模型参数的 p、d 和 q 值的正确方法是什么。

网格搜索如何帮助找到这些参数?

如何将非平稳数据变为平稳以应用 ARIMA?

我已经提到了这个article

【问题讨论】:

    标签: python time-series arima


    【解决方案1】:

    对于网格搜索方法,您可以使用分为两部分的方法:

    1. 评估 ARIMA 模型。
      • 将数据集拆分为训练集和测试集。
      • 遍历测试数据集中的时间步长。
        • 训练 ARIMA 模型。
        • 进行一步预测。
        • 商店预测;获取并存储实际观察结果。
      • 计算预测值与预期值相比的错误分数

    这是代码:

    # evaluate an ARIMA model for a given order (p,d,q)
    def evaluate_arima_model(X, arima_order):
        # prepare training dataset
        train_size = int(len(X) * 0.66)
        train, test = X[0:train_size], X[train_size:]
        history = [x for x in train]
        # make predictions
        predictions = list()
        for t in range(len(test)):
            model = ARIMA(history, order=arima_order)
            model_fit = model.fit(disp=0)
            yhat = model_fit.forecast()[0]
            predictions.append(yhat)
            history.append(test[t])
        # calculate out of sample error
        error = mean_squared_error(test, predictions)
        return error
    
    1. 评估 ARIMA 参数集,这是代码:
    # evaluate combinations of p, d and q values for an ARIMA model
    def evaluate_models(dataset, p_values, d_values, q_values):
        dataset = dataset.astype('float32')
        best_score, best_cfg = float("inf"), None
        for p in p_values:
            for d in d_values:
                for q in q_values:
                    order = (p,d,q)
                    try:
                        mse = evaluate_arima_model(dataset, order)
                        if mse < best_score:
                            best_score, best_cfg = mse, order
                        print('ARIMA%s MSE=%.3f' % (order,mse))
                    except:
                        continue
        print('Best ARIMA%s MSE=%.3f' % (best_cfg, best_score)) 
    

    有关更多详细信息,您可以在此链接中找到一个教程,其中开发了用于一步滚动预测的网格搜索 ARIMA 超参数,https://machinelearningmastery.com/grid-search-arima-hyperparameters-with-python/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-03
      • 1970-01-01
      • 1970-01-01
      • 2021-10-21
      • 2020-05-13
      相关资源
      最近更新 更多