Python 如何使用numpy多边形拟合强制散射点线性拟合通过零点?

Python 如何使用numpy多边形拟合强制散射点线性拟合通过零点?,python,numpy,linear-regression,Python,Numpy,Linear Regression,我有分散点,试着用numpy多边形拟合做一个线性拟合y=m*x+b,b=0。有没有办法强制拦截b为0?我能再要一份方差吗 我在谷歌上搜索,有人说np.linalg.lstsq可能有效,但我不知道如何操作它。我更喜欢np.polyfit。它能工作吗?线性代数在这里可能有点过头了: 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) 对于未加权的相关性,这项工作做得很好。否。np.po

我有分散点,试着用numpy多边形拟合做一个线性拟合y=m*x+b,b=0。有没有办法强制拦截b为0?我能再要一份方差吗


我在谷歌上搜索,有人说np.linalg.lstsq可能有效,但我不知道如何操作它。我更喜欢np.polyfit。它能工作吗?

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

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)
对于未加权的相关性,这项工作做得很好。

否。np.polyfit没有删除低阶项的方法。以下是使用np.linlg.lstsq的方法:

这与:

m = np.linalg.lstsq(x.reshape(-1,1), y)[0][0]
m

0.87916666666666654

这只是一个平均值,不是最小平方拟合。OP没有指定租赁平方,但无论如何我错了。我想知道你的答案。什么是[0][0]?只能是[0]还是0,0?我可以得到方差或其他一些参数吗?不,np.linalg.lstsq输出数组列表,因此第一个[0]是列表理解,然后下一个[0]是数组理解。残差为[1][0]。检查以查看np.linalg.lstsq的其他输出,但在这种情况下,大部分输出都没有用处。
m = np.linalg.lstsq(x.reshape(-1,1), y)[0][0]
m

0.87916666666666654
np.mean(y/x)

0.98520408163265305