[SciPy-User] Revisit Unexpected covariance matrix from scipy.optimize.curve_fit
Moore, Eric (NIH/NIDDK) [F]
eric.moore2@nih....
Fri Feb 22 10:12:41 CST 2013
> -----Original Message-----
> From: Tom Aldcroft [mailto:aldcroft@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
More information about the SciPy-User
mailing list