won*_*328 3 python curve-fitting
我有一个代码并使用 curve_fit 将洛伦兹曲线和高斯曲线拟合到数据。我需要获得输出的每个参数的错误估计,因此打印了 popt 和 pcov 我知道 scipy 参考指南说明了如何使用 pcov 矩阵来查找错误,但这对我来说不清楚,因为我是编程新手。谢谢
阅读文档通常可以找到此类问题的答案。例如,https://docs.scipy.org/doc/scipy/reference/curve_fit() generated/scipy.optimize.curve_fit.html的 文档说:
返回: popt :数组 参数的最佳值,使 f(xdata, *popt) - ydata 的残差平方和最小化
pcov :二维数组 popt 的估计协方差。对角线提供参数估计的方差。要计算参数的一个标准差误差,请使用 perr = np.sqrt(np.diag(pcov))。sigma 参数如何影响估计的协方差取决于absolute_sigma 参数,如上所述。
这就是说:使用p_sigma = np.sqrt(np.diag(pcov))
请允许我建议,对于高斯和洛伦兹模型的曲线拟合,您可能会发现 lmfit ( https://lmfit.github.io/lmfit-py/ ) 很有帮助。它为这些和其他模型提供内置版本。除其他功能外,它还可以为包含不确定性的拟合打印格式良好的报告。