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

use*_*346 6 python curve-fitting scipy data-fitting non-linear-regression

我正在使用 scipy.optimize 的east_squares 方法来执行约束非线性最小二乘优化。我想知道如何获取拟合参数的协方差矩阵,以便获得拟合参数的误差线?

对于curve_fitlesssq来说,这似乎非常清楚,但对于 east_squares 方法来说,则不太清楚(至少对我来说)。

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

ev-*_*-br 2

curve_fit本身使用雅可比的伪逆least_squareshttps://github.com/scipy/scipy/blob/2526df72e5d4ca8bad6e2f4b3cbdfbc33e805865/scipy/optimize/minpack.py#L739

需要注意的一件事是,如果结果接近界限,那么整个方法都是值得怀疑的。