
In statistics, G-tests are likelihood-ratio or maximum likelihood statistical significance tests that are increasingly being used in situations where chi-squared tests were previously recommended.[1]
The general formula for test statistics of the G-test is
G=2\sumi{Oi ⋅ ln\left(
| Oi | |
| Ei |
\right)},
Oi\geq0
Ei>0
ln
G
Furthermore, the total observed count must be equal to the total expected count:
\sumiOi=\sumiEi=N,
N
Both, the G-test statistics
G
\chi2
λ\notin\{0,-1\}
\operatorname{CR}λ=
| 2 | |
| λ(λ+1) |
\sumiOi\left(\left(
| Oi | |
| Ei |
\right)λ-1\right).
G=\limλ\to0\operatorname{CR}λ, \chi2=\operatorname{CR}1.
We can derive the value of the G-test from the log-likelihood ratio test where the underlying model is a multinomial model.
Suppose we had a sample
O=(O1,\ldots,Om)
Oi
i
N=
| m | |
| \sum | |
| i=1 |
Oi
ln\left(
| L(\tildep|O) | |
| L(\hatp|O) |
\right) =ln\left(
| ||||||||||||||||
|
| Oi | |
| i |
\tildep=(\tildep1,\ldots,\tildepm)
\hatp=(\hatp1,\ldots,\hatpm)
\hatpi
\hatpi=
| Oi | |
| N |
.
\tildepi
\tildepi=
| Ei | |
| N |
,
Ei
i
\tildepi
\hatpi
ln\left(
| L(\tildep|O) | |
| L(\hatp|O) |
\right) =ln\left(
| m | ||
| \prod | \left( | |
| i=1 |
| Ei | |
| Oi |
| Oi | |
| \right) |
\right) =
| m | |
| \sum | |
| i=1 |
Oiln\left(
| Ei | |
| Oi |
\right)
-2
G =-2
| m | |
| \sum | |
| i=1 |
Oiln\left(
| Ei | |
| Oi |
\right) =2
| m | |
| \sum | |
| i=1 |
Oiln\left(
| Oi | |
| Ei |
\right)
Oi
OilnOi\to0
Ei>0
i
Given the null hypothesis that the observed frequencies result from random sampling from a distribution with the given expected frequencies, the distribution of the test statistics
G
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 the G-test.[3] 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, and G–test will give almost identical values. Spreadsheets, web-page calculators, and SAS shouldn't have any problem doing an exact test on a sample size of 1 000 .
— John H. McDonald (2014)[3]
G-tests have been recommended at least since the 1981 edition of Biometry, a statistics textbook by Robert R. Sokal and F. James Rohlf.[4]
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.[5]
The general formula for Pearson's chi-squared test statistic is
\chi2=\sumi{
| |||||||||||||
| Ei |
The approximation of the G-test statistics by chi-squared test statistics is obtained by a second order Taylor expansion of the natural logarithm around 1 (see the derivation below).We have
G ≈ \chi2
Oi
Ei
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-squared distribution for the G-test is better than for the Pearson's chi-squared test.[6] In cases where
Oi>2 ⋅ Ei
For testing goodness-of-fit the G-test is infinitely more efficient 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.[7] [8]
Consider
G=2\sumi{Oiln\left(
| Oi | |
| Ei |
\right)},
Oi=Ei+\deltai
style\sumi\deltai=0
\deltai=Oi-Ei
Ei
i
Ei=\Theta(n)
Oi=Ei+l{O}(n1/2)
n
\deltai=l{O}(n1/2)
| |||||||
|
=
|
=l{O}(n-1/2)
Upon substitution we find,
G=2\sumi(Ei+\deltai)ln\left(1+
| \deltai | |
| Ei |
\right).
ln(1+x)=x-\tfrac{1}{2}x2+l{O}(x3)
G=2\sumi(Ei+\deltai)\left(
| \deltai | |
| Ei |
-
| 1 | |
| 2 |
| |||||||
|
+
|
\right),
G=2\sumi\left(\deltai+
| 1 | |
| 2 |
| |||||||
| Ei |
+
|
\right).
style\sumi\deltai=0
\deltai=Oi-Ei
| 2)=l{O}(n | |
| l{O}(\delta | |
| i |
-1/2)
n
G ≈ \sumi
| |||||||||||||
| Ei |
.
The G-test statistic is proportional to the Kullback–Leibler divergence of the theoretical distribution
\tildep=(\tildep1,\ldots,\tildepm)
\hatp=(\hatp1,\ldots,\hatpm)
\begin{align} G &=2\sumi{Oi ⋅ ln\left(
| Oi | |
| Ei |
\right)}=2N\sumi{\hatpi ⋅ ln\left(
| \hatpi | |
| \tildepi |
\right)}\\ &=2NDKL(\hatp\|\tildep), \end{align}
N
\tildepi=\tfrac{Ei}{N}
\hatpi=\tfrac{Oi}{N}
i
For analysis of contingency tables the value of the G-test statistics can also be expressed in terms of mutual information.
In this case objects with two-dimensional types
(i,j)
Oij
(i,j)
Oij
i
j
N=\sumijOij, \hatpij=
| Oij | |
| N |
, \hatpi=
| \sumjOij | |
| N |
, \hatp\bullet=
| \sumiOij | |
| N |
.
(i,j)
Eij=N\hatpi\hatp\bullet.
G=2\sumijOijln\left(
| Oij | |
| Eij |
\right)
X,Y
\hatpij
P(X=i,Y=j)=\hatpij, P(X=i)=\hatpi, P(Y=j)=\hatp\bullet.
\begin{align} G &=2N ⋅ \sumij{\hatpij\left(ln(\hatpij)-ln(\hatpi)-ln(\hatp\bullet)\right)}\\ &=2N ⋅ l(H(X)+H(Y)-H(X,Y)r)\\ &=2N ⋅ \operatorname{MI}(X,Y), \end{align}
H(X)
H(Y)
H(X)=-\sumi\hatpiln(\hatpi), H(Y)=-\sumj\hatp\bulletln(\hatp\bullet)
H(X,Y)
H(X,Y)=-\sumij\hatpijln(\hatpij)
X
Y
\operatorname{MI}(X,Y)=H(X)+H(Y)-H(X,Y).
It can also be shown that the inverse document frequency weighting commonly used for text retrieval is an approximation of G 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 the G-test statistic.
g.test which works exactly like chisq.test from base R. R also has the likelihood.test function in the Deducer package. Note: Fisher's G-test in the GeneCycle 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.[11]Gstat for the standard G statistic and the associated p-value and Gstatindep for the G statistic applied to comparing joint and product distributions to test independence./chisq option after the proc freq.[12]lr option after the tabulate command.org.apache.commons.math3.stat.inference.GTest.[13]scipy.stats.power_divergence with lambda_=0.[14]