这很容易做到,但是要自己编写,您将需要特征值求解器或奇异值分解。将(x-xbar,y-ybar,z-zbar)数据的nx3矩阵A创建为列。保存这些列表示以后,我将其称为V0
= [xbar,ybar,zbar]。
现在,计算A’* A的特征值和特征向量,即由A转置乘以A形成的3x3矩阵。
如果此数据位于R ^ 3中的一行上,则这些特征值之一将明显大于其他两个特征值。如果这是不正确的,那么将不能很好地估计正交回归线。
取与最大特征值A’* A关联的特征向量。然后,如果V是对应的特征向量,则正交回归线定义为
V(t)= V0 + t * V
该线上的任何点都可以由参数t的某个值给出。
或者,计算A的奇异值分解,并采用对应于A的最大奇异值的正确奇异矢量。
无论哪种情况,如果您希望计算数据点的误差,则可以将其定义为与所讨论的线的正交距离。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)