如何使用statsmodels.tsa的ARIMA模型获取训练集预测值
解决方法
model_fit.get_prediction()返回的是PredictionResultsWrapper包装类对象,不会直接输出数值,你可以按照以下两种方式获取训练集对应的预测值:
- 仅需要点预测值时,可直接调用
predict()方法,代码更简洁:
# 直接返回训练集的点预测值 train_pred = model_fit.predict()
- 如果需要同时获取点预测值、置信区间等更多预测相关信息,就从
get_prediction()返回的对象中提取对应属性:
pred_res = model_fit.get_prediction() # 提取训练集点预测值 train_pred = pred_res.predicted_mean # 可选:提取95%置信区间 train_pred_ci = pred_res.conf_int(alpha=0.05)
你可以参考以下代码完成训练集真实值和拟合值的对比绘图:
import matplotlib.pyplot as plt plt.figure(figsize=(12, 6)) # 绘制真实训练数据 plt.plot(train.index, train.values, label='真实训练值') # 绘制模型拟合值 plt.plot(train.index, train_pred, label='模型拟合值', alpha=0.7) # 可选:绘制置信区间填充区域 plt.fill_between(train.index, train_pred_ci.iloc[:, 0], train_pred_ci.iloc[:, 1], color='gray', alpha=0.2, label='95%置信区间') plt.legend() plt.title('ARIMA模型训练集拟合效果对比') plt.show()
注:以上方法兼容你使用的statsmodels v0.12.2版本。
内容的提问来源于stack exchange,提问作者jros
相关产品推荐
相关产品推荐

