multinom.test {ExactMultinom}R Documentation

Multinomial Goodness-of-Fit Tests

Description

Computes exact p-values for multinomial goodness-of-fit tests based on multiple test statistics, namely, Pearson's chi-square, the log-likelihood ratio and the probability mass statistic. Implements the algorithm detailed in Resin (2020). Estimates based on the classical asymptotic chi-square approximation or Monte-Carlo simulation can also be computed.

Usage

multinom.test(
  x,
  p,
  stat = "Prob",
  method = "exact",
  theta = 1e-04,
  timelimit = 10,
  N = 10000
)

Arguments

x

Vector of non-negative integers - number of times each outcome was observed.

p

A vector of positive numbers - the hypothesized probabilities for each outcome. Need not sum to 1, but only encode hypothesized proportions correctly.

stat

Test statistic to be used. Can be "Prob" for the probability mass, "Chisq" for Pearson's chi-square and "LLR" for the log-likelihood ratio.

method

Method used to compute the p-values. Can be "exact", "asymptotic" and "Monte-Carlo".

theta

Parameter used with the exact method. p-values less than theta will not be determined precisely. Values >= 10^-8 are recommended. Very small p-values (< 10^-8) may be falsified by rounding errors.

timelimit

Time limit in seconds, after which the exact method is interrupted to avoid long runtime.

N

Number of samples generated by the Monte-Carlo approach.

Details

The "exact" method implements the algorithm detailed in Resin (2020). The method improves on the full enumeration implemented in some other R packages. It should work well if the number of categories is small. To avoid long runtimes the exact computation is interrupted after timelimit seconds. However, it may take longer than the specified time limit for the actual interrupt to occur. Only p-values greater theta are determined precisely. For p-values less than theta, the algorithm will only determine that the p-value is smaller than theta.

The "asymptotic" method returns classical chi-square approximations. The asymptotic approximation to the probability mass statistic is detailed in Section 2 of Resin (2020).

The "Monte-Carlo" method returns estimates based on N random draws from the hypothesized distribution.

Value

A list with class "mgof" containing

x

As input by user.

p

As input by user.

stat

As input by user or default.

method

As input by user or default.

theta

As input by user or default.

pvals_ex

Exact p-values or NA. WARNING: Values less than theta are NOT exact p-values, but only imply that the actual p-value is less than that value.

pvals_as

Asymptotic approximation to p-values or NA.

pvals_mc

Monte-Carlo estimated p-values or NA.

The first p-value (e.g., pvals_ex[1]) is obtained from the probability mass, the second from Pearson's chi-square and the third from the log-likelihood ratio.

Note

Each method computes p-values for all three test statistics simultaneously.

References

Resin, J. (2020), A Simple Algorithm for Exact Multinomial Tests, Preprint https://arxiv.org/abs/2008.12682

Examples

# Test fairness of a die (that is, whether each side has the same probability)
p_fair = rep(1/6,6) # Hypothesized probabilities for each side
x = c(16,17,12,15,15,25) # Observed number of times each side appeared on 100 throws
# Exact multinomial test (using probability ordering by default):
multinom.test(x,p_fair)
# Exact multinomial test using log-likelihood ratio:
multinom.test(x,p_fair,stat = "LLR")
# Classical chi-square test (using asymptotics to estimate p-value and Pearson's chi-square):
multinom.test(x,p_fair,stat = "Chisq",method = "asymptotic")
# Using Monte-Carlo approach and probability ordering 
multinom.test(x,p_fair,stat = "Prob",method = "Monte-Carlo")

[Package ExactMultinom version 0.1.2 Index]