The trouble is log(0/anything) = log(0) = NaN. 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; --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) ################################################# 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
calculating goodness-of-fit statistics
1 message · Pontarelli, Brett