Re: Linear regression in NumPy
 From: Robert Kern <robert.kern@xxxxxxxxx>
 Date: Fri, 17 Mar 2006 15:07:57 0600
nikie wrote:
I'm a little bit stuck with NumPy here, and neither the docs nor
trial&error seems to lead me anywhere:
I've got a set of data points (x/ycoordinates) and want to fit a
straight line through them, using LMSE linear regression. Simple
enough. I thought instead of looking up the formulas I'd just see if
there isn't a NumPy function that does exactly this. What I found was
"linear_least_squares", but I can't figure out what kind of parameters
it expects: I tried passing it my array of Xcoordinates and the array
of Ycoordinates, but it complains that the first parameter should be
twodimensional. But well, my data is 1d. I guess I could pack the X/Y
coordinates into one 2darray, but then, what do I do with the second
parameter?
Mor generally: Is there any kind of documentation that tells me what
the functions in NumPy do, and what parameters they expect, how to call
them, etc. All I found was:
"This function returns the leastsquares solution of an overdetermined
system of linear equations. An optional third argument indicates the
cutoff for the range of singular values (defaults to 1010). There are
four return values: the leastsquares solution itself, the sum of the
squared residuals (i.e. the quantity minimized by the solution), the
rank of the matrix a, and the singular values of a in descending
order."
It doesn't even mention what the parameters "a" and "b" are for...
Look at the docstring. (Note: I am using the current version of numpy from SVN,
you may be using an older version of Numeric. http://numeric.scipy.org/)
In [171]: numpy.linalg.lstsq?
Type: function
Base Class: <type 'function'>
String Form: <function linear_least_squares at 0x1677630>
Namespace: Interactive
File:
/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/sitepackages/numpy0.9.6.2148py2.4macosx10.4ppc.egg/numpy/linalg/linalg.py
Definition: numpy.linalg.lstsq(a, b, rcond=1e10)
Docstring:
returns x,resids,rank,s
where x minimizes 2norm(b  Ax)
resids is the sum square residuals
rank is the rank of A
s is the rank of the singular values of A in descending order
If b is a matrix then x is also a matrix with corresponding columns.
If the rank of A is less than the number of columns of A or greater than
the number of rows, then residuals will be returned as an empty array
otherwise resids = sum((bdot(A,x)**2).
Singular values less than s[0]*rcond are treated as zero.

Robert Kern
robert.kern@xxxxxxxxx
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
 Umberto Eco
.
 References:
 Linear regression in NumPy
 From: nikie
 Linear regression in NumPy
 Prev by Date: Re: Importing an output from another function
 Next by Date: Re: Importing an output from another function
 Previous by thread: Linear regression in NumPy
 Next by thread: Re: Linear regression in NumPy
 Index(es):
Relevant Pages
