`mcnemar_test.Rd`

Performs McNemar chi-squared test to compare paired proportions.

Wrappers around the R base function `mcnemar.test()`

, but
provide pairwise comparisons between multiple groups

mcnemar_test(x, y = NULL, correct = TRUE) pairwise_mcnemar_test(data, formula, type = c("mcnemar", "exact"), correct = TRUE, p.adjust.method = "bonferroni")

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

y | a factor object; ignored if |

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

data | a data frame containing the variables in the formula. |

formula | a formula of the form |

type | type of statistical tests used for pairwise comparisons. Allowed
values are one of |

p.adjust.method | method to adjust p values for multiple comparisons. Used when pairwise comparisons are performed. Allowed values include "holm", "hochberg", "hommel", "bonferroni", "BH", "BY", "fdr", "none". If you don't want to adjust the p value (not recommended), use p.adjust.method = "none". |

return a data frame with the following columns:

`n`

: the number of participants.`statistic`

: the value of McNemar's statistic.`df`

the degrees of freedom of the approximate chi-squared distribution of the test statistic.`p`

: p-value.`p.adj`

: the adjusted p-value.`method`

: the used statistical test.`p.signif`

: the significance level of p-values.

The **returned object has an attribute called args**, which is a list
holding the test arguments.

`mcnemar_test`

: performs McNemar's chi-squared test for comparing two paired proportions`pairwise_mcnemar_test`

: performs pairwise McNemar's chi-squared test between multiple groups. Could be used for post-hoc tests following a significant Cochran's Q test.

# Comparing two paired proportions #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% # Data: frequencies of smokers before and after interventions xtab <- as.table( rbind(c(25, 6), c(21,10)) ) dimnames(xtab) <- list( before = c("non.smoker", "smoker"), after = c("non.smoker", "smoker") ) xtab#> after #> before non.smoker smoker #> non.smoker 25 6 #> smoker 21 10# Compare the proportion of smokers mcnemar_test(xtab)#> # A tibble: 1 x 6 #> n statistic df p p.signif method #> * <dbl> <dbl> <dbl> <dbl> <chr> <chr> #> 1 62 7.26 1 0.00705 ** McNemar test# Comparing multiple related proportions # %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% # Generate a demo data mydata <- data.frame( outcome = c(0,1,1,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,0,1,1,0,0,1,0,1,1,0,0,1), treatment = gl(3,1,30,labels=LETTERS[1:3]), participant = gl(10,3,labels=letters[1:10]) ) mydata$outcome <- factor( mydata$outcome, levels = c(1, 0), labels = c("success", "failure") ) # Cross-tabulation xtabs(~outcome + treatment, mydata)#> treatment #> outcome A B C #> success 2 5 10 #> failure 8 5 0# Compare the proportion of success between treatments cochran_qtest(mydata, outcome ~ treatment|participant)#> # A tibble: 1 x 6 #> .y. n statistic df p method #> * <chr> <int> <dbl> <dbl> <dbl> <chr> #> 1 outcome 10 10.9 2 0.00432 Cochran's Q test# pairwise comparisons between groups pairwise_mcnemar_test(mydata, outcome ~ treatment|participant)#> # A tibble: 3 x 6 #> group1 group2 p p.adj p.adj.signif method #> * <chr> <chr> <dbl> <dbl> <chr> <chr> #> 1 A B 0.371 1 ns McNemar test #> 2 A C 0.0133 0.0399 * McNemar test #> 3 B C 0.0736 0.221 ns McNemar test