polinomios - Python-Cuadrado R y suma absoluta de cuadrados obtenibles por scipy.optimize curve_fit?
librerias de scipy (1)
Según doc , la optimización con curve_fit
te da
Valores óptimos para los parámetros de manera que la suma del error cuadrado de f (xdata, * popt) - ydata se minimice
Luego, usa optimize.leastsq
import scipy.optimize
p,cov,infodict,mesg,ier = optimize.leastsq(
residuals,a_guess,args=(x,y),full_output=True,warning=True)
con esto para los residuals
:
def residuals(a,x,y):
return y-f(x,a)
residuals
es el método que devuelve la diferencia entre los datos de salida verdaderos y la salida del modelo, con f
el modelo, a
parámetro (s), x
los datos de entrada.
Método optimize.leastsq
devuelve una gran cantidad de información que puede utilizar para calcular RSquared y RMSE usted mismo. Para RSQuared, puedes hacer
ssErr = (infodict[''fvec'']**2).sum()
ssTot = ((y-y.mean())**2).sum()
rsquared = 1-(ssErr/ssTot )
Más detalles sobre lo que es infodict[''fvec'']
In [48]: optimize.leastsq?
...
infodict -- a dictionary of optional outputs with the keys:
''fvec'' : the function evaluated at the output
Estoy ajustando curvas usando curve_fit. ¿Hay alguna manera de leer el coeficiente de determinación y la suma absoluta de cuadrados? Gracias, Woodpicker