Im, использующий Scipy CurveFit, чтобы соответствовать кривой Гаусса для данных, и я заинтересован в анализе качества подгонки. Я знаю, что CurveFit возвращает полезную матрицу pcov, из которой стандартное отклонение каждого параметра фитинга может быть вычислено как sqrt (pcov [0,0]) для параметра popt [0].
например. фрагмент кода для этого:
import numpy as np
from scipy.optimize import curve_fit
def gaussian(self, x, *p):
A, sigma, mu, y_offset = p
return A*np.exp(-(x-mu)**2/(2.*sigma**2)) + y_offset
p0 = [1,2,3,4] #Initial guess of parameters
popt, pcov = curve_fit(gaussian, x,y, p0) #Return co-effs for fit and covariance
‘Parameter A is %f (%f uncertainty)’ % (popt[0], np.sqrt(pcov[0, 0]))
Это указывает на неопределенность в параметрах подгонки для каждого коэффициента в уравнении кривой подгонки, но мне интересно, как наилучшим образом получить общее "качество параметра посадки", чтобы я мог сравнивать качество соответствия между различными уравнениями кривой (например, гауссовский, супер-гауссовый и т.д.)
На простом уровне я мог просто вычислить процентную неопределенность в каждом коэффициенте, а затем в среднем, хотя мне интересно, лучше ли это? От поиска в Интернете и с особо полезной страницы "доброты подгонки" на Википедии я отмечаю, что существует множество мер для ее описания. Интересно, знает ли кто-нибудь, какие из них встроены в пакеты Python/имеет какие-либо общие советы для хороших способов количественного определения кривой.
Спасибо за любую помощь!