Функция логарифмического правдоподобия сложна и выводится из цен за сотни дней. scipy.optimization дает мне коэффициенты, близкие к начальной точке, что, очевидно, не является оптимальным каждый раз по сравнению с результатом других методов.
Вот код:
def f(x):
LLH = -llh.log_likelihood(x[0], x[1], x[2], alpha=[x[3]], theta=[x[4]])
return LLH
x0 = [9, 1, 0.7, 0.5, 0.7]
bds = ((1.5, 15), (1, 10), (1/2, 2), (-3, 5/3), (0, 1))
res = optimize.minimize(f, x0, bounds=bds, tol=1e-3)
print(res)
Пожалуйста, посмотрите результат на прикрепленном изображении. Я использовал алгоритм geneti c от Deap. Работает нормально. Но это слишком медленно и каждый раз дает разные результаты (как значение функции, так и оптимальные коэффициенты).
Что еще я могу использовать для оптимизации моей функции?