Graphique d’accord inter-évaluateurs en R : visualiser l’accord avec le graphique de Bangdiwala

Voyez où deux évaluateurs sont d’accord, partiellement d’accord et divergent — le graphique d’accord de Bangdiwala et sa statistique B, avec vcd

Apprenez à construire un graphique d’accord inter-évaluateurs en R — la représentation visuelle de Bangdiwala d’une table de contingence carrée qui montre l’accord exact, l’accord partiel (quasi-correct) et le biais des évaluateurs en un coup d’œil. Utilisez agreementplot() de vcd pour le tracer et lire la statistique B de Bangdiwala, un résumé de 0 à 1 de la force de l’accord.

Date de publication

23 juin 2026

Modifié

7 juillet 2026

AstucePoints clés
  • Le graphique d’accord (Bangdiwala) visualise la façon dont deux évaluateurs s’accordent sur une classification ordinale — un complément graphique au kappa pondéré.
  • Construisez-le avec vcd::agreementplot() à partir de la table de contingence carrée des évaluateurs ; les carrés noirs représentent l’accord exact, les bandes grises l’accord partiel (quasi-correct), imbriqués dans des rectangles par catégorie.
  • Il renvoie la statistique B de Bangdiwala — un résumé de 0 à 1 de la force de l’accord (1 = parfait).
  • Le biais des évaluateurs se manifeste par les carrés sombres qui s’écartent de la diagonale à 45° — un évaluateur attribuant systématiquement des scores plus élevés que l’autre.
  • Utilisez-le pour des catégories ordinales (l’image dépend de l’ordre des catégories).
Obtenez le livre — Inter-Rater Reliability Essentials (PDF)

Introduction

Un unique chiffre d’accord (kappa, ICC) masque les évaluateurs s’accordent et comment ils sont en désaccord. Le graphique d’accord, proposé par Bangdiwala, dessine l’accord : il transforme une table de contingence carrée à deux évaluateurs en rectangles imbriqués où vous pouvez voir l’accord exact, l’accord quasi-correct (partiel), et tout biais systématique entre les évaluateurs en un coup d’œil.

Cette leçon construit le graphique avec le package vcd et lit sa statistique B.

Les données : deux médecins, quatre niveaux d’anxiété ordonnés

Nous réutilisons la table d’anxiété ordinale — deux médecins classant 50 personnes en quatre niveaux ordonnés (les mêmes données que la leçon sur le kappa pondéré) :

anxiety <- as.table(rbind(
  c(11, 3, 1, 0), c(1, 9, 0, 1),
  c(0, 1, 10, 0), c(1, 2, 0, 10)
))
levels4 <- c("Normal", "Moderate", "High", "Very high")
dimnames(anxiety) <- list(Doctor1 = levels4, Doctor2 = levels4)
anxiety
           Doctor2
Doctor1     Normal Moderate High Very high
  Normal        11        3    1         0
  Moderate       1        9    0         1
  High           0        1   10         0
  Very high      1        2    0        10

Construire le graphique d’accord

agreementplot() dessine le graphique et renvoie (de façon invisible) les statistiques de Bangdiwala :

library(vcd)

anxiety <- as.table(rbind(
  c(11, 3, 1, 0), c(1, 9, 0, 1),
  c(0, 1, 10, 0), c(1, 2, 0, 10)
))
levels4 <- c("Normal", "Moderate", "High", "Very high")
dimnames(anxiety) <- list(Doctor1 = levels4, Doctor2 = levels4)

agreementplot(anxiety, main = "Doctor 1 vs Doctor 2")

A Bangdiwala agreement chart for the two doctors: one nested set of rectangles per anxiety level, with dark inner squares (exact agreement) and grey surrounding bands (partial agreement), the dark squares lying close to the rising diagonal.

Comment le lire. Chaque catégorie est un grand rectangle (dimensionné par les totaux marginaux). À l’intérieur :

  • le carré noir = accord exact (la cellule diagonale) ;
  • la bande grise = accord partiel (désaccords d’un pas, quasi-corrects) ;
  • plus les carrés noirs remplissent leurs rectangles, plus l’accord est fort ;
  • les carrés épousant la diagonale à 45° signifient aucun biais systématique — aucun des deux médecins n’est systématiquement plus sévère.

