我在 Stack Overflow 中提到过之前的查询,但仍然无法得出结论。
我有一个包含每月商品价格的数据集。我想使用 SARIMAX 预测价格。我想预测未来 24 个月的价格。最初,我有 509 行实际月度价格。现在我想预测未来 24 个月(或 24 行)的价格,我已经为其创建了新的 Dataframe。新的 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')
我的问题
- 为什么我的图表有所不同?我可以注意到动态 = 假与动态 = 真相比提供了更好的预测。
- 在预测(开始 = 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 个月的预测相似的话。请指教。感谢您提前提供帮助!