mcnemar.test              package:stats              R Documentation

McNemar's Chi-squared Test for Count Data

Description:

     Performs McNemar's chi-squared test for symmetry of rows and
     columns in a two-dimensional contingency table.

Usage:

     mcnemar.test(x, y = NULL, correct = TRUE)

Arguments:

       x: either a two-dimensional contingency table in matrix form, or
          a factor object.

       y: a factor object; ignored if 'x' is a matrix.

 correct: a logical indicating whether to apply continuity correction
          when computing the test statistic.

Details:

     The null is that the probabilities of being classified into cells
     '[i,j]' and '[j,i]' are the same.

     If 'x' is a matrix, it is taken as a two-dimensional contingency
     table, and hence its entries should be nonnegative integers.
     Otherwise, both 'x' and 'y' must be vectors of the same length. 
     Incomplete cases are removed, the vectors are coerced into factor
     objects, and the contingency table is computed from these.

     Continuity correction is only used in the 2-by-2 case if 'correct'
     is 'TRUE'.

Value:

     A list with class '"htest"' containing the following components: 

statistic: the value of McNemar's statistic.

parameter: the degrees of freedom of the approximate chi-squared
          distribution of the test statistic.

 p.value: the p-value of the test.

  method: a character string indicating the type of test performed, and
          whether continuity correction was used.

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

References:

     Alan Agresti (1990). _Categorical data analysis_. New York: Wiley.
     Pages 350-354.

Examples:

     ## Agresti (1990), p. 350.
     ## Presidential Approval Ratings.
     ##  Approval of the President's performance in office in two surveys,
     ##  one month apart, for a random sample of 1600 voting-age Americans.
     Performance <-
     matrix(c(794, 86, 150, 570),
            nrow = 2,
            dimnames = list("1st Survey" = c("Approve", "Disapprove"),
                            "2nd Survey" = c("Approve", "Disapprove")))
     Performance
     mcnemar.test(Performance)
     ## => significant change (in fact, drop) in approval ratings

