[SciPy-user] scipy.optimize.leastsq and covariance matrix meaning

massimo sandal massimo.sandal at unibo.it
Mon Nov 10 13:23:15 EST 2008


Bruce Southey wrote:

> What are the actual parameters that you think you are trying to estimate 
> here?

persistent length and contour length (Lo and P in the script).

> What is y and x relative to the equation? In particular is y=F*P or just 
> F or P?

I don't understand that. y is a force, x is a distance.

> Your parameter therm is a constant so I would first compute Y/therm 
> before doing anything else or just ignore it.

This is a nice idea, thanks.

> Also, you probably need to rescale both x and y because these are either 
> very small or very large. 

Why? Is there any numerical error waiting, you mean?

> Perhaps even standardize x to mean 0 and 
> variance 1. However, you do need to be very careful here. Getting 
> nonlinear models to converge to 'correct' parameters is often an art 
> than a science.

I think I have been misunderstood. The nonlinear model converges *very 
correctly*, and the parameters I find are in *excellent agreement* with 
expected values in practically all cases.

What I am asking is for a way to estimate the sigma I have on these 
parameters on a single fit.

The covariance matrix gives me what, in my naivety, look like 
unreasonably enormous covariance values. This to me seems very odd, 
given that I can estimate the correct length of an about 30-nm protein 
module, as measured on several peaks, with a 1.5 nm sigma.

> However, I still don't think you have the data to estimate this function 
> as there are no clear 'high' and 'low' points. I also don't think this 
> model will describe the patterns provided by the links (not even clear 
> how your data relates to these images).

The model describes peaks on force spectroscopy curves very well -it's 
the standard model used in the literature for that. The model does not 
describe the *whole* sawtooth curve, but only *each* rising portion of 
these peaks.

The data I put in the script is just an interval where I fit the whole 
dataset. I have curves with lots of peaks. In the software, I have a 
function that allows me to click two points on the curve and have the 
WLC fitted to the data interval between two points. I just pasted that 
interval and put it in a small script to give the mailing list actual 
stuff to help me.

m.
-- 
Massimo Sandal , Ph.D.
University of Bologna
Department of Biochemistry "G.Moruzzi"

snail mail:
Via Irnerio 48, 40126 Bologna, Italy

email:
massimo.sandal at unibo.it

web:
http://www.biocfarm.unibo.it/samori/people/sandal.html

tel: +39-051-2094388
fax: +39-051-2094387
-------------- next part --------------
A non-text attachment was scrubbed...
Name: massimo_sandal.vcf
Type: text/x-vcard
Size: 274 bytes
Desc: not available
URL: <http://mail.scipy.org/pipermail/scipy-user/attachments/20081110/92b9a040/attachment.vcf>


More information about the SciPy-User mailing list