Python中的GARCH模型:超出了迭代限制

时间:2018-06-02 11:59:25

标签: python optimization arch

我在python中遇到了一个GARCH模型的问题。我的代码如下所示

import sys
import numpy as np
import pandas as pd
from arch import arch_model

sys.setrecursionlimit(1800)

spotmarket = pd.read_excel("./data/external/Spotmarket.xlsx", index=True)

l = spotmarket['Price'].pct_change().dropna()

returns = 100 * l
returns.plot()
plt.show()

model=arch_model(returns, vol='Garch', p=1, o=0, q=1, dist='Normal')
results=model.fit()
print(results.summary())

代码的第一部分效果很好。我在一个单独的excel表中有一天结束价格,并希望用GARCH模型对它们进行建模。问题是,我收到错误消息The optimizer returned code 9. The message is: Iteration limit exceeded See scipy.optimize.fmin_slsqp for code meaning. 有人有想法,我如何处理迭代限制的问题?谢谢!

1 个答案:

答案 0 :(得分:0)

阅读源代码(here),您可以将其他参数传递给fit方法。在内部,调用scipy.optimize.minimize(doc),您感兴趣的参数可能是max_iterftol。 尝试手动将默认值(max_iter=100ftol= 1e-06)更改为可能导致收敛的新值。例如:

results=model.fit(options={'max_iter': 200})