[R] calculating goodness-of-fit statistics

Prof Brian Ripley ripley at stats.ox.ac.uk
Wed Feb 1 09:14:36 CET 2006


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




More information about the R-help mailing list