Numpy polyfit - 协方差矩阵

3 投票
1 回答
5648 浏览
提问于 2025-04-17 23:25

当我想把一条直线拟合到一组带有误差的数据时,我原本以为polyfit会返回一个2x2的协方差矩阵,这样我就可以对对角线上的元素开平方,来找到系数的不确定性,但实际上并没有。

下面是一个最简单的工作示例:

from numpy import polyfit

x=[1.,2.,3.,4.,5.,6.,7.,8.,9.]
y=[1.,3.,2.,4.,5.,6.,6.,8.,9.]

yerr=[10.,5.,3.,2.,10.,10.,10.,10.,10.]

linear = polyfit(x,y, 1, w=yerr, full=True)

print(linear)

输出结果是:

(array([ 0.95730623,  0.11546722]), array([ 114.79556527]), 2, array([ 1.38182992,  0.30090875]), 1.9984014443252818e-15)

谢谢!

1 个回答

4

这个文档上说:

  • cov : 布尔值,可选

    如果设置为True,会返回估计值和估计值的协方差矩阵。如果full设置为True,那么就不会返回协方差矩阵。

所以,如果你把cov=True,而full=False(这是默认设置),就会返回协方差矩阵。

撰写回答