首页 > 解决方案 > 从 ARIMA 模型中获取结果

问题描述

我正在使用来自 Kaggle 的以下代码来评估参数,使用由最低 AIC 定义的最佳模型创建模型,然后输出尝试的摘要。在我创建数据框并尝试填充结果之前,这将毫无错误地运行。当我运行这些行来创建 results_table 时,出现错误:ValueError:长度不匹配:预期轴有 0 个元素,新值有 2 个元素。如果我创建一个空的 df,列会出现,但是变量 best_model 没有定义,我无法得到我的摘要。这就像我试图创建和传递的结果数据有问题。想法?

谢谢,本尼

# Initial approximation of ARIMA parameters
Qs = range(0, 2)
qs = range(0, 3)
Ps = range(0, 3)
ps = range(0, 3)
D=1
d=1
parameters = product(ps, qs, Ps, Qs)
parameters_list = list(parameters)
len(parameters_list)

# Model Creation - Parameter Selection done using the X_train dataset which has gone through scaling
results = []

best_aic = float("inf")
warnings.filterwarnings('ignore')
for param in parameters_list:
    try:
        model=sm.tsa.statespace.SARIMAX(X_train, order=(param[0], d, param[1]),
                                        seasonal_order=(param[2], D, param[3], 12)).fit(disp=-1)
    except ValueError:
        print('Sub-optimal parameters:', param)
        continue
    aic = model.aic
    if aic < best_aic:
        best_model = model
        best_aic = aic
        best_param = param
    results.append([param, model.aic])

# Best ARIMA models/parameter review

result_table = pd.DataFrame(results)
result_table.columns = ['parameters', 'aic']

print(result_table.sort_values(by = 'aic', ascending=True).head())
print(best_model.summary())

标签: pythondataframearima

解决方案


推荐阅读