[Ifeffit] weighting multi-data fit

Jörg Haug joerg.haug at physik.uni-halle.de
Wed Jun 20 02:32:33 CDT 2007


Am Dienstag, 19. Juni 2007 20:38 schrieb Matt Newville:
> Hi Jörg,
>
> On Tuesday 19 June 2007, Jörg Haug wrote:
> > Dear all,
> >
> > I have a question regarding the weighting for a multiple data set
> > fitting. I found that there is the parameter Epsilon to do this in
> > Artemis. But in the help file there is no description how to use this
> > parameter. Which value did I have to use to set the weighting to (for
> > example) double or half? Best regards
>
> It's a little bit convoluted -- probably more so than it should be --
> to modify the weightings for different data sets in a fit using
> multiple data sets.   It's also poorly documented.  It is discussed in
> some detail in the older Feffit documentation that's on the Ifeffit
> web site.
>
> The approach is to specify epsilon_r or epsilon_k for each data set.
> The two values are related and specifying either one is sufficient for
> the feffit() command to calculate the appropriate one.  For fits in R
> space, epsilon_r is used as the weighting factor:  For a single data
> set, the quantity minimized in the best fit is
>    chi_square = (1 / N ) Sum_i=1^N   {   [Data_i - Fit_i]^2 / epsilon_r^2 
> }
>
> where the sum is over N R-space points.  The data spacing for chi(R)
> is set by the Fourier transform range and k-grid, so that points in R
> space are ~0.03Ang apart.   Since we really ought to be careful about
> how much information is in our data, the sum might be better (though
> less stable) if the spacing were given by the spectral resolution (see
> other recent discussions!) of pi/(2*Delta k), which would make the sum
> go to N_idp instead of N.
>
> We take that into account, and also assume that there is no R
> dependence of epsilon_r,  so that  chi_square becomes
>    chi_square = N_idp / (N epsilon_r^2)  Sum_i=1^N   [ Data_i - Fit_i]^2
>
> for one data set.   For multiple data sets, there's an outer sum, so
> the weighting factors applied
> actually take N_idp and N (for each data set!) into account.  For a
> fit with M data sets,
>    chi_square = SUM_j=1^M   {  N_idp_j /(N_j epsilon_r_j^2)
> Sum_i=1^N_j  [ Data_ij - Fit_ij]^2  }
>
>
> The upshot is that if you want "equal weighting" to spectra with
> different k- and  R-ranges and/or different noise levels,  you might
> have to be a little careful in how you set epsilon_r (or, equivalently
> epsilon_k) for each data set.      For the simplest case of the
> different data sets having equal k- and R- ranges, you can just double
> an epsilon_k for a particular data set to mean "accept a fit that's
> twice as bad for this data set".
>
> Cheers,
>
> --Matt

Thanks Matt and Bruce for the answers. I will try to play with this parameter 
now a little bit.

-- 
Dr. Jörg Haug
Martin-Luther-Universität Halle-Wittenberg
Institut für Physik
Anorganisch-Nichtmetallische Materialien
Friedemann-Bach-Platz 6
D-06108 Halle
Telefon:  0345 55 25 529
Fax:         0345 55 27 159
e-mail:  joerg.haug at physik.uni-halle.de
http://www.physik.uni-halle.de/Fachgruppen/Glas/arbeitsgruppen/anw.htm




More information about the Ifeffit mailing list