您可以实现多种方法:
ARIMAResults
包括aic
和bic
。根据它们的定义(请参阅此处和此处),这些条件会对模型中的参数数量造成不利影响。因此,您可以使用这些数字来比较模型。scipy还具有optimize.brute
在指定参数空间上进行网格搜索的功能。因此,这样的工作流程应该可以工作:def objfunc(order, exog, endog):from statsmodels.tsa.arima_model import ARIMAfit = ARIMA(endog, order, exog).fit()return fit.aic()
from scipy.optimize import brute
grid = (slice(1, 3, 1), slice(1, 3, 1), slice(1, 3, 1))
brute(objfunc, grid, args=(exog, endog), finish=None)
确保你打电话
brute跟
finish=None。
您可以
pvalues
从获得ARIMAResults
。因此,一种易于执行的步进算法可以在整个维度上增加模型的度数,从而为添加的参数获得最低的p值。使用
ARIMAResults.predict
交叉验证的替代机型。最好的方法是使时间序列的尾部(例如最新数据的5%)不出现在样本中,并使用这些点来获得拟合模型的 测试误差 。



