epi.ccc(x = bonelengths[, 1], y = bonelengths[, 2])
Intermède : corriger la fonction ccc()
TP
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 :
$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 :
- 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 fonctionccc()
. Les deux formules (avec dénominateur \(n\), et avec dénominateur \(n-1\)) devront donc désormais pouvoir être utilisées. Par exemple, avecvariant="n"
, on utilisera la version proposée par Lin (avec dénominateur \(n\)), alors qu’avecvariant="unbiased"
, on utilisera la formule avec des dénominateurs \(n-1\). - (Optionnel) Modifier la documentation de la fonction
ccc()
pour expliquer ce point théorique. - Modifier et relancer le test unitaire ; vérifier que tout concorde désormais.
- Relancer un
check()
, undocument()
et effectuer un commit pour détailler les modifications effectuées.
Références
Lin, Lawrence. 1989. « A Concordance Correlation Coefficient to Evaluate Reproducibility ». Biometrics 45 (1): 255. https://doi.org/10.2307/2532051.