La statistique B de Bangdiwala

agreementplot() renvoie la statistique B — le rapport entre l’aire sombre (d’accord) et l’aire du rectangle, de 0 à 1 :

library(vcd)

anxiety <- as.table(rbind(
  c(11, 3, 1, 0), c(1, 9, 0, 1),
  c(0, 1, 10, 0), c(1, 2, 0, 10)
))
levels4 <- c("Normal", "Moderate", "High", "Very high")
dimnames(anxiety) <- list(Doctor1 = levels4, Doctor2 = levels4)

b <- agreementplot(anxiety)

unlist(b)
         Bangdiwala Bangdiwala_Weighted            weights1            weights2 
          0.6442308           0.7952279           1.0000000           0.8888889 

Le B non pondéré vaut 0.64 (accord exact uniquement) et le B pondéré vaut 0.80 (en créditant les quasi-corrects) — un accord substantiel, cohérent avec le kappa pondéré de 0.75 sur les mêmes données.

Astuce

Pondérations de l’accord partiel. Par défaut, le graphique crédite les désaccords d’un pas comme accord partiel (les bandes grises). Pour ne montrer que l’accord exact — sans crédit partiel — passez weights = 1 : agreementplot(anxiety, weights = 1).

Rapport

Un graphique d’accord (Bangdiwala) a été utilisé pour visualiser l’accord entre deux médecins classant 50 participants en quatre niveaux d’anxiété ordonnés. Le graphique a montré un accord substantiel avec les carrés sombres proches de la diagonale (aucun biais systématique), avec une statistique B de Bangdiwala de 0.64 (non pondérée) et 0.80 (pondérée, en créditant les quasi-corrects).

La statistique B de Bangdiwala est le rapport de deux aires sommées sur les \(k\) catégories : \(B = \dfrac{\sum_i n_{ii}^2}{\sum_i n_{i+}\, n_{+i}}\) — les effectifs diagonaux (d’accord exact) au carré sur le produit des marges en ligne et en colonne (les aires des rectangles). Elle vaut 1 uniquement lorsque chaque cellule hors diagonale est nulle (accord parfait, les carrés sombres remplissent leurs rectangles). La version pondérée ajoute une contribution d’accord partiel issue des cellules situées à un pas de la diagonale, reflétant le crédit accordé aux quasi-corrects par le kappa pondéré.

Essayez en direct

Dessinez le graphique d’accord et basculez les pondérations de l’accord partiel. Le bac à sable démarre au premier Run (il charge vcd, alors laissez-lui un instant).

🟢 Avec un agent IA

Demandez à Prova « dessine un graphique d’accord pour les notes ordinales de mes deux évaluateurs, et dis-moi s’il y a un biais systématique entre eux » — elle répond avec du code vcd que vous pouvez exécuter sur vos propres données. The runtime is the judge. Demandez à Prova →

Problèmes courants

Vos catégories ne sont pas ordinales. L’apparence du graphique dépend de l’ordre des catégories (quels désaccords sont « proches »). Il n’a de sens que pour des variables ordinales ; pour des catégories nominales, rapportez plutôt le kappa de Cohen.

Les carrés sombres s’écartent de la diagonale. Il s’agit d’un biais des évaluateurs — un évaluateur attribue systématiquement des scores plus élevés que l’autre. C’est une fonctionnalité, pas un bug : le graphique vous montre un désaccord réel et directionnel qu’un kappa unique masquerait.

Vous avez passé des notes brutes, pas une table. agreementplot() a besoin de la table de contingence carrée (table() des deux évaluateurs), pas du data frame brut.

Questions fréquentes

C’est une représentation graphique (le graphique d’accord de Bangdiwala) d’une table de contingence carrée à deux évaluateurs. Chaque catégorie est un rectangle contenant un carré noir pour l’accord exact et des bandes grises pour l’accord partiel (quasi-correct). Il montre deux évaluateurs s’accordent et si l’un est systématiquement biaisé — une information qu’un unique chiffre d’accord masque.

