Python statsmodels ARIMA plot_predict如何提取生成的预测数据
解决方法
plot_predict本质是调用预测接口生成数值后再渲染图表,你可以直接调用ARIMAResults的内置方法提取对应预测数值,步骤如下:
步骤1:提取预测数值
假设你训练完成的ARIMA结果对象名为arima_result,预测周期为5年(对应5个步长),可根据需求选择两种提取方式:
- 方式1:获取和
plot_predict输出完全对齐的数值(支持包含历史拟合区间)
传入和你调用plot_predict时完全一致的start、end参数即可:# start为预测起始时间、end为预测结束时间(可覆盖历史+未来区间) pred_all = arima_result.predict(start=你的预测起始时间, end=你的预测结束时间) - 方式2:仅提取未来5年的预测值+置信区间(更适合导出给Power BI使用)
n_forecast = 5 # 生成未来n期预测结果对象 forecast_res = arima_result.get_forecast(steps=n_forecast) # 提取预测均值 forecast_mean = forecast_res.predicted_mean # 提取95%置信区间上下限,可通过alpha参数调整置信度 forecast_ci = forecast_res.conf_int(alpha=0.05)
步骤2:导出为Power BI可识别的格式
方案A:本地导出CSV后导入Power BI
import pandas as pd # 合并所有数据为结构化DataFrame forecast_df = pd.DataFrame({ "预测值": forecast_mean, "95%置信区间下限": forecast_ci.iloc[:, 0], "95%置信区间上限": forecast_ci.iloc[:, 1] }) # 把时间索引转为普通列,方便Power BI识别时间字段 forecast_df = forecast_df.reset_index().rename(columns={"index": "日期"}) # 导出为UTF-8编码的CSV,避免中文乱码 forecast_df.to_csv("ARIMA未来5年预测结果.csv", index=False, encoding="utf-8-sig")
导出完成后直接在Power BI中选择「获取数据>文本/CSV」即可导入该文件。
方案B:直接在Power BI中调用Python脚本生成数据
你可以把训练ARIMA模型+生成预测DataFrame的代码直接复制到Power BI的「获取数据>Python脚本」输入框中,代码最后输出forecast_df即可,Power BI会自动识别该DataFrame作为可用数据源。
内容的提问来源于stack exchange,提问作者DIssawi
相关产品推荐
相关产品推荐

