scipy.optimize.curvefit: error asimétrico de ajuste

Intento ajustar una función a mis datos usandoscipy.optimize.curvefit.

Q=optimization.curve_fit(func,X,Y, x0,ERR)

y funciona bien.

Sin embargo, ahora estoy intentando usar un error asimétrico y no tengo idea de cómo hacerlo, o incluso si es posible.

Por error asimétrico quiero decir que el error no es, por ejemplo:3+-0.5 pero3 +0.6 -0.2. De modo que ERR es una matriz con dos columnas.

Sería genial si alguien tuviera una idea de cómo hacerlo, o podría señalar una rutina diferente de Python que pudiera hacerlo.

Eso es un fragmento del código que estoy usando, pero no estoy seguro de que lo aclare:

A=numpy.genfromtxt('WF.dat')
cc=A[:,4]
def func(A,a1,b1,c1):
    N=numpy.zeros(len(x))
    for i in range(len(x)):
        N[i]=1.0*erf(a1*(A[i,1]-c1*A[i,0]**b1))

return N


x0   = numpy.array([2.5  , -0.07 ,-5.0])
Q=optimization.curve_fit(func,A,cc, x0, Error)

Y Error = [ErP, ErM] (2 columnas)

Respuestas a la pregunta(4)

Su respuesta a la pregunta