La statistique B résume le graphique d’accord en un seul chiffre de 0 à 1 — le rapport entre l’aire d’accord (carrés sombres) et l’aire totale des rectangles. 1 signifie un accord parfait ; des valeurs plus faibles signifient que les carrés sombres remplissent moins leurs rectangles. Une version pondérée crédite les désaccords quasi-corrects, comme le kappa pondéré.

Regardez où se situent les carrés sombres par rapport à la diagonale à 45°. S’ils s’écartent systématiquement d’un côté, un évaluateur classe systématiquement les sujets dans des catégories plus élevées (ou plus basses) que l’autre — un biais systématique. Des carrés centrés sur la diagonale signifient l’absence d’un tel biais.

Testez vos connaissances

  1. Exécutez-le. Dans la cellule en direct, dessinez le graphique d’accord avec et sans pondérations de l’accord partiel (weights = 1). Remplissez le blanc. Qu’est-ce qui change entre les deux graphiques ?
  2. Conceptuel. Les carrés sombres de votre graphique se situent tous légèrement en dessous de la diagonale. Que cela vous dit-il sur les deux évaluateurs ?

Remplissez le blanc avec 1 pour un accord exact uniquement. Comparez les bandes grises entre les deux graphiques. Pour la question 2, rappelez-vous que l’écart hors diagonale signale un biais systématique.

agreementplot(anxiety)              # default: grey bands credit near-misses
agreementplot(anxiety, weights = 1) # only the black exact-agreement squares

Avec weights = 1, les bandes grises d’accord partiel disparaissent, donc le graphique (et la statistique B) reflètent l’accord exact uniquement — une vue plus stricte. Pour la question 2 : des carrés sombres systématiquement en dessous de la diagonale signifient qu’un évaluateur attribue systématiquement des catégories plus élevées que l’autre — un biais directionnel à étudier, et non un simple bruit aléatoire.

AstuceQuelle mesure d’accord, et quand ?

Conclusion

Vous savez désormais construire un graphique d’accord inter-évaluateurs en R avec vcd::agreementplot() : il transforme une table ordinale à deux évaluateurs en une image de l’accord exact (carrés noirs), de l’accord partiel (bandes grises) et du biais des évaluateurs (écart par rapport à la diagonale), et renvoie la statistique B de Bangdiwala comme résumé de 0 à 1. Associez-le au kappa pondéré — le graphique montre et comment les évaluateurs sont en désaccord, le kappa donne le chiffre unique.

Leçons connexes

Vous préférez un livre ? Inter-Rater Reliability Essentials est disponible en PDF téléchargeable — toutes les leçons de cette série, hors ligne et à vous.

Obtenir le livre (PDF) →Les leçons restent gratuites en ligne.
Cette page vous a-t-elle été utile ?

Prouvez que vous savez le faire. Maîtrisez toute la série Fidélité inter-juges en R — suivez votre parcours, construisez des projets et obtenez un certificat.

Commencer gratuitement →

Passez à Pro — Prova illimité sur vos propres données et un certificat vérifiable qui atteste la compétence.

dès 15 $/mois facturé annuellement

Passer à Pro →

✓ Vous êtes Pro — continuez. The runtime is the judge.

Recevez les nouvelles leçons R & Python par e-mail

Pratique, reproductible, sans spam. Désinscription à tout moment.

Double opt-in. Nous ne partageons jamais votre e-mail.

Partager cette pageXLinkedInRedditHN
Note

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.

Réutilisation

Citation

BibTeX
@online{2026,
  author = {},
  title = {Graphique d’accord inter-évaluateurs en R : visualiser
    l’accord avec le graphique de Bangdiwala},
  date = {2026-06-23},
  url = {https://www.datanovia.com/learn/biostatistics/inter-rater-reliability/agreement-chart-in-r},
  langid = {fr}
}
Veuillez citer ce travail comme suit :
“Graphique d’accord inter-évaluateurs en R : visualiser l’accord avec le graphique de Bangdiwala.” 2026. June 23. https://www.datanovia.com/learn/biostatistics/inter-rater-reliability/agreement-chart-in-r.