numpy polyfit中两个数据点的协方差

时间:2016-08-10 10:42:34

标签: python numpy

我有两个数据点,x和y以及相关的y错误。我希望在数据点中插入一条直线并计算斜率和截距中的误差。当我尝试使用带有cov = True的numpy ployfit来获取协方差矩阵以便找到错误时它会给我以下错误:

ValueError: operands could not be broadcast together with shapes (2,2) (0,)

示例代码:

import numpy as np
x=np.array([1,5])
y=np.array([1,5])
errors=np.array([0.2,0.4])
np.polyfit(x,y,1, w=errors, cov=True)

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

我不认为这是可能的。为了计算协方差矩阵,polyfit(调用numpy.lstsq)需要残差。但是你的拟合残差必须为零,因为你的直线总是会经过两个数据点。

事实上,只要系数矩阵的排名小于或等于lstsq(数据点的数量),resid就会为N返回一个空数组。

也许你应该问一下你希望从斜率和拦截中得到什么信息":他们可能采取什么样的其他价值,使得那些"适合"在某种意义上是最好的吗?