【发布时间】:2018-09-10 18:04:42
【问题描述】:
我正在尝试绘制我的实际时间序列值和预测值,但它给了我这个错误:
ValueError:查看限制最小值 -36816.95989583333 小于 1 并且是无效的 Matplotlib 日期值。如果您将非日期时间值传递给具有日期时间单位的轴,这通常会发生
我正在使用 statsmodels 将 arima 模型拟合到数据中。
这是我的数据样本:
datetime value
2017-01-01 00:00:00 10.18
2017-01-01 00:15:00 10.2
2017-01-01 00:30:00 10.32
2017-01-01 00:45:00 10.16
2017-01-01 01:00:00 9.93
2017-01-01 01:15:00 9.77
2017-01-01 01:30:00 9.47
2017-01-01 01:45:00 9.08
这是我的代码:
mod = sm.tsa.statespace.SARIMAX(
subset,
order=(1, 1, 1),
seasonal_order=(1, 1, 1, 12),
enforce_stationarity=False,
enforce_invertibility=False
)
results = mod.fit()
pred_uc = results.get_forecast(steps=500)
pred_ci = pred_uc.conf_int(alpha = 0.05)
# Plot
fig = plt.figure(figsize=(12, 8))
ax = fig.add_subplot(1, 1, 1)
ax.plot(subset,color = "blue")
ax.plot(pred_uc.predicted_mean, color="black", alpha=0.5, label='SARIMAX')
plt.show()
知道如何解决这个问题吗?
【问题讨论】:
-
请提供MCVE
-
@VivekKalyanarangan 我删除了一些不必要的代码行......现在刚刚编辑。
-
对不起的意思是
subset = subset.set_index("datetime")@Georgy -
@Georgy 现在错误已经消失了,我不记得是怎么回事了,但是现在我遇到了另一个问题,即 ARIMA 模型与数据的拟合效果不佳。
-
那么我建议创建另一个帖子。而这个应该作为“无法再重现的问题”来关闭
标签: python datetime matplotlib statsmodels