Learn R Programming

vcd (version 1.4-9)

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)

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?

Value

A list of class "coindep_test" inheriting from "htest" with following components:

statistic

the value of the test statistic.

p.value

the \(p\) value for the test.

method

a character string indicating the type of the test.

data.name

a character string giving the name(s) of the data.

observed

observed table of frequencies

expctd

expected table of frequencies

residuals

corresponding Pearson residuals

margin

the margin used

dist

a vector of size n with simulated values of the distribution of the statistic under the null.

qdist

the corresponding quantile function (for computing critical values).

pdist

the corresponding distribution function (for computing \(p\) values).

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
# NOT RUN {
library(MASS)
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