power - Python/Scipy-implementando el sigma de optimize.curve_fit en optimize.leastsq
python fit power law (2)
Acabo de descubrir que es posible combinar lo mejor de ambos mundos, y tener la salida completa leastsq () también de curve_fit (), usando la opción full_output:
popt, pcov, infodict, errmsg, ier = curve_fit(func, xdata, ydata, sigma = SD, full_output = True)
Esto me da un infodict que puedo usar para calcular todas mis cosas de Goodness of Fit, y me permite usar la opción sigma de curve_fit al mismo tiempo ...
Estoy ajustando puntos de datos usando un modelo logístico. Como a veces tengo datos con un error de ydata, primero utilicé curve_fit y su argumento sigma para incluir mis desviaciones estándar individuales en el ajuste.
Ahora cambié a leastsq, porque también necesitaba una estimación de Bondad de ajuste que curve_fit no podía proporcionar. Todo funciona bien, pero ahora echo de menos la posibilidad de pesar los mínimos cuadrados como lo hace "sigma" con curve_fit.
¿Alguien tiene algún ejemplo de código sobre cómo podría ponderar los mínimos cuadrados también en leastsq?
Gracias, Woodpicker
Suponiendo que sus datos están en las matrices x
, y
con yerr
, y el modelo es f(p, x)
, simplemente defina la función de error para minimizarla como (yf(p,x))/yerr
.