mailRe: two questions: hybrid analysis and convergence problems


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Edward d'Auvergne on July 09, 2007 - 10:04:
Hi,

The two calls to self.relax.specific.model_free.model_statistics() and
self.relax.generic.model_selection.aic() were exactly what you needed.
Sorry I couldn't help more, work has been flat out here and I don't
have internet at home yet (useless Deutsche Telekom!).  I've had a
close look at all the values using the software Grace and I think I
know what is happening.  From a distance, viewing all the values, it
looks like the algorithm has converged.  But if you zoom right in to
the 'flat' line you'll see what looks like a repetitive pattern
emerging.  It looks like you have stumbled on a circular loop in the
problem (see my paper at
http://www.rsc.org/publishing/journals/MB/article.asp?doi=b702202f or
chapter 5 of my thesis
http://eprints.infodiv.unimelb.edu.au/archive/00002799/ for a
description of the highly interlinked, yet unavoidable, mathematical
optimisation and statistical model selection problem).  Although the
parameter number is not changing, I have a feeling that there is are
small parameter changes occurring.  Possibly along the lines of one
residue having a tiny Rex value in one round and another residue
having nothing, and later on these swap.  My guess is that you are
circularly sliding between these different, yet statistically
indistinguishable, model-free universes in an infinite loop.  If you
ran the algorithm for a long time, maybe you'll eventually break out
of the loop and find the unique solution.

Despite there being no convergence, it's probably safe to terminate
the algorithm at this point.  Because the changes are so small, the
differences are unlikely to be statistically significant.  It is very
useful to note that this is happening though, and if you hunt down the
problematic two (or maybe a few more) parameters you should then see
exactly what is happening and judge for yourself its significance.
Again, sorry for not responding earlier.

Cheers,

Edward


On 6/25/07, Douglas Kojetin <douglas.kojetin@xxxxxxxxx> wrote:
Thanks Edward.  I got it to work using the following script:

##-start of script

import glob
runs = glob.glob('prolate/round_*')
out=open('PARAMS.dat', 'w')
# Loop over the runs.
for name in runs:
     run.create(name, 'mf')
     results.read(run=name, file='results', dir=name+'/opt')
     k,n,chi2=self.relax.specific.model_free.model_statistics
(run=name, global_stats=1)
     aic=self.relax.generic.model_selection.aic(chi2, k, n)
     out.write( "%s: %d %d %0.30f %0.30f\n" % (name, k, n, chi2, aic) )
out.close()

##-end


"""
# round: k n chi2 aic
prolate/round_1: 276 675 785.330531871414336819725576788187
1337.330531871414223132887855172157
prolate/round_2: 274 675 786.656854782415166482678614556789
1334.656854782415166482678614556789
prolate/round_3: 275 675 784.104495289329975094005931168795
1334.104495289329861407168209552765
prolate/round_4: 275 675 783.543316702498373160779010504484
1333.543316702498486847616732120514
prolate/round_5: 273 675 786.500523476859029869956430047750
1332.500523476859143556794151663780
prolate/round_6: 275 675 784.433290432082458210061304271221
1334.433290432082458210061304271221
prolate/round_7: 274 675 786.264734828735640803643036633730
1334.264734828735527116805315017700
prolate/round_8: 274 675 785.887140331052023611846379935741
1333.887140331052023611846379935741
prolate/round_9: 274 675 785.887140331170371609914582222700
1333.887140331170485296752303838730
prolate/round_10: 274 675 785.887140331282466831908095628023
1333.887140331282353145070374011993
prolate/round_11: 274 675 785.887140331283262639772146940231
1333.887140331283262639772146940231
prolate/round_12: 274 675 785.887140331282807892421260476112
1333.887140331282807892421260476112
prolate/round_13: 274 675 785.887140331283376326609868556261
1333.887140331283262639772146940231
prolate/round_14: 274 675 785.887140331282921579258982092142
1333.887140331282807892421260476112
prolate/round_15: 274 675 785.887140331282353145070374011993
1333.887140331282353145070374011993
prolate/round_16: 274 675 785.887140331283262639772146940231
1333.887140331283262639772146940231
prolate/round_17: 274 675 785.887140331052364672359544783831
1333.887140331052250985521823167801
prolate/round_18: 274 675 785.887140331284172134473919868469
1333.887140331284172134473919868469
prolate/round_19: 274 675 785.887140331283262639772146940231
1333.887140331283262639772146940231
prolate/round_20: 274 675 785.887140331282694205583538860083
1333.887140331282807892421260476112
prolate/round_21: 274 675 785.887140331284967942337971180677
1333.887140331285081629175692796707
prolate/round_22: 274 675 785.887140331337491261365357786417
1333.887140331337377574527636170387
prolate/round_23: 274 675 785.887140331283944760798476636410
1333.887140331283944760798476636410
prolate/round_24: 274 675 785.887140331283376326609868556261
1333.887140331283262639772146940231
prolate/round_25: 274 675 785.887140331282921579258982092142
1333.887140331282807892421260476112
prolate/round_26: 274 675 785.887140331282353145070374011993
1333.887140331282353145070374011993
prolate/round_27: 274 675 785.887140331283262639772146940231
1333.887140331283262639772146940231
prolate/round_28: 274 675 785.887140331052364672359544783831
1333.887140331052250985521823167801
prolate/round_29: 274 675 785.887140331284172134473919868469
1333.887140331284172134473919868469
prolate/round_30: 274 675 785.887140331283262639772146940231
1333.887140331283262639772146940231
prolate/round_31: 274 675 785.887140331282694205583538860083
1333.887140331282807892421260476112
"""

Let me know if you would like any other information from this or
other tensor rounds to track down the problem.

Thanks,
Doug


On Jun 25, 2007, at 10:21 AM, Edward d'Auvergne wrote:
> Unfortunately my scripts are archived on my personal laptop which I
> don't with me here at work.  It may involve using certain relax
> functions (not user functions) located in 'self.relax.generic' or
> 'self.relax.specific'.  Most likely you will need
> 'self.relax.specific.model_free.model_statistics()'.  I hope this
> helps.
>
> Regards,
>
> Edward
>
>
> On 6/25/07, Douglas Kojetin <douglas.kojetin@xxxxxxxxx> wrote:
>> Hi Edward,
>>
>> Once I figure out how to print the AIC and k values, I will send them
>> along.  If you have a script example of this, it will save me some
>> time [I've been working on this for an hour or so now without any
>> luck].
>>
>> Doug
>>
>>
>> On Jun 25, 2007, at 9:01 AM, Edward d'Auvergne wrote:
>>
>> > Hi,
>> >
>> > Would you be able to print the AIC and k values as well?  k is the
>> > number of parameters in the model.  The places where the chi-
>> squared
>> > value increases rather than decreases is because of a collapse in
>> > model complexity.  If you plot the chi2, AIC, and k values verses
>> > iteration number, like I did in my thesis in figures 7.3 and 7.4
>> > (http://eprints.infodiv.unimelb.edu.au/archive/00002799/),
>> you'll see
>> > what is happening there.  The plots should help in figuring out
>> > exactly what is happening.
>> >
>> > Regards,
>> >
>> > Edward
>> >







Related Messages


Powered by MHonArc, Updated Sun Jul 22 23:00:44 2007