calculating goodness-of-fit statistics
On Tue, 31 Jan 2006, Pontarelli, Brett wrote:
The trouble is log(0/anything) = log(0) = NaN.
Hmm: log(0) = -Inf. Taka Matzmoto said
I think 0 multiplied by anything should be zero. Am I wrong ?
Yes! 0 * Inf = NaN, 0 * -Inf = NaN, and 0 * NaN = NaN. Conventionally 0 log0 = 0, since this is the limit of x log x as x -> 0. That is also what is appropriate in the G^2 formula since it refers to a Poisson(0).
If you want them to evaulate to zero you might try zeroing out the
values you know will be NaN:
X2 = 2*sum(observed*log(observed/expected)); X2[observed==0] = 0;
A trick from way back by Bill Venables is to use pmax(observed, 1) inside the log.
--Brett -----Original Message----- From: r-help-bounces at stat.math.ethz.ch [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Taka Matzmoto Sent: Tuesday, January 31, 2006 6:03 PM To: r-help at stat.math.ethz.ch Subject: [R] calculating goodness-of-fit statistics Hi R users I have a simple data for calculating goodness-of-fit statistics (e.g., X2 by Pearson, G2 by Wilks)
You have these labelled backwards!
################################################# observed<-c(424,174,0,402) expected<-c(282.7174, 314.2972, 142.3142, 260.6712) 2*sum(observed*log(observed/expected)) # for X2 sum((observed-expected)^2/expected) # for G2 ################################################# (note. expected ones were calculating by a model I used, not by marginal of observed ones.) The third element of the observed vector is zero. For third element, 0 * log(0/142.3142) is NaN. That is why I got NaN for G2. I think 0 multiplied by anything should be zero. Am I wrong ? Is there any R functions to correct zero cells for calculating G2? If there is, I like to know some references justifying the correction. Thank you in advance TM
______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html ______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595