gpt4 book ai didi

python - 无法使用 matplotlib 绘制预测的时间序列值

转载 作者:行者123 更新时间:2023-12-03 14:29:12 25 4
gpt4 key购买 nike

我试图绘制我的实际时间序列值和预测值,但它给了我这个错误:

ValueError: view limit minimum -36816.95989583333 is less than 1 and is an invalid Matplotlib date value. This often happens if you pass a non-datetime value to an axis that has datetime units



我正在使用 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()

知道如何解决这个问题吗?

最佳答案

这应该是关于您如何提供数据的问题。datetime values 必须是 values 的索引在您的数据中 subset变量,因此,以下工作。
我在您提供的代码之前按如下方式导入了数据:

import matplotlib.pyplot as plt

import numpy as np

import pandas as pd

import statsmodels.api as sm

subset = pd.Series(

[

10.18, 10.2 , 10.32,
10.16, 9.93, 9.77,
9.47, 9.08

]

, index=pd.date_range(

start='2017-01-01T00:00:00.000',

end='2017-01-01T01:45:00.000',

freq='15T'

) )

我相信,我得到了你想要的情节(它被剪掉了):
plot_result_cut .
我在 Python 3 中使用了这些版本的库:
矩阵库。 版本
'3.1.2'
NumPy 。 版本
'1.17.4'
Pandas 。 版本
'0.25.3'
统计模型。 版本
'0.12.0'

关于python - 无法使用 matplotlib 绘制预测的时间序列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49595740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com