编程语言
首页 > 编程语言> > python – 从scipy optimize.least_squares方法获取拟合参数的协方差矩阵

python – 从scipy optimize.least_squares方法获取拟合参数的协方差矩阵

作者:互联网

我使用scipy.optimize的least_squares method来执行约束非线性最小二乘优化.我想知道如何获得拟合参数的协方差矩阵以获得拟合参数的误差条?

这似乎在curve_fitleastsq中非常清楚,但对于least_squares方法来说并不那么清楚(至少对我而言).

我一直在做的一种方法是因为我知道least_squares返回雅可比矩阵J(这是“jac”返回值),然后我做的是我将Hessian H逼近2 * J ^ T J.最后,协方差矩阵是H ^ { – 1},因此大约是(2 * J ^ TJ)^ { – 1},但我担心这可能是协方差的近似粗糙?

解决方法:

curve_fit本身使用来自least_squares,https://github.com/scipy/scipy/blob/2526df72e5d4ca8bad6e2f4b3cbdfbc33e805865/scipy/optimize/minpack.py#L739的jacobian的伪逆

需要注意的一点是,如果结果接近边界,则整个方法都是可疑的.

标签:python,scipy,curve-fitting,data-fitting,non-linear-regression
来源: https://codeday.me/bug/20190711/1429475.html