我试图通过使用循环找到最佳参数顺序:
d = 1
for p in range(3):
for q in range(3):
try:
order = (p, 0, q)
params = (p, d, q)
arima_mod = ARIMA(ts.dropna(), order).fit(method = 'css-mle', disp = 0)
arima_mod_aics[params] = arima_mod.aic
except:
pass
我已收到消息:
/usr/local/lib/python2.7/dist-packages/statsmodels-0.6.1-py2.7-linux-x86_64.egg/statsmodels/base/model.py:466: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals
"Check mle_retvals", ConvergenceWarning)
我想忽略这个警告,我该怎么办?有什么建议吗?
提前致谢。
答案 0 :(得分:7)
请参阅statsmodels sourceforge中的此示例,尤其是In [17]:
。
import warnings
with warnings.catch_warnings():
warnings.filterwarnings("ignore")
# Line that is not converging
likev = mdf.profile_re(0, dist_low=0.1, dist_high=0.1)
答案 1 :(得分:4)
要专门忽略ConvergenceWarnings,
import warnings
from statsmodels.tools.sm_exceptions import ConvergenceWarning
warnings.simplefilter('ignore', ConvergenceWarning)
答案 2 :(得分:0)
一个干净的方法是使用包含的 warn_convergence
。您可以像这样将其传递给 fit 方法:
arima.fit(method_kwargs={"warn_convergence": False})