[SciPy-User] Revisit Unexpected covariance matrix from scipy.optimize.curve_fit

Pierre Barbier de Reuille pierre at barbierdereuille.net
Fri Feb 22 13:03:53 EST 2013


I don't know about this result I must say, do you have a reference?

But intuitively, perr shouldn't change when applying the same weight to all
the values.

-- 
Barbier de Reuille Pierre


On 22 February 2013 17:12, Moore, Eric (NIH/NIDDK) [F]
<eric.moore2 at nih.gov>wrote:

> > -----Original Message-----
> > From: Tom Aldcroft [mailto:aldcroft at head.cfa.harvard.edu]
> > Sent: Friday, February 22, 2013 10:42 AM
> > To: SciPy Users List
> > Subject: [SciPy-User] Revisit Unexpected covariance matrix from
> > scipy.optimize.curve_fit
> >
> > In Aug 2011 there was a thread [Unexpected covariance matrix from
> > scipy.optimize.curve_fit](http://mail.scipy.org/pipermail/scipy-
> > user/2011-August/030412.html)
> > where Christoph Deil reported that "scipy.optimize.curve_fit returns
> > parameter errors that don't scale with sigma, the standard deviation
> > of ydata, as I expected."  Today I independently came to the same
> > conclusion.
> >
> > This thread generated some discussion but seemingly no agreement that
> > the covariance output of `curve_fit` is not what would be expected.  I
> > think the discussion wasn't as focused as possible because the example
> > was too complicated.  With that I provide here about the simplest
> > possible example, which is fitting a constant to a constant dataset,
> > aka computing the mean and error on the mean.  Since we know the
> > answers we can compare the output of `curve_fit`.
> >
> > To illustrate things more easily I put the examples into an IPython
> > notebook which is available at:
> >
> >   http://nbviewer.ipython.org/5014170/
> >
> > This was run using scipy 0.11.0 by the way.  Any further discussion on
> > this topic to come to an understanding of the covariance output from
> > `curve_fit` would be appreciated.
> >
> > Thanks,
> > Tom
> > _______________________________________________
>
> chi2 = np.sum(((yn-const(x, *popt))/sigma)**2)
> perr = np.sqrt(np.diag(pcov)/(chi2/(x.shape[0]-1)))
>
> Perr is then the actual error in the fit parameter. No?
>
> -Eric
> _______________________________________________
> SciPy-User mailing list
> SciPy-User at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.scipy.org/pipermail/scipy-user/attachments/20130222/5fedd78a/attachment.html>


More information about the SciPy-User mailing list