最近在进行一个加权最小二乘法计算时候发现的:
+对于同样的输入,Matlab使用lscov语句
+R语言使用lm语句
+C#使用Alglib计算包
+都是很基本的加权最小二乘法
当数据量较小时,计算得到的结果是一致;但当数据量较大(矩阵3000*100左右),三个方法得到的结果就有出入了,而且差别不小。我猜是不是算法在进行SVD的时候采用了不同的方法、或是在对不满秩的情况处理有不同(比如R语言有时候干脆就对某一列输出个NA)?板上有哪位大神了解?
那么请问在这种情况下究竟怎么选择方法?程序最后还是要落脚在C#上的。