Comment calculer le coefficient de corrélation intraclasse en Python



Un coefficient de corrélation intraclasse (ICC) est utilisé pour déterminer si les éléments ou les sujets peuvent être évalués de manière fiable par différents évaluateurs.

La valeur d’un ICC peut varier de 0 à 1, 0 indiquant une absence de fiabilité parmi les évaluateurs et 1 indiquant une fiabilité parfaite.

Le moyen le plus simple de calculer l’ICC en Python est d’utiliser la fonction pingouin.intraclass_corr() du package statistique pingouin , qui utilise la syntaxe suivante :

pingouin.intraclass_corr(données, cibles, évaluateurs, notes)

où:

  • data : Le nom de la trame de données
  • cibles : Nom de la colonne contenant les « cibles » (les choses étant notées)
  • évaluateurs : Nom de la colonne contenant les évaluateurs
  • notes : Nom de la colonne contenant les notes

Ce didacticiel fournit un exemple d’utilisation pratique de cette fonction.

Étape 1 : Installer Pingouin

Tout d’abord, il faut installer Pingouin :

pip install pingouin

Étape 2 : Créer les données

Supposons que l’on demande à quatre juges différents d’évaluer la qualité de six examens d’entrée à l’université différents. Nous pouvons créer la trame de données suivante pour conserver les notes des juges :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'exam': [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6,
                            1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6],
                   'judge': ['A', 'A', 'A', 'A', 'A', 'A',
                             'B', 'B', 'B', 'B', 'B', 'B',
                             'C', 'C', 'C', 'C', 'C', 'C',
                             'D', 'D', 'D', 'D', 'D', 'D'],
                   'rating': [1, 1, 3, 6, 6, 7, 2, 3, 8, 4, 5, 5,
                              0, 4, 1, 5, 5, 6, 1, 2, 3, 3, 6, 4]})

#view first five rows of DataFrame
df.head()

	exam	judge	rating
0	1	A	1
1	2	A	1
2	3	A	3
3	4	A	6
4	5	A	6

Étape 3 : Calculer le coefficient de corrélation intraclasse

Ensuite, nous utiliserons le code suivant pour calculer le coefficient de corrélation intraclasse :

import pingouin as pg

icc = pg.intraclass_corr(data=df, targets='exam', raters='judge', ratings='rating')

icc.set_index('Type')

        Description	        ICC	  F	    df1	 df2 pval	CI95%
Type							
ICC1	Single raters absolute	0.505252  5.084916  5	 18  0.004430  [0.11, 0.89]
ICC2	Single random raters	0.503054  4.909385  5	 15  0.007352  [0.1, 0.89]
ICC3	Single fixed raters	0.494272  4.909385  5	 15  0.007352  [0.09, 0.88]
ICC1k	Average raters absolute	0.803340  5.084916  5	 18  0.004430  [0.33, 0.97]
ICC2k	Average random raters	0.801947  4.909385  5	 15  0.007352  [0.31, 0.97]
ICC3k	Average fixed raters	0.796309  4.909385  5	 15  0.007352  [0.27, 0.97]

Cette fonction renvoie les résultats suivants :

  • Description : Le type d’ICC calculé
  • ICC : Le coefficient de corrélation intraclasse (ICC)
  • F : La valeur F de l’ICC
  • df1, df2 : les degrés de liberté associés à la valeur F
  • pval : La valeur p associée à la valeur F
  • CI95 % : l’intervalle de confiance à 95 % pour l’ICC

Notez qu’il y a six ICC différents calculés ici. En effet, il existe plusieurs façons de calculer l’ICC en fonction des hypothèses suivantes :

  • Modèle : effets aléatoires unidirectionnels, effets aléatoires bidirectionnels ou effets mixtes bidirectionnels
  • Type de relation : cohérence ou accord absolu
  • Unité : évaluateur unique ou moyenne des évaluateurs

Pour une explication détaillée de ces hypothèses, veuillez vous référer à cet article .

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *