2017-02-25 936 views
0

我生成一些数据,如[1,6,1,6,1,6],并在正态分布下添加噪声。我使用arma_order_select_ic来选择订单。然后使用aic_min_order来拟合ARMA模型。有时模型运行良好。但有时会引发ValueError。为什么我在使用aic_min_order时得到'计算出的初始AR系数不稳定'?

ValueError: The computed initial AR coefficients are not stationary

这里是我的代码。

import statsmodels.api as sm 
import numpy as np 
x = [1 if i%2 == 0 else 6 for i in range(50)] 
eta = np.random.normal(0, 0.01, 50) 
x = x + eta 
res = sm.tsa.stattools.arma_order_select_ic(x, ic=['aic']) 
print res.aic_min_order 
model = sm.tsa.ARMA(x, res.aic_min_order).fit(disp = 0) 
print model.predict(45, 55) 

难道我错过的东西或ARMA不适合这种类型的数据?

回答

1

ARMA是专为平稳过程,默认情况下强加给参数估计平稳。

您的数据不是固定的,即它的滞后多项式具有季节单位根。通常的处理方法是使用季节性差异或确定性季节模式,例如虚拟变量或样条。

Statsmodels目前没有自动季节检测和模型选择,但是SARIMAX可用于季节综合ARMA过程。

+0

谢谢。但我认为arma_order_select_ic做模型选择工作。如果statsmodels当前没有自动模型选择,那么arma_order_select_ic实际上是做什么的? – BlueMandora

+0

它选择arma滞后阶数p和q,但不尝试识别趋势,差异顺序,季节性,异常值和类似信息。 – user333700

相关问题