Stats Model报错:fit()不支持'disp'参数 求解决方案
问题解决:ARIMA fit() 不支持 disp 参数
问题原因
你使用的statsmodels版本已移除ARIMA fit方法中的disp参数——旧版本里disp用于控制训练过程的输出显示,新版本改用verbose参数实现相同功能,且默认情况下训练过程不会输出日志。
另外你的代码存在缩进错误:model_fit = model.fit(...)及后续几行未缩进,导致它们不在for循环体内,会引发逻辑错误,这一点需要同时修正。
解决方案
修正代码的两个关键点:
- 替换/移除
disp=0:- 直接移除该参数(默认不输出训练信息),或改用
verbose=0
- 直接移除该参数(默认不输出训练信息),或改用
- 修复缩进,确保循环内的代码都处于
for块中
修改后的完整代码
ar_preds = [] history = [x for x in train_series] for t in range(len(test_series)): model = ARIMA(history, order=(1,0,0)) # 移除disp参数,或改用verbose=0 model_fit = model.fit() # 或者用 model_fit = model.fit(verbose=0) output = model_fit.forecast() ar_preds.append(output[0][0]) history.append(test_series[t]) ar_pred_series = pd.Series(ar_preds, index=test_series.index) error = mean_squared_error(test_series, ar_pred_series) print('MSE: %.3f' % error) plt.plot(test_series, label='Observed Values') plt.plot(ar_pred_series, color='blue', label='Forecasted Values') plt.legend() plt.title('AR(1) Model Forecasts') plt.ylabel('Energy Consumption (MW)') plt.show()
补充说明
verbose参数取值:0=无输出,1=输出训练进度,2=输出详细训练信息- 建议使用最新稳定版statsmodels,若需兼容旧代码可降级到0.12.x及以下版本(不推荐,优先适配新版本)
内容的提问来源于stack exchange,提问作者Sonu Kumar
相关产品推荐
相关产品推荐

