Модель GARCH в Python: превышен лимит итераций
У меня проблема с моделью GARCH в Python. Мой код выглядит следующим образом
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 ответ
Читая исходный код ( здесь), вы можете передать дополнительные параметры fit
метод. Внутри вызывается scipy.optimize.minimize ( doc) и, вероятно, интересующие вас параметры max_iter
а также ftol
, Попробуйте вручную изменить значения по умолчанию (max_iter=100
а также ftol= 1e-06
) к новым, которые могут привести к сближению. Пример:
results=model.fit(options={'max_iter': 200})