forum.alglib.nethttp://forum.alglib.net/ lsfitlinear error?http://forum.alglib.net/viewtopic.php?f=2&t=824 Page 1 of 1

 Author: MarcF [ Fri Apr 26, 2013 5:41 pm ] Post subject: lsfitlinear error? Why does the following fail to find a simple linear fit??Code:double[] y = new double[] { 6.95, 8.57, 10.3, 12.2, 14.0 };double[,] x = new double[,] {{1},{2},{3},{4},{5}};int info;double[] c;alglib.lsfitreport rep;alglib.lsfitlinear(y, x, out info, out c, out rep);//rep.r2 value equals 0.25//c[0] value equals 3.16//Expected result is 1.77 ?????Regards,MarcF

 Author: Sergey.Bochkanov [ Fri Apr 26, 2013 6:48 pm ] Post subject: Re: lsfitlinear error? Why do you think that it fails? lsfitlinear is a GENERAL least squares solver. In your formulation it solves problem of fitting experimental points by y(x)=c[0]*x - fitting without constant term, because you've specified only linear term in x matrix. And it fits data as good as possible - for c[0]=3.16 we have RSS (residual sum of squares) equal to 23.5, which is many times lower than RSS=129.8 for c[0]=1.77If you want to perform linear fit by y(x)=c[0]+c[1]*x, you have to pass [[1,1],[1,2],[1,3],[1,4],[1,5]], where first item in each row correspond to constant term, second item - to linear term. Alternatively, you can use http://www.alglib.net/translator/man/manual.cpp.html#sub_polynomialfit to perform polynomial fitting.

 Author: MarcF [ Fri Apr 26, 2013 10:30 pm ] Post subject: Re: lsfitlinear error? thanks for the clarification, it makes sense now. I don't think this is particularly clear in the documentation though.Marc

 Page 1 of 1 All times are UTC Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Grouphttp://www.phpbb.com/