Python 协方差矩阵的多重拟合误差

Python 协方差矩阵的多重拟合误差,python,numpy,Python,Numpy,代码如下: p=[1,2,3,4] q=[4,5,6,7] z,n=numpy.polyfit(p,q,1,cov=True) 它给了我这样一个信息: 4 z,n=np.多元拟合(p,q,1,cov=True) C:\Users\Rekha\Anaconda3\lib\site packages\numpy\lib\polynomy.py,采用多边形拟合(x、y、deg、rcond、full、w、cov) 601#此外,它对不确定性给出了稍微保守的估计 602如果len(x)603 rai

代码如下:

p=[1,2,3,4]

q=[4,5,6,7]

z,n=numpy.polyfit(p,q,1,cov=True)
它给了我这样一个信息:

4 z,n=np.多元拟合(p,q,1,cov=True)

C:\Users\Rekha\Anaconda3\lib\site packages\numpy\lib\polynomy.py,采用多边形拟合(x、y、deg、rcond、full、w、cov)

601#此外,它对不确定性给出了稍微保守的估计

602如果len(x)603 raise VALUE ERROR(“数据点的数量必须超过订单+2” 604“用于贝叶斯估计协方差矩阵”)

605 fac=剩余/(len(x)-阶数-2.0)

ValueError:对于贝叶斯网络,数据点的数量必须超过order+2 估计协方差矩阵


我不明白为什么会这样?我有四个数据点,足以拟合一条直线。错误正好说明了问题所在:没有足够的数据点来估计协方差矩阵(而不是进行拟合)

或者,如果您满足建议的条件,即多了一个数据点,则可以对协方差矩阵进行估计

import numpy as np

p = [1, 2, 3, 4, 5]
q = [4, 5, 6, 7, 8]

z, n = np.polyfit(p, q, 1, cov=True)

print(z, n)

我不知道你需要协方差矩阵,但是如果你需要的只是拟合参数上的错误,你可以考虑手动计算这个,例如通过所有可能的<代码> C(n,k)。将

n
数据点组合为
k
的所有有效值,然后计算所得系数的标准偏差。

错误正好说明了问题所在:您没有足够的数据点估计协方差矩阵(和执行配合)

或者,如果您满足建议的条件,即多了一个数据点,则可以对协方差矩阵进行估计

import numpy as np

p = [1, 2, 3, 4, 5]
q = [4, 5, 6, 7, 8]

z, n = np.polyfit(p, q, 1, cov=True)

print(z, n)

我不知道你需要协方差矩阵,但是如果你需要的只是拟合参数上的错误,你可以考虑手动计算这个,例如通过所有可能的<代码> C(n,k)。将

n
数据点组合为
k
的所有有效值,然后计算所得系数的标准偏差。

误差表示len(x)>阶数+2。阶数为1,1+2=3阶数+3?阶数是1,阶数是阶数+1。误差表示len(x)>阶数+2。阶数是1,1+2=3阶数+3?阶数是1,阶数是阶数+1。