【发布时间】:2021-09-06 14:03:45
【问题描述】:
我在 Stack Overflow 中参考过之前的查询,但仍然无法得出结论。
我有一个包含每月商品价格的数据集。我想使用 SARIMAX 预测价格。我想预测未来 24 个月的价格。最初,我有 509 行实际月度价格。现在我想预测我创建新数据框的未来 24 个月(或 24 行)的价格。新的 Dataframe 还包含实际的 Dataframe 行。
当我使用下面的代码时,我使用“dynamic =True”得到这个图表:
future_df['forecast'] = results.predict(start = 508, end =533, dynamic =True)
px.line(future_df, x='Date', y= ['Price','forecast'],template = 'plotly_dark')
当我使用下面的代码时,我会使用“dynamic =False”来获取这个图表:
future_df['forecast'] = results.predict(start = 508, end =533, dynamic =False)
px.line(future_df, x='Date', y= ['Price','forecast'],template = 'plotly_dark')
现在真正的问题来了,我得到了不同的图表。
当我使用下面的代码使用“dynamic =True”或“dynamic =False”时,我得到了不同的图表,以前不是这样。
future_df['forecast'] = results.predict(start = 400, end =533, dynamic =True)
px.line(future_df, x='Date', y= ['Price','forecast'],template = 'plotly_dark')
future_df['forecast'] = results.predict(start = 400, end =533, dynamic =False)
px.line(future_df, x='Date', y= ['Price','forecast'],template = 'plotly_dark')
我的问题
- 为什么我的图表有差异?我注意到,与 dynamic = True 相比,dynamic =False 提供了更好的预测。
- 在预测(开始 = 508,结束 =533)和验证(例如,开始 = 400,结束 =533 或开始 = 400,结束 =第508章)?
我还有一些疑问:
Q1)最初我有 509 行,即 509 个时间段(= 行)的每月价格。现在我想预测未来 24 个月的价格。
我已经使用所有 509 行(价格)构建了 SARIMAX 模型。我想验证每个图的模型。我应该使用哪种方法 "dynamic = True" 或 "dynamic = False" ?例如我想使用 plotly 验证 509 行内最后 133 行价格的价格。我可以看到“future_df['forecast'] = results.predict(start = 400, end =533, dynamic =False)” 与“future_df['forecast'] = results.predict(start = 400,结束 = 533,动态 = True)"。请指教。
Q2)我使用 dynamic =true 和 false 的预测是相同的。请参阅下面的输出代码。
使用动态 =True 进行预测
future_df['forecast'] = results.predict(start = 510, end =533, dynamic =True)
## 使用动态 =False 进行预测
future_df['forecast'] = results.predict(start = 510, end =533, dynamic =False)
如果未来 24 个月的预测相似,现在我很困惑使用哪种方法来预测未来 24 个月的价格。请指教。 提前感谢您的帮助!
【问题讨论】:
标签: python plotly forecasting arima sarimax