Test Q de Cochran en R : comparer trois proportions appariées ou plus
Tester si un résultat oui/non diffère entre trois conditions liées ou plus — McNemar étendu aux mesures répétées, avec post-hoc par paires
Apprenez à exécuter le test Q de Cochran en R — l’extension du test de McNemar à trois proportions appariées ou plus, pour un résultat dichotomique mesuré sur les mêmes sujets dans plusieurs conditions ou à plusieurs moments. Exécutez-le avec rstatix cochran_qtest() et poursuivez avec des comparaisons de McNemar par paires.
Date de publication
23 juin 2026
Modifié
7 juillet 2026
AstucePoints clés
Le test Q de Cochran étend le test de McNemar à trois proportions appariées ou plus — un résultat oui/non (succès/échec) mesuré sur les mêmes sujets dans plusieurs conditions ou à plusieurs moments.
Exécutez-le avec rstatix::cochran_qtest() sur des données au format long : outcome ~ condition | id.
Un résultat significatif signifie que la proportion de « succès » diffère entre les conditions.
Poursuivez avec des tests de McNemar par paires (pairwise_mcnemar_test()) pour voir quelles conditions diffèrent.
Avec exactement deux conditions, le Q de Cochran égale le chi-deux de McNemar (sans correction de continuité).
Introduction
Le test Q de Cochran est l’équivalent catégoriel de l’ANOVA à mesures répétées pour un résultat binaire : il compare une proportion oui/non (succès/échec) entre trois groupes liés ou plus — les mêmes sujets mesurés dans plusieurs conditions, traitements ou moments. Il généralise le test de McNemar (qui en gère deux) à plusieurs.
Le scénario ici : 73 sujets tentent chacun trois tâches, chacune notée succès/échec — les taux de succès diffèrent-ils entre les tâches ? Cette leçon l’exécute avec rstatix sur les données taskachievment.
Note
Hypothèses du Q de Cochran.H₀ : la proportion de succès est la même dans toutes les conditions. Hₐ : la proportion d’au moins une condition diffère.
Les données : trois tâches, succès/échec
Nous utilisons le jeu de données taskachievment de datarium — 73 participants, chacun avec un résultat succès (1) / échec (0) sur Task1, Task2, Task3. Le Q de Cochran a besoin du format long (une ligne par participant × tâche), construit avec R de base :
# A tibble: 3 × 6
group1 group2 p p.adj p.adj.signif method
* <chr> <chr> <dbl> <dbl> <chr> <chr>
1 Task1 Task2 0.000874 0.00262 ** McNemar test
2 Task1 Task3 0.000000944 0.00000283 **** McNemar test
3 Task2 Task3 0.000874 0.00262 ** McNemar test
Les comparaisons par paires montrent quelles tâches précises ont des taux de succès différents.
Représenter graphiquement
library(rstatix)library(ggpubr)data("taskachievment", package ="datarium")n <-nrow(taskachievment)long <-data.frame(id =factor(rep(taskachievment$participant, 3)),task =factor(rep(c("Task1", "Task2", "Task3"), each = n)),outcome =c(taskachievment$Task1, taskachievment$Task2, taskachievment$Task3))prop.df <-aggregate(outcome ~ task, data = long, FUN = mean)stat.test <-cochran_qtest(long, outcome ~ task | id)# Post-hoc pairwise McNemar comparisons, placed above the proportion barspwc <-pairwise_mcnemar_test(long, outcome ~ task | id)pwc$y.position <-c(0.78, 0.90, 0.84)ggbarplot(prop.df, x ="task", y ="outcome", fill ="task", palette ="jco",ylab ="Proportion of success", xlab ="Task") +stat_pvalue_manual(pwc, label ="p.adj.signif", tip.length =0.01) +labs(subtitle =get_test_label(stat.test, detailed =TRUE),caption =get_pwc_label(pwc))
Rapport
Un test Q de Cochran a montré que la proportion de succès différait significativement entre les trois tâches, Q(2) = 39, p < 0.001. Des tests de McNemar par paires (corrigés par Bonferroni) ont identifié quelles tâches différaient.
NoteLes mathématiques (optionnel)
Le Q de Cochran compare les totaux de succès par colonne (condition) à ce que donneraient des proportions égales, en ajustant pour le taux de succès global de chaque sujet : \(Q = \dfrac{k(k-1)\sum_j (C_j - \bar{C})^2}{k\sum_i R_i - \sum_i
R_i^2}\), où \(C_j\) est le nombre de succès dans la condition \(j\), \(R_i\) est le total de succès du sujet \(i\), et \(k\) est le nombre de conditions. \(Q\) suit une distribution du chi-deux à \(k - 1\) degrés de liberté. Avec \(k = 2\), il se réduit à la statistique (non corrigée) de McNemar.
Essayez en direct
Exécutez le Q de Cochran sur les données des tâches, puis modifiez l’étape post-hoc. Le bac à sable démarre au premier Run.
🟢 Avec un agent IA
Demandez à Prova : « J’ai un résultat oui/non mesuré sur les mêmes sujets dans plusieurs conditions — teste si le taux de succès diffère avec le Q de Cochran » — elle répond avec du code rstatix que vous pouvez exécuter sur vos propres données. The runtime is the judge.Demander à Prova →
Problèmes courants
Vos données sont au format large.cochran_qtest() a besoin du format long — une ligne par sujet × condition, avec un id, le facteur de condition et le résultat 0/1. Restructurez d’abord les colonnes larges.
Votre résultat n’est pas binaire. Le Q de Cochran s’applique à un résultat dichotomique (succès/échec, oui/non). Pour une mesure répétée continue, utilisez l’ANOVA à mesures répétées ou Friedman.
Vous n’avez que deux conditions. Utilisez alors directement le test de McNemar — le Q de Cochran donne la même réponse, mais McNemar est le test à deux groupes nommé.
Questions fréquentes
NoteÀ quoi sert le test Q de Cochran ?
Le Q de Cochran teste si un résultat dichotomique (oui/non) a la même proportion de « succès » entre trois groupes liés ou plus — les mêmes sujets mesurés dans plusieurs conditions ou à plusieurs moments. C’est l’extension du test de McNemar (deux groupes) à plusieurs, et l’analogue binaire de l’ANOVA à mesures répétées.
NoteQuelle est la différence entre le Q de Cochran et le test de McNemar ?
Le test de McNemar compare deux proportions appariées ; le Q de Cochran en compare trois ou plus. Avec exactement deux conditions, ils donnent la même statistique (Q égale le chi-deux non corrigé de McNemar). Utilisez McNemar pour deux, le Q de Cochran pour davantage.
NoteQuel test post-hoc suit le Q de Cochran ?
Les tests de McNemar par paires (pairwise_mcnemar_test()), avec une correction pour comparaisons multiples telle que Bonferroni — chaque paire de conditions est un tableau 2×2 apparié, donc McNemar est la comparaison par paires naturelle.
Testez vos connaissances
ImportantPratique
Exécutez-le. Dans la cellule live, exécutez le Q de Cochran sur les trois tâches. Remplissez le blanc. Les taux de succès diffèrent-ils ?
Conceptuel. Le Q de Cochran est significatif. Quel suivi vous indique quelles conditions diffèrent, et pourquoi ce test précis ?
NoteIndice
Remplissez le blanc avec task. Pour la question 2, rappelez-vous le test catégoriel apparié à deux groupes.
NoteSolution
long |>cochran_qtest(outcome ~ task | id) #> Q(2) = 39, p < 0.0001 — rates differ.
Pour la question 2 : exécutez des tests de McNemar par paires (pairwise_mcnemar_test(), corrigés par Bonferroni). Chaque paire de tâches est constituée de deux proportions appariées sur les mêmes sujets, donc McNemar est la comparaison par paires correcte — un chi-deux ordinaire ignorerait l’appariement.
AstuceQuel test, quand ?
Trois proportions appariées ou plus → test Q de Cochran (cette leçon).
Vous savez maintenant exécuter le test Q de Cochran en R : restructurez les mesures binaires répétées au format long, exécutez cochran_qtest(outcome ~ condition | id), et poursuivez un résultat significatif avec des tests de McNemar par paires. C’est le test pour comparer un résultat oui/non entre trois conditions liées ou plus — McNemar généralisé aux mesures répétées.
Prouvez que vous savez le faire. Maîtrisez toute la série Analyse catégorielle en R — suivez votre parcours, construisez des projets et obtenez un certificat.
Chaque résultat de cette page a été produit par le code montré, exécuté au moment du build contre un environnement R figé — modifiez n’importe quel bloc et faites Run pour le reproduire vous-même.
@online{2026,
author = {},
title = {Test Q de Cochran en R : comparer trois proportions appariées
ou plus},
date = {2026-06-23},
url = {https://www.datanovia.com/learn/biostatistics/categorical/cochran-q-test-in-r},
langid = {fr}
}