Rev 5473 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
\name{chisq.test}\alias{chisq.test}\title{Pearson's Chi-square Test for Count Data}\usage{chisq.test(x, y = NULL, correct = TRUE,p = rep(1/length(x), length(x)),simulate.p.value = FALSE, B = 2000)}\arguments{\item{x}{a vector or matrix.}\item{y}{a vector; ignored if \code{x} is a matrix.}\item{correct}{a logical indicating whether to apply continuitycorrection when computing the test statistic.}\item{p}{a vector of probabilities of the same length of \code{x}.}\item{simulate.p.value}{a logical indicating whether to computep-values by Monte Carlo simulation.}\item{B}{an integer specifying the number of replicates used in theMonte Carlo simulation.}}\description{\code{chisq.test} performs chi-square tests on contingency tables.}\details{If \code{x} is a matrix with one row or column, or if \code{x} is avector and \code{y} is not given, \code{x} is treated as aone-dimensional contingency table. In this case, the hypothesistested is whether the population probabilities equal those in\code{p}, or are all equal if \code{p} is not given.If \code{x} is a matrix with at least two rows and columns, it istaken as a two-dimensional contingency table, and hence its entriesshould be nonnegative integers. Otherwise, \code{x} and \code{y}must be vectors or factors of the same length; incomplete cases areremoved, the objects are coerced into factor objects, and thecontingency table is computed from these. Then, Pearson'schi-square test of the null that the joint distribution of the cellcounts in a 2-dimensional contingency table is the product of the rowand column marginals is performed. If \code{simulate.p.value} is\code{FALSE}, the p-value is computed from the asymptotic chi-squaredistribution of the test statistic; continuity correction is onlyused in the 2-by-2 case if \code{correct} is \code{TRUE}.Otherwise, if \code{simulate.p.value} is \code{TRUE}, the p-value iscomputed by Monte Carlo simulation with \code{B} replicates. Thisis done by random sampling from the set of all contingency tableswith given marginals, and works only if the marginals are positive.}\value{A list with class \code{"htest"} containing the followingcomponents:\item{statistic}{the value the chi-square test statistic.}\item{parameter}{the degrees of freedom of the approximatechi-square distribution of the test statistic, \code{NA} if thep-value is computed by Monte Carlo simulation.}\item{p.value}{the p-value for the test.}\item{method}{a character string indicating the type of testperformed, and whether Monte Carlo simulation or continuitycorrection was used.}\item{data.name}{a character string giving the name(s) of the data.}\item{observed}{the observed counts.}\item{expected}{the expected counts under the null hypothesis.}}\examples{data(InsectSprays) # Not really a good examplechisq.test(InsectSprays$count > 7, InsectSprays$spray)# Prints test summarychisq.test(InsectSprays$count > 7, InsectSprays$spray)$obs# Counts observedchisq.test(InsectSprays$count > 7, InsectSprays$spray)$obs# Counts expected under the null## Effect of simulating p-valuesx <- matrix(c(12, 5, 7, 7), nc = 2)chisq.test(x)$p.value # 0.4233chisq.test(x, simulate.p.value = TRUE, B = 10000)$p.value# around 0.29!## Testing for population probabilitiesx <- trunc(5 * runif(100))chisq.test(table(x)) # NOT `chisq.test(x)'!}\keyword{htest}\keyword{distribution}