como posso fazer uma regressão de probabilidade máxima usando scipy.optimize.minimize

Como posso fazer uma regressão de probabilidade máxima usandoscipy.optimize.minimize? Eu quero especificamente usar ominimize funcione aqui, porque tenho um modelo complexo e preciso adicionar algumas restrições. Atualmente, estou tentando um exemplo simples usando o seguinte:

from scipy.optimize import minimize

def lik(parameters):
    m = parameters[0]
    b = parameters[1]
    sigma = parameters[2]
    for i in np.arange(0, len(x)):
        y_exp = m * x + b
    L = sum(np.log(sigma) + 0.5 * np.log(2 * np.pi) + (y - y_exp) ** 2 / (2 * sigma ** 2))
    return L

x = [1,2,3,4,5]
y = [2,3,4,5,6]
lik_model = minimize(lik, np.array([1,1,1]), method='L-BFGS-B', options={'disp': True})

Quando executo isso, a convergência falha. Alguém sabe o que há de errado com o meu código?

A mensagem que recebo em execução é 'ABNORMAL_TERMINATION_IN_LNSRCH'. Estou usando o mesmo algoritmo que trabalho usandooptim em R.

questionAnswers(1)

yourAnswerToTheQuestion