[R] calculating goodness-of-fit statistics

Pontarelli, Brett bpontar at amazon.com
Wed Feb 1 03:11:26 CET 2006


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




More information about the R-help mailing list