Learn R Programming

vcd (version 0.9-0)

coindep_test: Test for (Conditional) Independence

Description

Performs a test of (conditional) independence of 2 margins in a contingency table by simulation from the marginal distribution of the input table under (conditional) independence.

Usage

coindep_test(x, margin = NULL, n = 1000, 
  indepfun = function(x) max(abs(x)), aggfun = max,
  alternative = c("greater", "less"),
  pearson = TRUE, return_distribution = TRUE)

Arguments

x
a contingency table.
margin
margin index(es) or corresponding name(s) of the conditioning variables. Each resulting conditional table has to be a 2-way table.
n
number of (conditional) independence tables to be drawn.
indepfun
aggregation function capturing independence in (each conditional) 2-way table.
aggfun
aggregation function aggregating the test statistics computed by indepfun.
alternative
a character string specifying the alternative hypothesis; must be either "greater" (default) or "less" (and may be abbreviated.)
pearson
logical. Should the table of Pearson residuals under independence be computed and passed to indepfun (default) or the raw table of observed frequencies?
return_distribution
if TRUE, the simulated distribution of FUN under the null is returned.

Value

  • A list of class "htest" with following components:
  • statisticthe value of the test statistic.
  • p.valuethe $p$-value for the test.
  • methoda character string indicating the type of the test.
  • data.namea character string giving the name(s) of the data.
  • distif return_distribution is TRUE, a vector of size n with simulated values of the distribution of FUN under the null.

Details

If margin is NULL this computes a simple independence statistic in a 2-way table. Alternatively, margin can give several conditioning variables and then conditional independence in the resulting conditional table is tested. By default, this uses a (double) maximum statistic of Pearson residuals. By changing indepfun or aggfun a (maximum of) Pearson Chi-squared statistic(s) can be computed or just the usual Pearson Chi-squared statistics and so on. Other statistics can be computed by changing pearson to FALSE. The function uses r2dtable to simulate the distribution of the test statistic under the null.

See Also

chisq.test, fisher.test, r2dtable

Examples

Run this code
TeaTasting <- matrix(c(3, 1, 1, 3), nr = 2,
                     dimnames = list(Guess = c("Milk", "Tea"),
                                     Truth = c("Milk", "Tea"))
)
## compute maximum statistic
coindep_test(TeaTasting)
## compute Chi-squared statistic
coindep_test(TeaTasting, indepfun = function(x) sum(x^2))
## use unconditional asymptotic distribution
chisq.test(TeaTasting, correct = FALSE)
chisq.test(TeaTasting)


data(UCBAdmissions)
## double maximum statistic
coindep_test(UCBAdmissions, margin = "Dept")
## maximum of Chi-squared statistics
coindep_test(UCBAdmissions, margin = "Dept", indepfun = function(x) sum(x^2))
## Pearson Chi-squared statistic
coindep_test(UCBAdmissions, margin = "Dept", indepfun = function(x) sum(x^2), aggfun = sum)
## use unconditional asymptotic distribution
loglm(~ Dept * (Gender + Admit), data = UCBAdmissions)

Run the code above in your browser using DataLab