首页 > 解决方案 > scipy lstsq的残基公式是什么?

问题描述

我使用下面的代码做了一个简单的最小二乘。最后,手动计算 tje 残差,我没有获得与 scipy 相同的值。因此,我想知道 scipy 如何计算残差?

from scipy.linalg import lstsq
np.random.seed(30042019)
A = np.random.uniform(0, 500, (100, 2))
A = np.hstack((A, np.ones((100, 1))))
B = np.dot(A, [4, 5, -2])
X, residues, rank, s = lstsq(A, B)
print("X = ", X)
print("rank = ", rank)
print("residues = ", residues)
print("calc res =", ((np.dot(A, X) - B) ** 2).mean())

结果

X =  [ 4.  5. -2.]
rank =  3
residues =  5.43023571273382e-24
calc res = 6.2083782381226065e-25

scipy 残差和手工计算的残差的值是不同的。与排名有联系吗?

标签: pythonnumpyscipy

解决方案


推荐阅读