[Ifeffit] Propagation of uncertanties

Matt Newville newville at cars.uchicago.edu
Tue May 17 22:06:44 CDT 2005

Hi Shelly, Scott,

> >I request that Athena reports the uncertainty in the basic
> >EXAFS parameters and not just the fitted variables. For
> >example, the uncertainty in the optimized debye temperature
> >is reported, but the uncertainty in sigma2 value is not
> >currently reported.  I could see how this could be done by
> >Athena or by including a new function in IFEFFIT.
> While we're on the topic...
> FEFFIT used to report the uncertainties in computed variables
> (what are now DEF's) in the feffit.prm file. As far as I've
> been able to tell, Artemis doesn't report that information
> anywhere, and I'm not clear if ifeffit still computes it. Is
> it in there somewhere, and am I just missing it? In any case,
> I would like it if uncertainties in def'd variables should be
> given everywhere that uncertainties in guessed variables are
> given.

Right now, Ifeffit does not do this estimation of uncertainties
in any Path Parameters or "def"ined quantities.  It would be
possible to re-do what Feffit did for this, but I think it is
slow enough that it wouldn't make sense to do this automatically
for all Path Parameters and defined quantities for each fit.

The approach used in Feffit calculated (by brute force) the
derivative for each Parameter (either Path Parameter or defined
value) P_i with respect to each fitting variable x_j and added 
the results in quadrature:

delta_P_i = Sqrt(Sum_j,k  dx_j * dx_k * dP/dx_j * dP/dx_k * Correl(x_j, x_k) )

Again, the derivatives dP_i/dx_j were calculated by brute force
(change variable x_i to x_i +/- dx_i and see how the value of
parameter P changes). It is worth questioning whether this
approach is actually accurate enough, and whether it could be
done better or faster.

I would propose adding a command to do this for a specified
defined parameter or path (in which case, it would generate the
uncertainties for all Path Parameters).  Obviously, This would
take some time....


PS: as an aside for those of you who never used Feffit:  Feffit
is an older version of Ifeffit that _ONLY_ runs as a script in
batch mode, can not do any graphics or interactive analysis, and
is missing many of the features of Ifeffit.  It does have the
feature of being faster than Ifeffit for most fits, because it
knows you won't be able to change the model and also optimizes
how it does Fourier Transforms (because it knows you won't be
looking at the fit as it is progressing).  It did propogate 
uncertainties from variables to path parameters and defined 
quantities as above, but only had to do it once.

More information about the Ifeffit mailing list