python - 从 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())
解决方案
推荐阅读
- neo4j - 如何从 apoc.path.expandConfig 或类似中排除/黑名单关系类型?
- azure - Azure 机器学习的平均 GpuUtilization 指标是如何计算的?
- reactjs - 如何根据带有预加载数据的选中/未选中输入设置不同的状态
- ms-access - 如何在 Sharepoint 上共享 MS Access 前端 - 网络驱动器上的后端
- webrtc - WebRTC 信号成功,但没有视频通过
- php - Laravel 路由模型绑定与排序的急切加载?
- laravel - 我想在 laravel 中用 is_dir() 区分子文件夹和文件
- python - 对于 placequeen 功能,board.append 和 board.remove 是如何工作的?
- azure-devops - azure devop yaml 如何确定它应该签出的源代码分支?
- node.js - 发布 React Web 应用