这个错误是因为plot_predict方法只是在statsmodels版本0.9.0以上才可以使用。解决方法是更新statsmodels版本或者使用另一种绘图方法。
以下是一个示例,演示如何使用新的plot_predict方法:
import pandas as pd
import numpy as np
from statsmodels.tsa.arima_model import ARIMA
# 生成数据
data = pd.Series(np.random.randn(1000))
# 训练ARIMA模型
model = ARIMA(data, order=(1,1,1))
result = model.fit()
# 绘制预测值
result.plot_predict(start=900, end=1100)
如果您的statsmodels版本低于0.9.0,则使用以下替代方法:
import pandas as pd
import numpy as np
from statsmodels.tsa.arima_model import ARIMA
# 生成数据
data = pd.Series(np.random.randn(1000))
# 训练ARIMA模型
model = ARIMA(data, order=(1,1,1))
result = model.fit()
# 绘制预测值
fig, ax = plt.subplots()
ax.plot(data[-200:], 'o', label='observed')
ax.plot(result.predict(start=800, end=1000), 'g', label='predicted')
ax.legend(loc='best')
以上代码将绘制最后200个数据点以及在该范围内的预测值。预测值由result.predict()返回并显示为绿线。