从ARIMA模型获取结果

时间:2018-12-16 22:37:36

标签: python dataframe 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())

0 个答案:

没有答案