python - 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 残差和手工计算的残差的值是不同的。与排名有联系吗?
解决方案
推荐阅读
- linux - How to Do a For Loop Instead of a While Loop in Shell Scripting
- c - 将 execvp 与输入文件一起使用到程序并将输出重定向到新文件
- .net-core - 添加 nuget 包时出现 Asp.Net Core 错误
- java - 如何在来自servlet的json响应中发送带有一些数据的图像
- laravel - “页面已过期,请刷新并重试。”
- r - Remove rows with specific NA column
- c++ - 在 C++ 中将用分号分隔的文件中的整数分隔为不同的数字
- php - PHPmailer附件图像文件发送而不保存文件
- nginx - NGINX 将非安全子域重定向到主域
- c++ - 为什么不能从`std::filesystem::path`迭代器构造`std::filesystem::path`?