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