[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