On Tue, Aug 16, 2011 at 2:15 AM, 4ndre <andre.dank...@gmail.com> wrote:
> > Hi, > > I'm a little bit desperated. I googled for days to find an appropriate way > to calculate the absolute errors of parameters of non-linear fits. I found > different sites which suggest different, sometimes more or less similar > ways. But the results don't make sense. Here is a simple example: > > from pylab import * > from scipy.optimize import curve_fit > def f(x,a,b): > return a*x+b > def fit(n=1000): > x,y=array([0,1,1]),array([1,2,4]) > xf=[(min(x)+i*(max(x)-min(x))/float(n)) for i in range(0,int(n)+1)] > a,acov=curve_fit(f,x,y) > yf=[f(*tuple([i]+list(a))) for i in xf] > meansq=sum([pow(y[i]-f(x[i],a[0],a[1]),2)/(len(x)) for i in > range(0,len(x))]) > redchi2=sum([pow(y[i]-f(x[i],a[0],a[1]),2)/(len(x)-len(a)) for i in > range(0,len(x))]) > print 'standard dev:',sqrt(diag(acov)) > print 'abs. meansq err.:',[acov[i][i]*sqrt(meansq) for i in > range(0,len(a))] > print 'abs. reduced meansq err.:',[acov[i][i]*sqrt(redchi2) for i in > range(0,len(a))] > fit() > > I included 3 ways I found. The used arrays have 3 points, where for x=1 I > give 2 different y values. I would say, > a=2+/-1, b=1+/-0, > but no way yields to a similar result! How can I trust this function on > more > complicated, really non-linear functions? Or is simply this example wrong? > Or are the methods not right? > I'm very thankful for any help! > > Best regards, > André > Andre, Typically, I do something like the following: from scipy.optimize import polyfit, polyval import numpy as np. # x and y are arrays of floats a, b = polyfit(x, y, 1) # first-order polynomial y_fit = polyval([a, b], x) mean_abs_err = np.mean(np.abs(y_fit - y)) I hope that helps! Ben Root
------------------------------------------------------------------------------ uberSVN's rich system and user administration capabilities and model configuration take the hassle out of deploying and managing Subversion and the tools developers use with it. Learn more about uberSVN and get a free download at: http://p.sf.net/sfu/wandisco-dev2dev
_______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users