我已经建立了一个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发布于 2019-07-31 21:33:26
在等待响应的同时,我尝试了以下操作,并获得了成功:
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尽管这篇文章很短暂,但我还是会把它留在这里,以防它对其他正在学习的人有所帮助。
https://stackoverflow.com/questions/57291575
复制相似问题