G-test

In statistics, G-tests are likelihood-ratio or maximum likelihood statistical significance tests that are increasingly being used in situations where chi-square tests were previously recommended.

The commonly used chi-squared tests for goodness of fit to a distribution and for independence in contingency tables are in fact approximations of the log-likelihood ratio on which the G-tests are based. This approximation was developed by Karl Pearson because at the time it was unduly laborious to calculate log-likelihood ratios. With the advent of electronic calculators and personal computers, this is no longer a problem. G-tests are coming into increasing use, particularly since they were recommended in the 1994 edition of the popular statistics text book by Sokal and Rohlf. Dunning introduced the test to the computational linguistics community where it is now widely used.

The general formula for Pearson's chi-squared test statistic is $$ \chi^2 = \sum_{i} {(O_i - E_i)^2 \over E_i}$$ where Oi is the frequency observed in a cell, E is the frequency expected on the null hypothesis, and the sum is taken across all cells. The corresponding general formula for G is $$ G = 2\sum_{i} {O_i \cdot \ln(O_i/E_i) }$$ where ln denotes the natural logarithm (log to the base e) and the sum is again taken over all cells.

The value of G can also be expressed in terms of mutual information of the contingency table or as the difference of the entropy of the contingency table and the entropy of the row and column sums $$ G = 2 \left[ \sum_{ij} k_{ij} \right] \cdot \left[ H(\pi_{ij}) - H(\pi_{i.}) - H(\pi_{.j}) \right] $$ or $$ G = 2 \left[ \sum_{ij} k_{ij} \right] \cdot MI(row,col) $$ where the entropy of some observed distribution $$ q $$ is defined as $$ H(q_i) = - {\sum_i q_i log q_i} $$ and $$ \pi_{ij} = {k_{ij} \over \sum_{ij} k_{ij}} $$, $$ \pi_{i.} = {\sum_j k_{ij} \over \sum_{ij} k_{ij}}$$ and $$ \pi_{. j} = {\sum_i k_{ij} \over \sum_{ij} k_{ij}} $$. $$ MI(row,col)= H(\pi_{ij}) - H(\pi_{i.}) - H(\pi_{.j}) $$ is the "Mutual Information between the row vector and the column vector" of the contingency table.

It can also be shown that the inverse document frequency weighting commonly used for text retrieval is an approximation of G where 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 the G statistic.

Given the null hypothesis that the observed frequencies result from random sampling from a distribution with the given expected frequencies, the distribution of G is approximately that of chi-squared, with the same number of degrees of freedom as in the corresponding chi-squared test.

For samples of a reasonable size, the G-test and the chi-squared test will lead to the same conclusions. However, the approximation to the theoretical chi-square distribution for the G-test is better than for the Pearson chi-squared tests in cases where for any cell |Oi &minus; Ei | > Ei, and in any such case the G-test should always be used.

For very small samples the multinomial test for goodness of fit, and Fisher's exact test for contingency tables, or even Bayesian hypothesis selection are preferable to either the chi-squared test or the G-test.

Statistical Software

 * Software for the R programming language to perform the G-test is available on a Professor's software page at the University of Alberta.
 * Fisher's G-Test in the GeneTS Package of the R programming language (fisher.g.test) does not implement the G-test as described in this article, but rather Fisher's exact test of Gaussian white-noise in a time series (see Fisher, R.A. 1929 "Tests of significance in harmonic analysis").