Intermède : corriger la fonction ccc()

TP

Auteur·rice
Affiliation

Frédéric Santos

CNRS, Univ. Bordeaux, MCC – UMR 5199 PACEA

Comme nous l’avons vu dans la section précédente, “notre” fonction ccc() ne fournit pas la valeur attendue du coefficient de concordance de Lin. En effet, en utilisant d’un côté le package fiable {epiR} sur notre jeu de données d’exemple, nous obtenons :

epi.ccc(x = bonelengths[, 1], y = bonelengths[, 2])
$rho.c
        est     lower     upper
1 0.9479419 0.8942121 0.9747461

Cela diffère de la valeur obtenue avec notre propre fonction. Pourquoi ?

1 Un point théorique

Exercice. Ou bien en consultant plus attentivement la page Wikipedia, ou bien en étudiant l’article originel de Lin (1989), essayer d’identifier l’erreur “théorique” dans notre implémentation actuelle du coefficient de concordance.

2 Corriger l’erreur

Exercice. Une fois l’erreur identifiée :

  1. Modifier le code R pour corriger la formule. Plus exactement, laisser le choix à l’utilisateur final de la formule à utiliser, en donnant un nouvel argument variant à la fonction ccc(). Les deux formules (avec dénominateur \(n\), et avec dénominateur \(n-1\)) devront donc désormais pouvoir être utilisées. Par exemple, avec variant="n", on utilisera la version proposée par Lin (avec dénominateur \(n\)), alors qu’avec variant="unbiased", on utilisera la formule avec des dénominateurs \(n-1\).
  2. (Optionnel) Modifier la documentation de la fonction ccc() pour expliquer ce point théorique.
  3. Modifier et relancer le test unitaire ; vérifier que tout concorde désormais.
  4. Relancer un check(), un document() et effectuer un commit pour détailler les modifications effectuées.
Retour au sommet

Références

Lin, Lawrence. 1989. « A Concordance Correlation Coefficient to Evaluate Reproducibility ». Biometrics 45 (1): 255. https://doi.org/10.2307/2532051.