我希望计算给定数据的最小二乘估计。
有几种方法可以做到这一点,其中之一是使用numpy的最小二乘法:
import numpy
np.linalg.lstsq(X,y)[0]
X是一个矩阵,y是一个相容尺寸的向量(类型为float64)。第二种方法是直接使用公式计算结果:
import numpy
numpy.linalg.inv(X.T.dot(X)).dot(X.T).dot(y)
我的问题:有些情况下,不同的公式会给出截然不同的结果(尽管可能没有差异)。有时,使用一个公式,系数会变得非常大,而另一个公式则更加稳定。这些公式是相同的,为什么结果会如此不同?这是一种舍入误差吗?我该如何将其最小化?