我正在使用 Scipy CurveFit 将高斯曲线拟合到数据中,并且对分析拟合质量感兴趣。我知道 CurveFit 返回一个有用的 pcov 矩阵,每个拟合参数的标准偏差可以计算为参数 popt[0] 的 sqrt(pcov[0,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 包中/对于量化曲线拟合的好方法有任何一般性建议。
谢谢你的帮助!