[Numpy-discussion] Numpy fitting

Pierre Barthelemy barthpi@gmail....
Thu Mar 1 09:20:14 CST 2012


Dear all,

i am writing a program for data analysis. One of the functions of this
program gives the possibility to fit the functions. I therefore use the
recipe described in :
http://www.scipy.org/Cookbook/FittingData<http://www.scipy.org/Cookbook/FittingData>
under
the section "Simplifying the syntax". The code looks like this:

class Parameter:
    def __init__(self, value):
            self.value = value
            self.fixed=False
    def set(self, value):
            if not self.fixed:
                self.value = value
    def __call__(self):
            return self.value

def fit(function, parameters, y, x = None):
    def f(params):
        i = 0
        for p in parameters:
            p.set(params[i])
            i += 1
        return y - function(x)

    if x is None: x = arange(y.shape[0])
    p = [param() for param in parameters]
    out=optimize.leastsq(f, p, full_output=1)

One thing that i would like to know is how can i get the error on the
parameters ? From what i understood from the "Cookbook" page, and from the
scipy manual (
http://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.leastsq.html#scipy.optimize.leastsq),
the second argument returned by the leastsq function gives access to these
errors.
std_error=std(y-function(x))
param_error=sqrt(diagonal(out[1])*std_error)

The param_errors that i get in this case are extremely small. Much smaller
than what i expected, and much smaller than what i can get fitting the
function with matlab. So i guess i made an error here.

Can someone tell me how i should do to retrieve the parameter errors ?

Bests,

Pierre
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/numpy-discussion/attachments/20120301/56fd68e0/attachment.html 


More information about the NumPy-Discussion mailing list