Numpy polyfit - 协方差矩阵
当我想把一条直线拟合到一组带有误差的数据时,我原本以为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
(这是默认设置),就会返回协方差矩阵。