chisq.test {ctest} | R Documentation |
Pearson's Chi-square Test for Count Data
Description
chisq.test
performs chi-square tests on contingency tables.
Usage
chisq.test(x, y = NULL, correct = TRUE,
p = rep(1/length(x), length(x)),
simulate.p.value = FALSE, B = 2000)
Arguments
x |
a vector or matrix. |
y |
a vector; ignored if |
correct |
a logical indicating whether to apply continuity correction when computing the test statistic. |
p |
a vector of probabilities of the same length of |
simulate.p.value |
a logical indicating whether to compute p-values by Monte Carlo simulation. |
B |
an integer specifying the number of replicates used in the Monte Carlo simulation. |
Details
If x
is a matrix with one row or column, or if x
is a
vector and y
is not given, x
is treated as a
one-dimensional contingency table. In this case, the hypothesis
tested is whether the population probabilities equal those in
p
, or are all equal if p
is not given.
If x
is a matrix with at least two rows and columns, it is
taken as a two-dimensional contingency table, and hence its entries
should be nonnegative integers. Otherwise, x
and y
must be vectors or factors of the same length; incomplete cases are
removed, the objects are coerced into factor objects, and the
contingency table is computed from these. Then, Pearson's
chi-square test of the null that the joint distribution of the cell
counts in a 2-dimensional contingency table is the product of the row
and column marginals is performed. If simulate.p.value
is
FALSE
, the p-value is computed from the asymptotic chi-square
distribution of the test statistic; continuity correction is only
used in the 2-by-2 case if correct
is TRUE
.
Otherwise, if simulate.p.value
is TRUE
, the p-value is
computed by Monte Carlo simulation with B
replicates. This
is done by random sampling from the set of all contingency tables
with given marginals, and works only if the marginals are positive.
Value
A list with class "htest"
containing the following
components:
statistic |
the value the chi-square test statistic. |
parameter |
the degrees of freedom of the approximate
chi-square distribution of the test statistic, |
p.value |
the p-value for the test. |
method |
a character string indicating the type of test performed, and whether Monte Carlo simulation or continuity correction was used. |
data.name |
a character string giving the name(s) of the data. |
observed |
the observed counts. |
expected |
the expected counts under the null hypothesis. |
Examples
data(InsectSprays) # Not really a good example
chisq.test(InsectSprays$count > 7, InsectSprays$spray)
# Prints test summary
chisq.test(InsectSprays$count > 7, InsectSprays$spray)$obs
# Counts observed
chisq.test(InsectSprays$count > 7, InsectSprays$spray)$obs
# Counts expected under the null
## Effect of simulating p-values
x <- matrix(c(12, 5, 7, 7), nc = 2)
chisq.test(x)$p.value # 0.4233
chisq.test(x, simulate.p.value = TRUE, B = 10000)$p.value
# around 0.29!
## Testing for population probabilities
x <- trunc(5 * runif(100))
chisq.test(table(x)) # NOT `chisq.test(x)'!