We can derive the value of theG-test from thelog-likelihood ratio test where the underlying model is a multinomial model.
Suppose we had a sample where each is the number of times that an object of type was observed. Furthermore, let be the total number of objects observed. If we assume that the underlying model is multinomial, then the test statistic is defined bywhere is the null hypothesis and is themaximum likelihood estimate (MLE) of the parameters given the data. Recall that for the multinomial model, the MLE of given some data is defined byFurthermore, we may represent each null hypothesis parameter asThus, by substituting the representations of and in the log-likelihood ratio, the equation simplifies toRelabel the variables with and with. Finally, multiply by a factor of (used to make the G test formulaasymptotically equivalent to the Pearson's chi-squared test formula) to achieve the form
Heuristically, one can imagine as continuous and approaching zero, in which case and terms with zero observations can simply be dropped. However theexpected count in each cell must be strictly greater than zero for each cell () to apply the method.
Given the null hypothesis that the observed frequencies result from random sampling from a distribution with the given expected frequencies, thedistribution ofG is approximately achi-squared distribution, with the same number ofdegrees of freedom as in the corresponding chi-squared test.
For very small samples themultinomial test for goodness of fit, andFisher's exact test for contingency tables, or even Bayesian hypothesis selection are preferable to theG-test.[2] McDonald recommends to always use an exact test (exact test of goodness-of-fit,Fisher's exact test) if the total sample size is less than 1 000 .
There is nothing magical about a sample size of 1 000, it's just a nice round number that is well within the range where an exact test, chi-square test, andG–test will give almost identicalp values. Spreadsheets, web-page calculators, andSAS shouldn't have any problem doing an exact test on a sample size of 1 000 .
The general formula for Pearson's chi-squared test statistic is
The approximation ofG by chi squared is obtained by a second orderTaylor expansion of the natural logarithm around 1 (see#Derivation (chi-squared) below).We have when the observed counts are close to the expected counts When this difference is large, however, the approximation begins to break down. Here, the effects of outliers in data will be more pronounced, and this explains the why tests fail in situations with little data.
For samples of a reasonable size, theG-test and the chi-squared test will lead to the same conclusions. However, the approximation to the theoretical chi-squared distribution for theG-test is better than for thePearson's chi-squared test.[5] In cases where for some cell case theG-test is always better than the chi-squared test.[citation needed]
For testing goodness-of-fit theG-test is infinitely moreefficient than the chi squared test in the sense of Bahadur, but the two tests are equally efficient in the sense of Pitman or in the sense of Hodges and Lehmann.[6][7]
ThenG can be expressed in several alternative forms:
where theentropy of a discrete random variable is defined as
and where
is themutual information between the row vectorr and the column vectorc of the contingency table.
It can also be shown[citation needed] that the inverse document frequency weighting commonly used for text retrieval is an approximation ofG applicable when the row sum for the query is much smaller than the row sum for the remainder of the corpus. Similarly, the result of Bayesian inference applied to a choice of single multinomial distribution for all rows of the contingency table taken together versus the more general alternative of a separate multinomial per row produces results very similar to theG statistic.[citation needed]
InR fast implementations can be found in theAMR andRfast packages. For the AMR package, the command isg.test which works exactly likechisq.test from base R. R also has thelikelihood.testArchived 2013-12-16 at theWayback Machine function in theDeducerArchived 2012-03-09 at theWayback Machine package.Note: Fisher'sG-test in theGeneCycle Package of theR programming language (fisher.g.test) does not implement theG-test as described in this article, but rather Fisher's exact test of Gaussian white-noise in a time series.[10]
AnotherR implementation to compute the G statistic and corresponding p-values is provided by the R packageentropy. The commands areGstat for the standard G statistic and the associated p-value andGstatindep for the G statistic applied to comparing joint and product distributions to test independence.
InSAS, one can conductG-test by applying the/chisq option after theproc freq.[11]
InStata, one can conduct aG-test by applying thelr option after thetabulate command.
^McDonald, J.H. (2014)."G–test of goodness-of-fit".Handbook of Biological Statistics (Third ed.). Baltimore, Maryland: Sparky House Publishing. pp. 53–58.
^Hoey, J. (2012). "The Two-Way Likelihood Ratio (G) Test and Comparison to Two-Way Chi-Squared Test".arXiv:1206.4881 [stat.ME].
^Harremoës, P.; Tusnády, G. (2012). "Information divergence is more chi squared distributed than the chi squared statistic".Proceedings ISIT 2012. pp. 538–543.arXiv:1202.1125.Bibcode:2012arXiv1202.1125H.
^G-test of independence,G-test for goodness-of-fit in Handbook of Biological Statistics, University of Delaware. (pp. 46–51, 64–69 in: McDonald, J. H. (2009)Handbook of Biological Statistics (2nd ed.). Sparky House Publishing, Baltimore, Maryland.)