python - 从 SARIMAX 模型打印结果时出现问题
问题描述
我已经建立了一个 SARIMA 模型来预测特定产品的库存需求。我能够完美地将时间序列可视化为结果的输出,但是当尝试直接打印结果(实际数字,而不是图形)时,代码运行但不提供值的打印。
我已经尝试对此进行研究,但我似乎只能在网上找到时间序列可视化的示例,我已经拥有了。我已经尝试过 .get_prediction 和 get_forecast。
my_order = (2, 1, 0)
my_seasonal_order = (3, 1, 0, 7)
bananas_model = SARIMAX(bananas_mfc_log, order=my_order, seasonal_order=my_seasonal_order, alpha=0.05, freq='D')
results = bananas_model.fit()
pred = results.get_prediction(start=pd.to_datetime('2019-07-01'), dynamic=False)
pred_ci = pred.conf_int()
ax = bananas_mfc_log.apply(np.exp).plot(label='observed')
pred.predicted_mean.apply(np.exp).plot(ax=ax, label='forecasted', alpha=.7, figsize=(14, 7))
ax.set_xlabel('Date')
ax.set_ylabel('Quantity Picked')
plt.ylim(-1000, 1500)
plt.legend()
plt.show()
pred2 = results.get_forecast(steps=15)
print(pred2)
上面的打印尝试提供了这一点:
<statsmodels.tsa.statespace.mlemodel.PredictionResultsWrapper object at 0x000002100EC02D30>
pred2 = results.get_prediction(start=pd.to_datetime('2019-07-26'), end=pd.to_datetime('2019-08-09'), dynamic=False)
print(pred2)
第二次尝试打印结果会导致:
<statsmodels.tsa.statespace.mlemodel.PredictionResultsWrapper object at 0x000002100059D710>
我想打印一个数据框或一个预测结果数组。例如:
date bananas
2019-07-26 57
2019-07-27 178
2019-07-28 198
2019-07-29 72
2019-07-30 54
2019-07-31 87
解决方案
在等待回复时,我尝试了以下操作,结果成功:
pred2 = []
pred2 = results.get_prediction(start=pd.to_datetime('2019-07-01'), end=pd.to_datetime('2019-07-31'), dynamic=False)
pred2 = pred2.predicted_mean.apply(np.exp)
print(pred2)
apply(np.exp) 只需要从为模型完成的对数转换进行反向转换。这是结果格式的预览:
2019-07-26 215.606736
2019-07-27 353.112927
2019-07-28 72.164655
2019-07-29 318.258192
2019-07-30 10.354032
2019-07-31 301.233365
Freq: D, dtype: float64
尽管这篇文章是短暂的,但我将把它留在这里,以防它帮助其他也在学习的人。
推荐阅读
- matplotlib - 如何摆脱 Seaborn mainplot 下的情节?
- docker - 带有 AspNet Core Web API 的容器在 Docker 上运行,但不在 AKS Kubernetes 上运行
- c++ - glib 中 G_OPTION_ARG_FILENAME 和 G_OPTION_ARG_STRING 的区别
- python - 我如何通过给出 y 来访问数组 x?
- c# - 如何使用安全声明代表 AAD 用户调用 Web API?
- delphi - TNetHTTPClient 和 Delphi 10.3 的连接超时
- python - 如何在 AWS Glue 中运行查询
- serverless-framework - 没有在带有无服务器和 AWS 的 NestJS 上注入依赖项
- python - 为什么导入不包含模块中的所有内容?
- c# - 有没有办法以任何不涉及鼠标的方式与世界空间中的 GUI 按钮进行交互?最好是光线投射