如何使用numpy polyfit强制散点线性拟合通过零?

时间:2017-09-11 20:38:55

标签: python numpy linear-regression

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

m,b=np.polyfit(x,y,1)

我有散点并试图通过numpy polyfit进行线性拟合(y = m * x + b,b = 0)。有没有办法强制拦截b为0?我也可以有差异吗?

我用谷歌搜索,有人说np.linalg.lstsq可能有用,但我不知道如何操纵它。我更喜欢np.polyfit。可以吗?

2 个答案:

答案 0 :(得分:1)

没有。 np.polyfit没有删除低阶条款的方法。以下是np.linlg.lstsq

的使用方法
m = np.linalg.lstsq(x.reshape(-1,1), y)[0][0]
m

0.87916666666666654

相同
np.mean(y/x)

0.98520408163265305

答案 1 :(得分:-1)

线性代数在这里可能有点过分:

m = np.mean(y/x)

对于未加权的相关性,这项工作是否正常。