我正在使用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())