Hi, Just wondering if anyone out there can help answer a few questions I have.... I've been using Ifeffit/Artemis to try and fit to some experimental spectra.... and in trying to determine the best fitting parameters (k-range, r-range etc.)... I've come across a few things I'm not quite clear on..... (1) I was wondering (this might be a silly question) whether it was considered inappropriate to fit over a range larger than your spectra? (i.e. k-range of fit set to 2-15 when in actuality the spectra data only goes to ~12.5?) (2) I don't quite understand the following the significance of the following statement: These are not yet computed quite right in all situations... Chi-square for this data set = 9.01156 R-factor for this data set = 0.01651 When previously in the results the Chi-square and R-factor were given as: Independent points = 11.272460938 Number of variables = 11.000000000 Chi-square = 4.505779601 Reduced Chi-square = 16.537341618 R-factor = 0.016508545 Measurement uncertainty (k) = 0.007252615 Measurement uncertainty (R) = 0.091026879 Number of data sets = 1.000000000 I'm confused by the different Chi-square values, and what values of Chi square and R-factor for the data set would Artemis be satisfied with? (3) Also is there anyway to have Artemis deternine the best k-range (or perhaps a way to have it step through different values of kmin and kmax) ? Just wishful thinking on my part probably... Please let me know if you can help me understand these issues a bit better. Thanks!!!!!! Kristine Witkowski Northwestern University
On Wednesday 07 January 2004 12:42 pm, k-kupiecki@northwestern.edu wrote:
(1) I was wondering (this might be a silly question) whether it was considered inappropriate to fit over a range larger than your spectra? (i.e. k-range of fit set to 2-15 when in actuality the spectra data only goes to ~12.5?)
I believe that Ifeffit will do the right thing. That is, it will compute such things as the number of independent points using the actual data range. Artemis might do the "wrong" thing, in certain situations. For instance, when you change the FT and fit ranges, Artemis recomputes the number of independent points and reports that in the echo area. That calculation uses the values entered for the ranges. That is only a reporting error, though. The echo area calculation is not used in any other way. Artemis should be more clever and check to see that the data extends at least to the kmax value you enter and, if not, use the reaal extent of the data in the echo area calculation. In short, it should not really be a problem if you do what you say. Thanks for pointing that out.
(2) I don't quite understand the following the significance of the following statement:
These are not yet computed quite right in all situations... Chi-square for this data set = 9.01156 R-factor for this data set = 0.01651
When previously in the results the Chi-square and R-factor were given as:
Independent points = 11.272460938 Number of variables = 11.000000000 Chi-square = 4.505779601 Reduced Chi-square = 16.537341618 R-factor = 0.016508545 Measurement uncertainty (k) = 0.007252615 Measurement uncertainty (R) = 0.091026879 Number of data sets = 1.000000000
I'm confused by the different Chi-square values, and what values of Chi square and R-factor for the data set would Artemis be satisfied with?
Well, in my paltry defense, I was honest about not computing it correctly ;-) Artemis takes the second list of numbers from ifeffit. The other two are computed by Artemis at the end of the fit. Artemis seems to get the R-factor right but is computing the chi-square wrong. Bugs bugs bugs. Why does Artemis redo this calculation? For a single data set fit, there is no real purpose and it adds nothing to the log file. For a multiple data set fit, it is useful to get a sense of how good the fit is for each individual data set. The list of values that I said are taken from ifeffit are the over-all R-factor and chi-square for the entire fit. In the case of a multiple data set fit, then, they are the aggregate values for all data sets combined. In an effort to provide as much useful information as possible, Artemis computes the R-factor and chi-square for each data set individually. Apparently, she only does a good job with the R-factor ;-)
(3) Also is there anyway to have Artemis deternine the best k-range (or perhaps a way to have it step through different values of kmin and kmax) ? Just wishful thinking on my part probably...
The short answer is "no". I would consider implementing such a thing, but I am not sure what the good algorithm would be. (Well, okay -- a good algorithm within the confines of current ifeffit and artemis technology. I understand that there are Bayesian techniques that can determine the extent of the data.) Any good suggestions...? Stepping through values for the krange would not be too hard to implement, but is not currently part of Artemis. Have you taken a look-see at the ZnO example Artemis project files that Scott Calvin contributed in November? He discusses the issue of the stability of a fit with respect to making changes of parameters. HTH, B -- Bruce Ravel ----------------------------------- ravel@phys.washington.edu Code 6134, Building 3, Room 222 Naval Research Laboratory phone: (1) 202 767 5947 Washington DC 20375, USA fax: (1) 202 767 1697 NRL Synchrotron Radiation Consortium (NRL-SRC) Beamlines X11a, X11b, X23b National Synchrotron Light Source Brookhaven National Laboratory, Upton, NY 11973 My homepage: http://feff.phys.washington.edu/~ravel EXAFS software: http://feff.phys.washington.edu/~ravel/software/exafs/
Hi Kristine, Bruce, Shelly, everyone, I think Bruce and Shelly gave most of the answers to your questions, but I thought I'd add a few comments:
(1) I was wondering (this might be a silly question) whether it was considered inappropriate to fit over a range larger than your spectra? (i.e. k-range of fit set to 2-15 when in actuality the spectra data only goes to ~12.5?)
I think it's not inappropriate to go further than the data 'really goes', but rarely helps in the end. The common sense approach would be to set kmax to a value where the signal and noise look to be about the same size. Beyond that, you're adding more noise than signal, and so not doing much good. Common sense is sometimes wrong and is difficult to automate.
(2) chi-square, r-factors from artemis
I think those are all reporting issues. The feffit() command could, in principle, write the partial chi-square for each data set. Would this be useful?
(3) Also is there anyway to have Artemis deternine the best k-range (or perhaps a way to have it step through different values of kmin and kmax) ? Just wishful thinking on my part probably...
Please let me know if you can help me understand these issues a bit better.
Automatically setting kmin wouldn't be too hard to automate (say, a point near k=2.5 where chi(k) is close to zero??), but automating the setting of kmax is more challenging. One approach would be to use the chi_noise() command, which estimates the noise in chi(k) and saves it as epsilon_k. A recommended kmax might be set to a value such that a "heavily smoothed" chi(k) spectra is always below the estimated noise level. The chi_noise() command could do something like this to set a recommended kmax, though I'm not sure of a precise definition for "heavily smoothed" or how well this would work in practice. This does seem like it's worth looking into. --Matt
participants (3)
-
Bruce Ravel
-
k-kupiecki@northwestern.edu
-
Matt Newville