解决OLSResults无forecast属性报错:Python回归预测脚本问题
问题修复方案
问题原因
OLSResults(即sm.OLS(y, X).fit()返回的模型对象)没有forecast方法——这个方法是给时间序列模型(比如ARIMA)设计的。普通线性回归模型的预测操作,需要使用predict方法。
修复代码
将预测环节的代码:
forecast = model.forecast(steps=5, exog=X[-5:])
替换为:
forecast = model.predict(exog=X[-5:])
补充说明
predict方法需要传入exog参数,对应用于预测的自变量数据,必须包含回归时用到的所有自变量,以及之前通过sm.add_constant添加的常数项。- 如果你要做的是未来新周期的预测(而非用历史数据做拟合验证),不能直接用
X[-5:](这是已有历史数据),需要准备好未来5个周期的HDDs、Wind数据,添加常数项后再传入predict方法。示例如下:
# 假设future_X是包含未来5个周期HDDs、Wind数据的DataFrame future_X = sm.add_constant(future_X) forecast = model.predict(exog=future_X)
内容的提问来源于stack exchange,提问作者Philip Dyche
相关产品推荐
相关产品推荐

