You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ARIMA.fit()报错TypeError:意外的关键字参数'trend'问题求助

ARIMA.fit() 报TypeError:意外关键字参数'trend'的原因与解决办法

问题场景

运行Python代码时触发TypeError,提示ARIMA.fit()收到意外的关键字参数'trend',但参考视频中相同代码可正常运行。

完整代码

import pandas as pd
import numpy as np

import matplotlib.pyplot as plt

import warnings
warnings.filterwarnings("ignore")  
file_path = '/Users/doyeongpark/Downloads/BTCprice.csv'
bitcoin_df = pd.read_csv(file_path, names = ['day', 'price'])  
bitcoin_df.tail()  
bitcoin_df['day'] = pd.to_datetime(bitcoin_df['day'])  
bitcoin_df.index = bitcoin_df['day']
bitcoin_df.set_index('day', inplace=True)
bitcoin_df.head()  
bitcoin_df.describe()

from statsmodels.tsa.arima.model import ARIMA
import statsmodels.api as sm  

model = ARIMA(bitcoin_df.price.values, order=(2,1,2))
model_fit = model.fit(trend = 'c',full_output = True, disp = True)

print(model_fit.summary())

错误信息

TypeError: ARIMA.fit() got an unexpected keyword argument 'trend'

原因分析

  • statsmodels版本差异:旧版ARIMA(导入路径为statsmodels.tsa.arima_model.ARIMA)的fit()方法支持trend、full_output、disp等参数;但在statsmodels新版本中,ARIMA类被重构并移至statsmodels.tsa.arima.model.ARIMA,trend参数被调整到模型初始化阶段传入,fit()方法不再接收该参数,同时full_output、disp也被移除或替换(disp被verbose替代)。视频中使用的是旧版接口,而当前使用的是新版接口,导致参数不兼容。

解决办法

方案1:适配新版statsmodels接口(推荐)

将trend参数移至ARIMA模型初始化时传入,同时替换过时参数:

from statsmodels.tsa.arima.model import ARIMA

# 初始化模型时传入trend参数
model = ARIMA(bitcoin_df.price.values, order=(2,1,2), trend='c')
# 使用新版支持的verbose参数替代disp
model_fit = model.fit(verbose=True)

print(model_fit.summary())

方案2:回退到旧版ARIMA接口

如果需要和视频代码完全一致,可以导入旧版ARIMA类(注意:旧版已被标记为弃用,未来版本可能被移除):

# 导入旧版ARIMA
from statsmodels.tsa.arima_model import ARIMA

model = ARIMA(bitcoin_df.price.values, order=(2,1,2))
model_fit = model.fit(trend='c', full_output=True, disp=True)

print(model_fit.summary())

内容的提问来源于stack exchange,提问作者Eno Park

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 16:25:22