The G-test goodness-of-fit test can be performed with the G.test function in the package RVAideMemoire. As another alternative, you can use R to calculate the statistic and p-value manually.
Examples in Summary and
Analysis of Extension Program Evaluation
SAEPER: Goodness-of-Fit Tests for Nominal Variables
Packages used in this chapter
The following commands will install these packages
if they are not already installed:
if(!require(DescTools)){install.packages("DescTools")}
if(!require(RVAideMemoire)){install.packages("RVAideMemoire")}
See the Handbook for information on these topics.
Examples: extrinsic hypothesis
G-test goodness-of-fit test with DescTools and RVAideMemoire
###
--------------------------------------------------------------
### Crossbill example, G-test goodness-of-fit, p. 55
### --------------------------------------------------------------
observed = c(1752, 1895) # observed frequencies
expected = c(0.5, 0.5) # expected proportions
library(DescTools)
GTest(x=observed,
p=expected,
correct="none") #
"none" "williams" "yates"
Log likelihood ratio (G-test) goodness of fit test
G = 5.6085, X-squared df = 1, p-value = 0.01787
library(RVAideMemoire)
G.test(x=observed,
p=expected)
G-test for given probabilities
G = 5.6085, df = 1, p-value = 0.01787
# # #
G-test goodness-of-fit test by manual calculation
###
--------------------------------------------------------------
### Crossbill example, G-test goodness-of-fit, p. 55
### Manual calculation
### --------------------------------------------------------------
observed = c(1752, 1895) # observed
frequencies
expected.prop = c(0.5, 0.5) # expected
proportions
degrees = 1 # degrees of
freedom
expected.count = sum(observed)*expected.prop
G = 2 * sum(observed * log(observed / expected.count))
G
[1] 5.608512
pchisq(G,
df=degrees,
lower.tail=FALSE)
[1] 0.01787343
# # #
Examples of G-test goodness-of-fit test with DescTools and RVAideMemoire
###
--------------------------------------------------------------
### Rice example, G-test goodness-of-fit, p. 55
### --------------------------------------------------------------
observed = c(772, 1611, 737)
expected = c(0.25, 0.50, 0.25)
library(DescTools)
GTest(x=observed,
p=expected,
correct="none") #
"none" "williams" "yates"
Log likelihood ratio (G-test) goodness of fit test
G = 4.1471, X-squared df = 2, p-value = 0.1257
library(RVAideMemoire)
G.test(x=observed,
p=expected)
G-test for given probabilities
G = 4.1471, df = 2, p-value = 0.1257
# # #
### --------------------------------------------------------------
### Foraging example, G-test goodness-of-fit, pp. 55–56
### --------------------------------------------------------------
observed = c(70, 79, 3, 4)
expected = c(0.54, 0.40, 0.05, 0.01)
library(DescTools)
GTest(x=observed,
p=expected,
correct="none") #
"none" "williams" "yates"
Log likelihood ratio (G-test) goodness of fit test
G = 13.145, X-squared df = 3, p-value = 0.004334
library(RVAideMemoire)
G.test(x=observed,
p=expected)
G-test for given probabilities
G = 13.1448, df = 3, p-value = 0.004334
# # #
Example: intrinsic hypothesis
###
--------------------------------------------------------------
### Intrinsic example, G-test goodness-of-fit, amphipod, p. 56
### --------------------------------------------------------------
observed = c(1203, 2919, 1678)
expected.prop = c(.21073, 0.49665, 0.29262)
### Note: These are recalculated for more
precision
### In this case, low precision probabilities
### change the results
expected.count = sum(observed)*expected.prop
G = 2 * sum(observed * log(observed / expected.count))
G
[1] 1.032653
pchisq(G,
df=1,
lower.tail=FALSE)
[1] 0.3095363
# # #
Graphing would be the same as in the “Chi-square Test of Goodness-of-Fit” section.
See the Handbook for information on these topics. The exact test of goodness-of-fit and the chi-square test of goodness-of-fit tests are described elsewhere in this book.
These examples are shown above.
Power analysis would be the same as in the “Chi-square Test of Goodness-of-Fit” section.