On Fri, Oct 17, 2008 at 12:53 AM, Chris MacRaild <[EMAIL PROTECTED]> wrote:
> On Thu, Oct 16, 2008 at 6:57 PM, Edward d'Auvergne
> <[EMAIL PROTECTED]> wrote:
>> On Thu, Oct 16, 2008 at 1:09 AM, Chris MacRaild <[EMAIL PROTECTED]> wrote:
>>>>
>>>> Well, the Jackknife technique
>>>> (http://en.wikipedia.org/wiki/Resampling_(statistics)#Jackknife) does
>>>> something like this.  It uses the errors present inside the collected
>>>> data to estimate the parameter errors.  It's not great, but is useful
>>>> when errors cannot be measured.  You can also use the covariance
>>>> matrix from the optimisation space to estimate errors.  Both are rough
>>>> and approximate, and in convoluted spaces (the diffusion tensor space
>>>> and double motion model-free models of Clore et al., 1990) are known
>>>> to have problems.  Monte Carlo simulations perform much better in
>>>> complex spaces.
>>>>
>>>
>>> I have used (and extensively tested) Bootstrap resampling for this
>>> problem. In my hands it works very well provided the data quality is
>>> high (which of course it must be if the resulting values are to be of
>>> any use in model-free analysis). In other words it gives errors
>>> indistinguishable from those derived by Monte Carlo based on duplicate
>>> spectra. Bootstraping, like Jacknife, does not depend on an estimate
>>> of peak hight uncertainty. Its success presumably reflects the smooth
>>> and simple optimisation space involved in an exponential fit to good
>>> data - I fully expect it to fail if applied to the complex spaces of
>>> model-free optimisation.
>>
>> If someone would like bootstrapping for a certain technique, this
>> could added to relax without too much problem by duplicating the Monte
>> Carlo code and making slight modifications.  Implementing Jackknife or
>> the covariance matrix for error propagation would be more complex and
>> questionable as to its value.  Anyway, if it's not absolutely
>> necessary I will concentrate my efforts on getting Gary Thompson's
>> multi processor code functional (to run relax on clusters, grids, or
>> multi-cpu systems - see
>> https://mail.gna.org/public/relax-devel/2006-04/msg00023.html).  And
>> the BMRB and CCPN integration (CCPN at
>> https://mail.gna.org/public/relax-devel/2007-11/msg00037.html
>> continued at https://mail.gna.org/public/relax-devel/2007-12/msg00000.html,
>> and BMRB at https://mail.gna.org/public/relax-devel/2008-07/msg00057.html).
>>
>> One question I have about the bootstrapping you used Chris is, how did
>> you get the errors for the variance of the Gaussian distributions used
>> to generate the bootstrapping samples?  The bootstrapping method I
>> know for error analysis is very similar to Monte Carlo simulations.
>> For Monte Carlo simulations you have:
>>
>> 1)  Fit the original data set to get the fitted parameter set (this
>> uses the original error set).
>> 2)  Generate the back calculated data set from the fitted parameter set.
>> 3)  Randomise n times, assuming a Gaussian distribution, the back
>> calculated data set using original error set.
>> 4)  Fit the n Monte Carlo data sets as in 1).
>> 5)  The values of 1) and standard deviation of 4) give the final
>> parameter values.
>>
>> The bootstrapping technique for error analysis I am familiar with is:
>>
>> 1)  Fit the original data set to get the fitted parameter set (this
>> uses the original error set).
>> 2)  N/A.
>> 3)  Randomise n times, assuming a Gaussian distribution, the original
>> data set using original error set.
>> 4)  Fit the n bootstrapped data sets as in 1).
>> 5)  The values of 1) and standard deviation of 4) give the final
>> parameter values.
>>
>> Is this how you implemented it?
>>
>
> No. That is quite different to what I understand bootstrapping to be.
> The bootstrap as I have implimented it is much more closely related to
> the Jacknife, and requires no estimate of the precision of each peak
> height. See http://en.wikipedia.org/wiki/Bootstrap_(statistics) for an
> overview of various Bootstrap approaches. The work I have done has
> been exclusively with the most basic form. So, having fit the original
> dataset, I resample the data by random selection with replacement from
> the original dataset.
> eg:
> If we have peak height,relaxation time pairs stored as
>
> data = [(i0,t0), (i1,t1), ... ]
>
> we resample (your step 3 above) with:
>
> new_data = [random.choice(data) for i in range(len(data))]
>
> The effect is that each resampled dataset has the same number of
> datapoints as the original, but with a fraction of points missing and
> replaced with duplicates of other points. It is so simple that its
> remarkable that it works, but it does seem to for this purpose at
> least.

Ah, now I remember this bootstrapping method!  This is exactly as
described in the Numerical Recepies book.  May be the procedure I've
described above is a variant of the bootstrapping technique.  Or maybe
my memory is so bad after drinking so much good German beer that the
procedure I described actually has another name (maybe broken Monte
Carlo?).  In this resampling, how do you handle replicated spectra?
Are they different points in the original data set?  Or are they first
averaged and then the bootstrapping takes place.  Of course this
bootstrapping is not necessary with replicated spectra, but it's still
an interesting option if this simple method was to be implemented.

Cheers,

Edward

_______________________________________________
relax (http://nmr-relax.com)

This is the relax-users mailing list
[email protected]

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-users

Reply via email to