# McNemar’s test in R

By Data Tricks, 28 July 2020

### What is a McNemar’s test?

A McNemar’s test is used to compare the frequencies of paired samples of dichotomous data. It is similar to the paired samples t-test but for dichotomous nominal instead of interval variables.

If your data are not dichotomous and you have more than two categories in your nominal variable an extension of the McNemar’s test called the McNemar-Bowker test might be appropriate. Fortunately, the code in R used in the example below would be identical as the mcnemar.test function can handle multiple categories in the nominal variable.

A McNemar’s test has a null hypothesis that the marginal probabilities for each outcome is the same. In other words, if the data is tabulated in a contingency table as follows:

Test 2
Positive Negative
Test 1 Positive a b
Negative c d

then the probability of b is the same as the probability of c.

### Example in R

First let’s create a set of values to use in this example:

set.seed(150)
data <- data.frame(before = sample(c("Positive",
"Positive",
"Positive",
"Positive",
"Negative"),
300, replace = TRUE),
after = sample(c("Positive",
"Positive",
"Positive",
"Positive",
"Negative"),
300, replace = TRUE))

A contingency table can be created using the table function:

> table(data$before, data$after)

Negative Positive
Negative       13       49
Positive       55      183

Our null hypothesis is that the marginal probabilities are the same, whilst the alternative hypothesis is that they are different.

test <- mcnemar.test(table(data$before, data$after))

Now analyse the result of the test:

> test

McNemar's Chi-squared test with continuity correction

data: table(data$before, data$after)
McNemar's chi-squared = 0.24038, df = 1, p-value = 0.6239

#### p-value

The p-value is 0.62, above the 5% significance level and therefore the null hypothesis cannot be rejected.

## Is McNemar’s the right test?

Use our interactive tool to help you choose the right statistical test or read our article on how to choose the right statistical test.

Tags: ,

Please note that your first comment on this site will be moderated, after which you will be able to comment freely.

## Free data science in R guide

Sign up to our newsletter and we will send you a series of guides containing tips and tricks on data science and machine learning in R.

No thanks