Python 关于var/covar矩阵的曲线拟合问题

Python 关于var/covar矩阵的曲线拟合问题,python,numpy,scipy,data-science,curve-fitting,Python,Numpy,Scipy,Data Science,Curve Fitting,我正在使用curve\u fit将曲线拟合到二维空间中的某组数据点(x,y)curve_fit具有我们所知的p0参数 curve\u fit返回的第二件事是pcov,当我取pcov的对角线并求其平方根时,我得到值的向量v 然后我对所有这些值求和(从这个向量v),得到一个数字S:我把它解释为一个整体std.dev。(或者说标准偏差的总和) 我注意到当我改变p0时,我得到不同的曲线,它们有不同的S值。但是,有时我认为曲线在视觉上没有太大的不同,但是它们的S值差异很大 我不完全理解这个pcov矩阵,

我正在使用
curve\u fit
将曲线拟合到二维空间中的某组数据点
(x,y)
curve_fit
具有我们所知的
p0
参数

curve\u fit
返回的第二件事是
pcov
,当我取
pcov
的对角线并求其平方根时,我得到值的向量
v

然后我对所有这些值求和(从这个向量
v
),得到一个数字
S
:我把它解释为一个整体
std.dev
。(或者说标准偏差的总和)

我注意到当我改变
p0
时,我得到不同的曲线,它们有不同的
S
值。但是,有时我认为曲线在视觉上没有太大的不同,但是它们的
S
值差异很大

我不完全理解这个
pcov
矩阵,因此我感到困惑。它是什么的方差协方差矩阵

我的问题是:这个
S

1)
这是衡量曲线与数据拟合程度的指标吗

2)
这是否更像是一种衡量优化过程(发生在
曲线拟合
内)收敛速度的方法(给定我使用的特定
p0
值)

我希望它是1),因此我可以使用这个数字
S
作为曲线拟合过程的质量度量

是不是这样

此外,如果您对上述疑问有任何解释,我们将不胜感激。

据我所知,这更像是您的第一点

从:

popt的估计协方差。对角线提供了方差 参数的估计值。计算上的一个标准偏差误差 参数使用perr=np.sqrt(np.diag(pcov))

因此,pcov越小,参数估计的误差就越小

--编辑---

pcov
表示解算器对所提供的参数
popt
是最佳且唯一的确定程度。这并不一定意味着它们能很好地拟合数据。

实际上既不是1)也不是2)。协方差矩阵给出拟合参数的误差和相关性。当拟合“看起来不错”时,可能会出现较大的错误。较大的误差意味着模型的预测不是很好。当两个参数基本上做相同的事情时,相关性(非对角元素)可能非常大,而模型仍然很好。在第一种方法中,拟合优度最好用缩减卡方检验。 大多数拟合是通过最小化卡方来完成的。收敛速度取决于许多因素,包括高维(维数为参数数)卡方超曲面的复杂性,而误差仅从近似抛物线(局部)极小值的曲率估计

当深入细节时,它会很快变得复杂,但作为一个粗略的想法,不知何故,就是这样

Adendum

下面的问题出现了:是不是一个小的
S
通常表示一个好的配合,而一个好看的配合不一定有一个小的
S

在拟合过程中,最佳参数最终是输入参数的函数。参数的误差反映了如果输入数据略有变化,参数将如何变化。假设我们有
a+bx\u i=y\u i
(这是线性的,但可以推广。我们假设
x
中没有错误)。然后我们将得到a=f(x,y)。误差
sua
d/dyif(x,y)
有关,实际上,这是误差传播->误差
yui
如何影响
a
等。因此,大多数时候我会说,在线性系统中,小误差意味着很好的拟合。在奇怪的非线性情况下,我很确定可以构造一种情况(陡峭的局部极小值),其中参数的变化相对于输入值的变化很小,而拟合本身却很差。在这种情况下,一个会有小错误和一个坏的配合在同一时间。不过,人们可能会在卡方值中看到它

另一方面,正如前面提到的,你可以有一个很好的拟合,卡方误差很小,但误差很大。这本身不是问题。但是,如果使用带有拟合参数的模型来预测其他值,则需要执行错误传播。因此,这个预测在现实中可能是非常好的,但数学告诉你要宣布一个低置信度


给出了一些数学公式。。。好的,谢谢,但是你听起来有点不确定:)我也不确定:)这就是我问这个问题的原因。我不明白
错误
。。。误差/差异与什么相比?到数据点
(x,y)
,或者到参数本身的变化程度,直到它们收敛到“几乎最优”曲线。如果你真的想挖掘它并理解它,我建议做一些练习。我会得到一组完美拟合曲线的点,看看pcov会发生什么。然后开始一个接一个地改变事情,看看会发生什么=)我刚刚完成了文档中提供的示例,并删除了
y_噪音
。。。拟合是完美的,
pcov
为零。这是一个线索;)好啊那么你的意思是这样的测试表明它确实是1)而不是2)?数字S——它确实是衡量我们接近数据的程度的一个指标?@peter.petrov在阅读了@mikuszefski的答案后改变了我的观点,我对高阶多项式进行了一些研究。尝试将一组性能良好的点(如直线)拟合成高阶多项式函数。多项式被卡住了,无法拟合数据,尽管最佳解决方案非常简单-因此,你用一个非常小的
pvoc
得到了可怕的拟合,有人提出了这个问题,也许我