next up previous contents index
Next: 7.6 Goodness of Fit Parameters Up: 7 Fitting XAFS Data with Previous: 7.4 Executing a Fit


7.5 Estimating the uncertainties in fitted variables

The uncertainties in the fitted variables will be estimated by the feffit command immediately after the fit is done. No extra input from the user is required for this automated error analysis. The correlations between pairs of variables will also be calculated. We'll get to those is a bit, after talking about the variable uncertainties.

For each variable xxx, the scalar delta_xxx will be used to store the estimated uncertainty for that variable. This allows you to see the uncertainties two ways. Either you can either view the set of variables, best fit values and uncertainties together

  Iff> show @variables
 s02            =      0.93747649 +/-      0.02586825
 e0             =     -0.86703986 +/-      0.34801825
 delr           =      0.00757485 +/-      0.00153554
 ss2            =      0.00352229 +/-      0.00015579
or you can select individual variables or uncertainties
  Iff> show s02, delta_s02, e0, delta_e0
 s02            =       0.937476486
 delta_s02      =       0.025868253
 e0             =      -0.867039864
 delta_e0       =       0.348018253
The estimated uncertainties reflect the goodness-of-fit statistics and include the correlations between variables. Of course, the uncertainties are only an estimate. Also, note that if a variable is later set with a set() or def() command, the scalar delta_xxx will remain, probably holding an irrelevant value.

As mentioned above, the correlations between pairs of fit variables are also generated by feffit(). Because there are very many possible correlation parameters, many of which are small and uninteresting, these values are not automatically converted to Program Variables, but are kept internally (until the next time you execute a feffit() or minimize() command.) To view the correlations or to convert them to Program Variables, you can use the correl() command. A simple way to print out all the correlations is to say

  Iff> correl(@all,@all,print)
   correl_delr_s02 =    0.115944
   correl_delr_e0  =    0.870971
   correl_ss2_s02  =    0.880360
   correl_ss2_delr =    0.116302
The will create the scalars shown (correl_XX_YY for variables XX and YY) and print out their values. The correl() command (further discussed in section 9.5) takes its first two arguments as the name of the variables to find the correlation of (with the special value @all meaning to find the correlations with all variables). The keyword print means to print out as well as save the correlation values. The minimum correlation (absolute value) to report can be set with the min keyword - the default value is 0.05.
next up previous contents index
Next: 7.6 Goodness of Fit Parameters Up: 7 Fitting XAFS Data with Previous: 7.4 Executing a Fit
Matt Newville
2004-02-09