{"id":7519,"date":"2026-09-16T20:50:23","date_gmt":"2026-09-16T20:50:23","guid":{"rendered":"http:\/\/french.arabpsychology.com\/statistics\/comment-calculer-coefficient-correlation-intraclasse-python\/"},"modified":"2026-09-16T20:50:23","modified_gmt":"2026-09-16T20:50:23","slug":"comment-calculer-coefficient-correlation-intraclasse-python","status":"publish","type":"psych_stat","link":"https:\/\/french.arabpsychology.com\/?psych_stat=comment-calculer-coefficient-correlation-intraclasse-python","title":{"rendered":"Comment calculer le coefficient de corr\u00e9lation intraclasse en Python"},"content":{"rendered":"<p>Dans le domaine des sciences comportementales, de la psychiatrie clinique et de la psychom\u00e9trie appliqu\u00e9e, la reproductibilit\u00e9 des mesures constitue la pierre angulaire de toute d\u00e9marche scientifique rigoureuse. Qu&rsquo;il s&rsquo;agisse de valider une nouvelle \u00e9chelle de diagnostic psychiatrique, d&rsquo;\u00e9valuer la concordance entre cliniciens lors du codage d&rsquo;entretiens semi-structur\u00e9s, ou de calibrer des outils d&rsquo;observation d\u00e9veloppementale, la simple intuition clinique ne saurait se substituer \u00e0 une quantification probabiliste de la fid\u00e9lit\u00e9. La variabilit\u00e9 introduite par la subjectivit\u00e9 des \u00e9valuateurs repr\u00e9sente une source majeure d&rsquo;erreur de mesure, susceptible de diluer la puissance statistique des \u00e9tudes, d&rsquo;introduire des biais d&rsquo;att\u00e9nuation dans l&rsquo;estimation des tailles d&rsquo;effet et de compromettre la validit\u00e9 des d\u00e9cisions th\u00e9rapeutiques.<\/p>\n<p>Pour mesurer cette fid\u00e9lit\u00e9 avec pr\u00e9cision, le <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/fr.wikipedia.org\/wiki\/Coefficient_de_corr%C3%A9lation_intraclasse\">coefficient de corr\u00e9lation intraclasse<\/a> (CCI ou <em>ICC<\/em> en anglais) s&rsquo;impose comme l&rsquo;indice param\u00e9trique le plus robuste et le plus polyvalent. Contrairement aux approches bivari\u00e9es rudimentaires qui se cantonnent \u00e0 \u00e9valuer la covariation lin\u00e9aire entre deux s\u00e9ries de scores, le CCI d\u00e9rive des mod\u00e8les d&rsquo;analyse de variance \u00e0 effets al\u00e9atoires ou mixtes. Il permet d&rsquo;isoler math\u00e9matiquement la variance r\u00e9elle propre aux sujets \u00e9valu\u00e9s de la variance parasite attribuable aux \u00e9valuateurs ou aux fluctuations al\u00e9atoires du protocole exp\u00e9rimental.<\/p>\n<p>L&rsquo;essor de l&rsquo;\u00e9cosyst\u00e8me open source en science des donn\u00e9es offre aujourd&rsquo;hui aux psychom\u00e9triciens et aux chercheurs en neurosciences un environnement informatique puissant et reproductible. Le langage Python, historiquement r\u00e9put\u00e9 pour ses biblioth\u00e8ques g\u00e9n\u00e9rales d&rsquo;apprentissage automatique, s&rsquo;est enrichi d&rsquo;outils hautement sp\u00e9cialis\u00e9s tels que <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/pingouin-stats.org\/\">Pingouin<\/a> et <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/www.statsmodels.org\/\">Statsmodels<\/a>. Ce guide m\u00e9thodologique et technique propose une exploration exhaustive de l&rsquo;estimation du coefficient de corr\u00e9lation intraclasse sous Python. Il d\u00e9taille pas \u00e0 pas les fondements th\u00e9oriques des \u00e9quations de variance, les arbres d\u00e9cisionnels pr\u00e9sidant au choix du mod\u00e8le appropri\u00e9, la manipulation de structures tabulaires complexes avec Pandas, ainsi que la restitution des r\u00e9sultats conform\u00e9ment aux exigences \u00e9ditoriales les plus strictes de l&rsquo;American Psychological Association (APA).<\/p>\n<h2>1. Fondements psychom\u00e9triques du coefficient de corr\u00e9lation intraclasse<\/h2>\n<h3>1.1 D\u00e9finition et pertinence de la fid\u00e9lit\u00e9 inter-juges en psychologie<\/h3>\n<p>La fid\u00e9lit\u00e9 inter-juges quantifie le degr\u00e9 auquel deux ou plusieurs observateurs ind\u00e9pendants attribuent des scores identiques ou coh\u00e9rents \u00e0 un m\u00eame ensemble de cibles comportementales, cognitives ou physiologiques. Dans la pratique psychologique, cette notion rev\u00eat une importance capitale. Lorsqu&rsquo;un clinicien \u00e9value l&rsquo;intensit\u00e9 de la symptomatologie d\u00e9pressive \u00e0 l&rsquo;aide d&rsquo;une \u00e9chelle telle que la Hamilton Depression Rating Scale (HAM-D), la cotation obtenue ne doit pas d\u00e9pendre de la bienveillance intrins\u00e8que, de la s\u00e9v\u00e9rit\u00e9 ou de la fatigue propre \u00e0 l&rsquo;examinateur, mais refl\u00e9ter fid\u00e8lement l&rsquo;\u00e9tat clinique du patient.<\/p>\n<p>Sur le plan conceptuel, il est fondamental d&rsquo;\u00e9tablir une distinction nette entre l&rsquo;accord absolu et la coh\u00e9rence relative. La coh\u00e9rence relative stipule que les \u00e9valuateurs maintiennent le m\u00eame rang ordinal parmi les cibles, autorisant un \u00e9cart additif constant entre leurs notations. Par exemple, si le juge A attribue syst\u00e9matiquement un point de plus que le juge B \u00e0 l&rsquo;ensemble des patients, la coh\u00e9rence relative est parfaite. En revanche, l&rsquo;accord absolu exige une identit\u00e9 num\u00e9rique stricte des scores attribu\u00e9s. Dans les contextes o\u00f9 des seuils diagnostiques cat\u00e9goriels d\u00e9terminent une inclusion th\u00e9rapeutique ou une hospitalisation, l&rsquo;accord absolu repr\u00e9sente l&rsquo;unique crit\u00e8re m\u00e9thodologique admissible, car un biais de cotation unilat\u00e9ral modifie le statut clinique attribu\u00e9 aux individus.<\/p>\n<p>L&rsquo;utilisation de coefficients bivari\u00e9s traditionnels, tels que la corr\u00e9lation lin\u00e9aire de Pearson ou le coefficient de rang de Spearman, s&rsquo;av\u00e8re inappropri\u00e9e et trompeuse pour quantifier la fid\u00e9lit\u00e9 inter-juges. Le coefficient de Pearson est insensible aux diff\u00e9rences d&rsquo;\u00e9chelle et aux d\u00e9calages syst\u00e9matiques entre \u00e9valuateurs. Deux cliniciens dont les scores pr\u00e9senteraient une relation parfaitement lin\u00e9aire (par exemple, Score Juge 2 = Score Juge 1 + 5) obtiendraient un coefficient de corr\u00e9lation de Pearson \u00e9gal \u00e0 1.00, occultant compl\u00e8tement une absence totale d&rsquo;accord absolu. De surcro\u00eet, ces indices bivari\u00e9s ne peuvent comparer que deux juges \u00e0 la fois, interdisant le traitement simultan\u00e9 de panels d&rsquo;\u00e9valuateurs multiples sans recourir \u00e0 des moyennes de corr\u00e9lations math\u00e9matiquement contestables.<\/p>\n<p>Le coefficient de corr\u00e9lation intraclasse surmonte ces impasses en conceptualisant le probl\u00e8me d&rsquo;\u00e9valuation sous l&rsquo;angle de la d\u00e9composition de la variance. En psychom\u00e9trie clinique, o\u00f9 les grilles d&rsquo;observation portent sur des ph\u00e9nom\u00e8nes subtils tels que les interactions parent-nourrisson, la s\u00e9v\u00e9rit\u00e9 des troubles du spectre de l&rsquo;autisme ou le d\u00e9codage d&rsquo;expressions faciales micro-\u00e9motionnelles, le CCI isole la variance d&rsquo;int\u00e9r\u00eat partag\u00e9e par les sujets de la variance r\u00e9siduelle g\u00e9n\u00e9r\u00e9e par les erreurs de mesure. Il fournit un indice standardis\u00e9 dont l&rsquo;interpr\u00e9tation renvoie directement \u00e0 la proportion de la variance totale qui peut \u00eatre attribu\u00e9e en toute confiance au trait psychologique latent mesur\u00e9.<\/p>\n<h3>1.2 Origines th\u00e9oriques et cadre de la th\u00e9orie classique des tests<\/h3>\n<p>Le cadre conceptuel du CCI s&rsquo;enracine dans les postulats formels de la <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/fr.wikipedia.org\/wiki\/Th%C3%A9orie_classique_des_tests\">th\u00e9orie classique des tests<\/a> (TCT), formul\u00e9e initialement par Charles Spearman et consolid\u00e9e ult\u00e9rieurement par Gulliksen ainsi que Lord et Novick. Selon l&rsquo;axiome fondamental de ce mod\u00e8le additif, tout score observ\u00e9 pour un sujet donn\u00e9 lors d&rsquo;une session de mesure se d\u00e9compose en une combinaison lin\u00e9aire de deux entit\u00e9s inobservables mais th\u00e9oriquement distinctes : le score vrai du sujet et une composante d&rsquo;erreur al\u00e9atoire de mesure.<\/p>\n<p>Math\u00e9matiquement, pour un sujet <em>i<\/em> \u00e9valu\u00e9 par un juge <em>j<\/em>, la relation s&rsquo;\u00e9nonce selon l&rsquo;\u00e9quation fondamentale :<\/p>\n<p><em>X<sub>ij<\/sub> = T<sub>i<\/sub> + E<sub>ij<\/sub><\/em><\/p>\n<p>Dans cette formulation, <em>T<sub>i<\/sub><\/em> repr\u00e9sente l&rsquo;esp\u00e9rance math\u00e9matique du score de l&rsquo;individu sur une infinit\u00e9 d&rsquo;administrations ind\u00e9pendantes (le score vrai), tandis que <em>E<sub>ij<\/sub><\/em> incarne l&rsquo;erreur al\u00e9atoire r\u00e9siduelle, suppos\u00e9e d&rsquo;esp\u00e9rance nulle, de variance constante et ind\u00e9pendante du score vrai ainsi que des erreurs associ\u00e9es aux autres observations. \u00c0 partir de cette distribution de variables al\u00e9atoires, la variance totale des scores observ\u00e9s peut se d\u00e9composer en la somme de la variance des scores vrais et de la variance de l&rsquo;erreur :<\/p>\n<p><em>&sigma;<sup>2<\/sup><sub>X<\/sub> = &sigma;<sup>2<\/sup><sub>T<\/sub> + &sigma;<sup>2<\/sup><sub>E<\/sub><\/em><\/p>\n<p>La fid\u00e9lit\u00e9 d&rsquo;un instrument ou d&rsquo;un panel de cotateurs est rigoureusement d\u00e9finie comme le ratio de la variance du score vrai sur la variance totale observ\u00e9e. Le coefficient de corr\u00e9lation intraclasse repr\u00e9sente la traduction empirique directe de ce ratio \u00e0 travers l&rsquo;appareil statistique de l&rsquo;<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/fr.wikipedia.org\/wiki\/Analyse_de_la_variance\">analyse de variance<\/a> (ANOVA). Les travaux pionniers de Ronald Fisher au d\u00e9but du vingti\u00e8me si\u00e8cle sur les donn\u00e9es agricoles et g\u00e9n\u00e9tiques ont jet\u00e9 les fondations du calcul de corr\u00e9lations au sein de classes homog\u00e8nes d&rsquo;individus partageant un m\u00eame patrimoine g\u00e9n\u00e9tique ou environnemental.<\/p>\n<p>Au fil des d\u00e9cennies, cette m\u00e9thodologie a \u00e9t\u00e9 transpos\u00e9e aux sciences humaines. L&rsquo;apport d\u00e9cisif est venu des travaux fondateurs de Joseph Fleiss et Patrick Shrout \u00e0 la fin des ann\u00e9es 1970, qui ont formalis\u00e9 la distinction entre mod\u00e8les al\u00e9atoires et mixtes. Ils ont ainsi offert aux psychologues un outil capable de mod\u00e9liser explicitement l&rsquo;erreur caus\u00e9e par l&rsquo;\u00e9chantillonnage des \u00e9valuateurs, adaptant la th\u00e9orie classique des tests aux r\u00e9alit\u00e9s des protocoles exp\u00e9rimentaux contemporains.<\/p>\n<h3>1.3 \u00c9ventail des valeurs du CCI et seuils th\u00e9oriques<\/h3>\n<p>Le coefficient de corr\u00e9lation intraclasse se d\u00e9ploie th\u00e9oriquement le long d&rsquo;un continuum standardis\u00e9 born\u00e9 entre 0 et 1 lorsqu&rsquo;il est interpr\u00e9t\u00e9 sous le prisme des composantes de la variance. Une valeur de 0 refl\u00e8te une absence totale de fid\u00e9lit\u00e9 de mesure : la totalit\u00e9 de la variabilit\u00e9 constat\u00e9e dans les cotations empiriques d\u00e9coule de l&rsquo;erreur al\u00e9atoire ou des d\u00e9saccords structurels entre \u00e9valuateurs, rendant les scores observ\u00e9s d\u00e9nu\u00e9s de toute validit\u00e9 informative. Inversement, une valeur de 1.00 t\u00e9moigne d&rsquo;un accord parfait : l&rsquo;erreur de mesure est rigoureusement nulle, ce qui indique que l&rsquo;int\u00e9gralit\u00e9 de la dispersion observ\u00e9e s&rsquo;explique par les \u00e9carts r\u00e9els existant entre les sujets.<\/p>\n<p>N\u00e9anmoins, sur le plan computationnel, l&rsquo;estimation ponctuelle du CCI est obtenue non pas \u00e0 partir des param\u00e8tres de population non observables, mais \u00e0 partir des carr\u00e9s moyens issus d&rsquo;une table d&rsquo;analyse de variance calcul\u00e9e sur un \u00e9chantillon empirique. Dans cette perspective d&rsquo;estimation param\u00e9trique, le calcul repose sur des soustractions de carr\u00e9s moyens d&rsquo;erreur par rapport aux carr\u00e9s moyens inter-sujets. Il en r\u00e9sulte que lorsque la variance observ\u00e9e entre les sujets est inf\u00e9rieure \u00e0 la variance r\u00e9siduelle au sein des sujets, le num\u00e9rateur de l&rsquo;\u00e9quation devient arithm\u00e9tiquement n\u00e9gatif.<\/p>\n<p>Une valeur n\u00e9gative du CCI n&rsquo;a aucun sens conceptuel en psychom\u00e9trie puisqu&rsquo;une variance vraie ne peut pas \u00eatre inf\u00e9rieure \u00e0 z\u00e9ro. Sur le plan statistique et m\u00e9thodologique, l&rsquo;apparition d&rsquo;un CCI n\u00e9gatif traduit le plus souvent une violation s\u00e9v\u00e8re des postulats sous-jacents du mod\u00e8le d&rsquo;\u00e9valuation. Ce ph\u00e9nom\u00e8ne survient fr\u00e9quemment lorsque la taille de l&rsquo;\u00e9chantillon est excessivement restreinte, induisant une instabilit\u00e9 de l&rsquo;estimation, ou lorsque le trait psychologique \u00e9valu\u00e9 pr\u00e9sente une homog\u00e9n\u00e9it\u00e9 extr\u00eame au sein de l&rsquo;\u00e9chantillon clinique, r\u00e9duisant la dispersion inter-sujets \u00e0 un niveau n\u00e9gligeable face au bruit de mesure.<\/p>\n<p>Certains auteurs ont sugg\u00e9r\u00e9 qu&rsquo;un CCI n\u00e9gatif pouvait \u00e9galement signaler la pr\u00e9sence d&rsquo;un biais de cotation interactif destructeur, tel qu&rsquo;un effet de contraste o\u00f9 les juges s&rsquo;influencent mutuellement de mani\u00e8re polaris\u00e9e. En pratique courante, toute estimation ponctuelle inf\u00e9rieure \u00e0 z\u00e9ro doit \u00eatre tronqu\u00e9e et rapport\u00e9e comme nulle (CCI = 0.00), tout en incitant le chercheur \u00e0 v\u00e9rifier imm\u00e9diatement l&rsquo;ad\u00e9quation de son plan d&rsquo;\u00e9chantillonnage et la dispersion de ses donn\u00e9es.<\/p>\n<h2>2. Typologie et mod\u00e8les math\u00e9matiques du CCI selon Shrout et Fleiss<\/h2>\n<h3>2.1 Le mod\u00e8le \u00e0 effets al\u00e9atoires \u00e0 un facteur (CCI 1)<\/h3>\n<p>La taxonomie canonique \u00e9tablie par <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1037\/0033-2909.86.2.420\">Shrout et Fleiss (1979)<\/a> distingue trois mod\u00e8les fondamentaux en fonction de la structure du plan de mesure et de la nature de l&rsquo;\u00e9chantillonnage des \u00e9valuateurs. Le premier de ces mod\u00e8les, d\u00e9sign\u00e9 sous le terme de mod\u00e8le \u00e0 effets al\u00e9atoires \u00e0 un facteur (mod\u00e8le 1), correspond \u00e0 une configuration exp\u00e9rimentale sp\u00e9cifique : chaque sujet est \u00e9valu\u00e9 par un groupe distinct d&rsquo;\u00e9valuateurs, choisis al\u00e9atoirement au sein d&rsquo;une vaste population de juges potentiels.<\/p>\n<p>Dans ce mod\u00e8le, il est formellement impossible de dissocier la variance propre aux \u00e9valuateurs de la variance d&rsquo;erreur r\u00e9siduelle, car les juges ne sont pas crois\u00e9s avec les sujets. L&rsquo;\u00e9quation d\u00e9compose le score <em>X<sub>ij<\/sub><\/em> du sujet <em>i<\/em> mesur\u00e9 par le juge <em>j<\/em> selon l&rsquo;expression :<\/p>\n<p><em>X<sub>ij<\/sub> = &mu; + s<sub>i<\/sub> + e<sub>ij<\/sub><\/em><\/p>\n<p>o\u00f9 <em>&mu;<\/em> est la moyenne g\u00e9n\u00e9rale, <em>s<sub>i<\/sub><\/em> est l&rsquo;effet al\u00e9atoire du sujet avec une variance not\u00e9e <em>&sigma;<sup>2<\/sup><sub>s<\/sub><\/em>, et <em>e<sub>ij<\/sub><\/em> regroupe indiff\u00e9remment l&rsquo;effet du juge et l&rsquo;erreur d&rsquo;observation, pr\u00e9sentant une variance <em>&sigma;<sup>2<\/sup><sub>e<\/sub><\/em>.<\/p>\n<p>Ce cadre th\u00e9orique d\u00e9bouche sur deux formulations distinctes selon l&rsquo;usage op\u00e9rationnel envisag\u00e9 pour le score. Lorsque l&rsquo;on souhaite estimer la fid\u00e9lit\u00e9 de la notation attribu\u00e9e par un seul \u00e9valuateur tir\u00e9 au hasard, on utilise la formule du CCI(1,1) bas\u00e9e sur le carr\u00e9 moyen inter-sujets (BMS, <em>Between-Subjects Mean Square<\/em>) et le carr\u00e9 moyen intra-sujets (WMS, <em>Within-Subjects Mean Square<\/em>), o\u00f9 <em>k<\/em> repr\u00e9sente le nombre d&rsquo;\u00e9valuations par sujet :<\/p>\n<p><em>CCI(1,1) = (BMS &#8211; WMS) \/ (BMS + (k &#8211; 1) * WMS)<\/em><\/p>\n<p>Lorsque le protocole de recherche stipule que le score final retenu pour chaque patient sera la moyenne des notes attribu\u00e9es par les <em>k<\/em> \u00e9valuateurs distincts, la fid\u00e9lit\u00e9 de cette moyenne composite est calcul\u00e9e via le CCI(1,k) :<\/p>\n<p><em>CCI(1,k) = (BMS &#8211; WMS) \/ BMS<\/em><\/p>\n<p>Le mod\u00e8le 1 s&rsquo;av\u00e8re particuli\u00e8rement pertinent dans les contextes \u00e9pid\u00e9miologiques \u00e0 grande \u00e9chelle ou dans les institutions de soins o\u00f9 chaque patient est \u00e9valu\u00e9 par l&rsquo;infirmier ou le psychiatre de garde. Les contraintes logistiques emp\u00eachent alors d&rsquo;assigner les m\u00eames professionnels \u00e0 l&rsquo;ensemble de la cohorte clinique, produisant des plans d&rsquo;\u00e9chantillonnage d\u00e9s\u00e9quilibr\u00e9s et hautement fragment\u00e9s.<\/p>\n<h3>2.2 Le mod\u00e8le \u00e0 effets al\u00e9atoires \u00e0 deux facteurs (CCI 2)<\/h3>\n<p>Le mod\u00e8le \u00e0 effets al\u00e9atoires \u00e0 deux facteurs (mod\u00e8le 2) repr\u00e9sente le dispositif de r\u00e9f\u00e9rence le plus largement employ\u00e9 en recherche translationnelle et en psychom\u00e9trie clinique. Dans ce sch\u00e9ma exp\u00e9rimental, l&rsquo;ensemble des cibles ou patients est \u00e9valu\u00e9 par le m\u00eame panel de <em>k<\/em> juges. Ces juges sont eux-m\u00eames consid\u00e9r\u00e9s comme un \u00e9chantillon al\u00e9atoire repr\u00e9sentatif issu d&rsquo;une population parente plus vaste d&rsquo;\u00e9valuateurs qualifi\u00e9s (par exemple, cinq neuropsychologues tir\u00e9s au sort parmi tous les praticiens d&rsquo;un r\u00e9seau hospitalier).<\/p>\n<p>Gr\u00e2ce \u00e0 ce croisement complet entre sujets et \u00e9valuateurs, il devient possible d&rsquo;extraire la variance li\u00e9e aux juges. Le score s&rsquo;exprime selon le mod\u00e8le lin\u00e9aire :<\/p>\n<p><em>X<sub>ij<\/sub> = &mu; + s<sub>i<\/sub> + j<sub>j<\/sub> + (sj)<sub>ij<\/sub> + e<sub>ij<\/sub><\/em><\/p>\n<p>o\u00f9 <em>j<sub>j<\/sub><\/em> repr\u00e9sente l&rsquo;effet al\u00e9atoire du juge avec une variance <em>&sigma;<sup>2<\/sup><sub>j<\/sub><\/em>, et les termes d&rsquo;interaction sujet-juge sont g\u00e9n\u00e9ralement confondus avec l&rsquo;erreur r\u00e9siduelle dans un carr\u00e9 moyen d&rsquo;erreur r\u00e9siduelle not\u00e9 EMS (<em>Error Mean Square<\/em>). Le carr\u00e9 moyen attribuable \u00e0 la variabilit\u00e9 entre les juges est not\u00e9 JMS (<em>Judges Mean Square<\/em>).<\/p>\n<p>Le mod\u00e8le 2 \u00e9value rigoureusement l&rsquo;accord absolu, car toute diff\u00e9rence syst\u00e9matique d&rsquo;\u00e9valuation entre les juges vient p\u00e9naliser le coefficient en augmentant le d\u00e9nominateur de l&rsquo;\u00e9quation. Pour une mesure unique (CCI 2,1), la formulation s&rsquo;\u00e9tablit comme suit :<\/p>\n<p><em>CCI(2,1) = (BMS &#8211; EMS) \/ (BMS + (k &#8211; 1) * EMS + (k \/ n) * (JMS &#8211; EMS))<\/em><\/p>\n<p>o\u00f9 <em>n<\/em> repr\u00e9sente le nombre total de sujets \u00e9valu\u00e9s. Si la d\u00e9cision clinique finale repose sur la moyenne des scores des <em>k<\/em> \u00e9valuateurs, le coefficient CCI(2,k) est formul\u00e9 par :<\/p>\n<p><em>CCI(2,k) = (BMS &#8211; EMS) \/ (BMS + (JMS &#8211; EMS) \/ n)<\/em><\/p>\n<p>L&rsquo;avantage \u00e9pist\u00e9mologique du mod\u00e8le 2 r\u00e9side dans sa grande g\u00e9n\u00e9ralisabilit\u00e9 : les indices de fid\u00e9lit\u00e9 ainsi calcul\u00e9s ne s&rsquo;appliquent pas uniquement aux cliniciens ayant particip\u00e9 \u00e0 l&rsquo;exp\u00e9rimentation, mais peuvent \u00eatre \u00e9tendus \u00e0 n&rsquo;importe quel panel d&rsquo;\u00e9valuateurs de m\u00eame qualification appliquant le m\u00eame protocole d&rsquo;\u00e9valuation psychom\u00e9trique standardis\u00e9.<\/p>\n<h3>2.3 Le mod\u00e8le \u00e0 effets mixtes \u00e0 deux facteurs (CCI 3)<\/h3>\n<p>Le troisi\u00e8me mod\u00e8le th\u00e9oris\u00e9 par Shrout et Fleiss est le mod\u00e8le \u00e0 effets mixtes \u00e0 deux facteurs (mod\u00e8le 3). Il s&rsquo;applique lorsque les <em>k<\/em> \u00e9valuateurs mobilis\u00e9s pour l&rsquo;\u00e9tude repr\u00e9sentent les seuls juges d&rsquo;int\u00e9r\u00eat et ne sont en aucun cas consid\u00e9r\u00e9s comme un \u00e9chantillon al\u00e9atoire extrait d&rsquo;une population plus large. Les sujets constituent toujours un facteur \u00e0 effets al\u00e9atoires, mais les juges sont mod\u00e9lis\u00e9s comme un facteur \u00e0 effets fixes. Ce mod\u00e8le correspond \u00e0 des situations o\u00f9, par exemple, les trois cr\u00e9ateurs d&rsquo;une nouvelle grille diagnostique proc\u00e8dent eux-m\u00eames \u00e0 l&rsquo;int\u00e9gralit\u00e9 des codages exp\u00e9rimentaux.<\/p>\n<p>\u00c9tant donn\u00e9 que les juges sont fixes, la variance inter-juges n&rsquo;est plus consid\u00e9r\u00e9e comme une source d&rsquo;erreur d&rsquo;\u00e9chantillonnage al\u00e9atoire pour une population d&rsquo;\u00e9valuateurs externes. Le mod\u00e8le 3 s&rsquo;int\u00e9resse donc prioritairement \u00e0 la coh\u00e9rence relative des cotations (bien qu&rsquo;il puisse techniquement \u00eatre d\u00e9clin\u00e9 en accord absolu selon les d\u00e9veloppements ult\u00e9rieurs de McGraw et Wong). Dans l&rsquo;optique de la coh\u00e9rence relative, la variance syst\u00e9matique attribuable aux juges (JMS) est enti\u00e8rement neutralis\u00e9e et soustraite du calcul de la fid\u00e9lit\u00e9.<\/p>\n<p>L&rsquo;estimation ponctuelle pour un \u00e9valuateur unique dans le cadre du mod\u00e8le 3 s&rsquo;exprime selon une relation simplifi\u00e9e :<\/p>\n<p><em>CCI(3,1) = (BMS &#8211; EMS) \/ (BMS + (k &#8211; 1) * EMS)<\/em><\/p>\n<p>Pour la moyenne stabilis\u00e9e des <em>k<\/em> juges fixes, l&rsquo;\u00e9quation prend la forme classique \u00e9quivalente \u00e0 l&rsquo;<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/fr.wikipedia.org\/wiki\/Alpha_de_Cronbach\">alpha de Cronbach<\/a> :<\/p>\n<p><em>CCI(3,k) = (BMS &#8211; EMS) \/ BMS<\/em><\/p>\n<p>La publication fondamentale de <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1037\/0033-2909.1.1.30\">McGraw et Wong (1996)<\/a> a clarifi\u00e9 et \u00e9tendu la nomenclature de Shrout et Fleiss en formalisant la distinction explicite entre les objectifs de \u00ab Coh\u00e9rence \u00bb (<em>Consistency<\/em>) et d&rsquo;\u00ab Accord absolu \u00bb (<em>Absolute Agreement<\/em>) pour l&rsquo;ensemble des mod\u00e8les \u00e0 deux facteurs. Les chercheurs doivent donc choisir avec pr\u00e9caution entre ces deux variantes en fonction des objectifs cliniques poursuivis.<\/p>\n<h2>3. Configuration de l&rsquo;environnement scientifique Python<\/h2>\n<h3>3.1 Installation et gestion des d\u00e9pendances logicielles<\/h3>\n<p>L&rsquo;impl\u00e9mentation robuste de l&rsquo;analyse psychom\u00e9trique en Python repose sur un \u00e9cosyst\u00e8me de calcul num\u00e9rique coh\u00e9rent et rigoureusement versionn\u00e9. Le calcul du coefficient de corr\u00e9lation intraclasse n\u00e9cessite l&rsquo;interaction harmonieuse de biblioth\u00e8ques d\u00e9di\u00e9es \u00e0 la manipulation de matrices et aux analyses statistiques inf\u00e9rentielles avanc\u00e9es. Pour garantir la reproductibilit\u00e9 des r\u00e9sultats d&rsquo;une \u00e9tude clinique, il est imp\u00e9ratif d&rsquo;isoler l&rsquo;environnement d&rsquo;ex\u00e9cution \u00e0 l&rsquo;aide d&rsquo;un gestionnaire d&rsquo;environnements virtuels tel que Conda ou l&rsquo;utilitaire standard venv.<\/p>\n<p>La mise en place de cet environnement commence par l&rsquo;installation du paquet statistique central <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/pingouin-stats.org\/\">Pingouin<\/a>, con\u00e7u sp\u00e9cifiquement pour les sciences comportementales et biom\u00e9dicales. Cette biblioth\u00e8que encapsule les algorithmes de d\u00e9composition de variance et offre une interface intuitive pour l&rsquo;analyse statistique. L&rsquo;installation s&rsquo;effectue simplement via le gestionnaire de paquets officiel :<\/p>\n<pre><code>pip install pingouin pandas numpy scipy statsmodels matplotlib seaborn<\/code><\/pre>\n<p>Il est indispensable de v\u00e9rifier la compatibilit\u00e9 des versions install\u00e9es, notamment entre NumPy, SciPy et Pandas. Les \u00e9volutions rapides des structures internes de Pandas (notamment depuis le passage \u00e0 la version 2.0 et la refonte de la gestion des types de donn\u00e9es sous Apache Arrow) peuvent parfois induire des comportements inattendus lors de manipulations matricielles complexes. L&rsquo;inspection des versions dans une session interactive garantit l&rsquo;int\u00e9grit\u00e9 de la cha\u00eene de traitement :<\/p>\n<pre><code>import pingouin as pg\nimport pandas as pd\nimport numpy as np\nimport scipy\nimport statsmodels\n\nprint(f\"Pingouin version: {pg.__version__}\")\nprint(f\"Pandas version: {pd.__version__}\")\nprint(f\"NumPy version: {np.__version__}\")\nprint(f\"SciPy version: {scipy.__version__}\")\nprint(f\"Statsmodels version: {statsmodels.__version__}\")<\/code><\/pre>\n<h3>3.2 Pr\u00e9sentation de la biblioth\u00e8que Pingouin pour la psychom\u00e9trie<\/h3>\n<p>Historiquement, les praticiens de la recherche psychologique et psychiatrique se trouvaient contraints de recourir \u00e0 des logiciels propri\u00e9taires on\u00e9reux et ferm\u00e9s tels que SPSS ou SAS, ou devaient ma\u00eetriser le langage R pour exploiter des paquets sp\u00e9cialis\u00e9s comme <code>psych<\/code> ou <code>irr<\/code>. Bien que la biblioth\u00e8que <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/scikit-learn.org\/\">Scikit-learn<\/a> domine l&rsquo;apprentissage automatique sous Python, elle se d\u00e9sint\u00e9resse presque totalement des statistiques inf\u00e9rentielles, de la d\u00e9composition factorielle des variances et de la th\u00e9orie classique des tests.<\/p>\n<p>Con\u00e7ue par Rapha\u00ebl Vallat pour combler ce manque structurel, la biblioth\u00e8que Pingouin offre une syntaxe fluide inspir\u00e9e de la philosophie de conception de R, tout en s&rsquo;int\u00e9grant parfaitement dans l&rsquo;\u00e9cosyst\u00e8me Python orient\u00e9 objet. Pingouin se distingue par le fait que ses fonctions statistiques acceptent directement des DataFrames Pandas comme arguments d&rsquo;entr\u00e9e et renvoient syst\u00e9matiquement des DataFrames Pandas exhaustifs en sortie, facilitant ainsi l&rsquo;encha\u00eenement des \u00e9tapes de traitement de donn\u00e9es (<em>pipelines<\/em>).<\/p>\n<p>En ce qui concerne le calcul du CCI, Pingouin impl\u00e9mente une fonction d&rsquo;analyse de variance \u00e0 deux facteurs hautement optimis\u00e9e. Elle calcule simultan\u00e9ment l&rsquo;ensemble des six variantes algorithmiques d\u00e9finies par Shrout et Fleiss en un unique passage computationnel. Cette approche \u00e9vite d&rsquo;avoir \u00e0 ajuster manuellement des mod\u00e8les lin\u00e9aires fastidieux et \u00e9limine les risques d&rsquo;erreurs de syntaxe dans l&rsquo;extraction des sommes de carr\u00e9s et des carr\u00e9s moyens r\u00e9siduels.<\/p>\n<h2>4. Structuration et pr\u00e9traitement des donn\u00e9es psychologiques avec Pandas<\/h2>\n<h3>4.1 Structure tabulaire : format long versus format large<\/h3>\n<p>L&rsquo;\u00e9tape pr\u00e9alable au calcul automatis\u00e9 du CCI sous Python r\u00e9side dans la mod\u00e9lisation et l&rsquo;organisation tabulaire des observations psychom\u00e9triques. Dans les bases de donn\u00e9es cliniques traditionnelles, les informations sont majoritairement consign\u00e9es sous un \u00ab format large \u00bb (<em>wide format<\/em>). Dans cette disposition, chaque ligne correspond \u00e0 un patient unique identifi\u00e9, et chaque colonne contient les notes attribu\u00e9es par un clinicien particulier ou issues d&rsquo;une s\u00e9ance sp\u00e9cifique (par exemple, les colonnes <code>Juge_1<\/code>, <code>Juge_2<\/code>, <code>Juge_3<\/code>).<\/p>\n<p>Or, la fonction <code>pingouin.intraclass_corr<\/code> requiert imp\u00e9rativement des donn\u00e9es organis\u00e9es sous le \u00ab format long \u00bb (<em>long format<\/em> ou <em>tidy data<\/em>). Selon les canons th\u00e9oriques \u00e9nonc\u00e9s par Hadley Wickham, un jeu de donn\u00e9es est consid\u00e9r\u00e9 comme structur\u00e9 lorsque chaque variable constitue une colonne distincte et que chaque observation individuelle correspond \u00e0 une ligne unique. Dans le contexte du CCI, trois colonnes distinctes sont formellement requises :<\/p>\n<ul>\n<li>Une variable d&rsquo;identification de la cible ou du sujet \u00e9valu\u00e9 (<em>targets<\/em>).<\/li>\n<li>Une variable d&rsquo;identification de l&rsquo;\u00e9valuateur ou du juge (<em>raters<\/em>).<\/li>\n<li>Une variable quantitative continue ou pseudo-continue repr\u00e9sentant la note ou le score attribu\u00e9 (<em>ratings<\/em>).<\/li>\n<\/ul>\n<p>La conversion d&rsquo;une matrice large vers cette disposition longitudinale s&rsquo;effectue sans difficult\u00e9 gr\u00e2ce \u00e0 la m\u00e9thode <code>pandas.melt()<\/code>, comme illustr\u00e9 dans l&rsquo;extrait ci-dessous :<\/p>\n<pre><code>import pandas as pd\n\n# Matrice initiale au format large\ndf_large = pd.DataFrame({\n    'Patient_ID': [f'P{i:03d}' for i in range(1, 6)],\n    'Dr_Martin': [14.5, 18.0, 12.0, 22.5, 16.0],\n    'Dr_Dubois': [15.0, 17.5, 13.0, 21.0, 16.5],\n    'Dr_Lefebvre': [13.5, 19.0, 11.5, 23.0, 15.5]\n})\n\n# Transformation vers le format long (tidy)\ndf_long = pd.melt(\n    df_large,\n    id_vars=['Patient_ID'],\n    value_vars=['Dr_Martin', 'Dr_Dubois', 'Dr_Lefebvre'],\n    var_name='Evaluateur',\n    value_name='Score_Symptome'\n)\n\nprint(df_long.head())<\/code><\/pre>\n<h3>4.2 Construction d&rsquo;un jeu de donn\u00e9es d&rsquo;\u00e9valuation psychologique simul\u00e9<\/h3>\n<p>Afin d&rsquo;illustrer la d\u00e9marche sur un plan exp\u00e9rimental repr\u00e9sentatif des \u00e9tudes de validation psychom\u00e9trique, nous allons g\u00e9n\u00e9rer un jeu de donn\u00e9es simul\u00e9 r\u00e9aliste. Imaginons un protocole d&rsquo;\u00e9valuation clinique standardis\u00e9 dans lequel 30 patients adultes souffrant de troubles anxieux sont \u00e9valu\u00e9s de fa\u00e7on ind\u00e9pendante par 4 psychiatres chevronn\u00e9s \u00e0 partir d&rsquo;entretiens vid\u00e9o enregistr\u00e9s. L&rsquo;\u00e9chelle de cotation s&rsquo;\u00e9tend de 0 \u00e0 50 points.<\/p>\n<p>Pour construire ce jeu de donn\u00e9es, nous allons mod\u00e9liser explicitement une composante de score vrai pour chaque patient, un biais syst\u00e9matique pour chaque \u00e9valuateur (par exemple, un juge structurellement plus s\u00e9v\u00e8re qu&rsquo;un autre), ainsi qu&rsquo;une erreur al\u00e9atoire de mesure \u00e0 distribution normale gaussienne :<\/p>\n<pre><code>import numpy as np\nimport pandas as pd\n\n# Fixation de la graine pseudo-al\u00e9atoire pour la reproductibilit\u00e9\nnp.random.seed(42)\n\nn_patients = 30\nn_juges = 4\njuges_noms = [f'Clinicien_{chr(65 + i)}' for i in range(n_juges)]\npatients_ids = [f'Sujet_{i:02d}' for i in range(1, n_patients + 1)]\n\n# 1. G\u00e9n\u00e9ration des scores vrais latents des patients\n# Distribution normale : moyenne = 28, \u00e9cart-type = 7.5\nscores_vrais = np.random.normal(loc=28.0, scale=7.5, size=n_patients)\n\n# 2. Biais syst\u00e9matiques des cliniciens (effets juges)\n# A = neutre, B = cl\u00e9ment (+2.5), C = s\u00e9v\u00e8re (-3.0), D = l\u00e9g\u00e8rement cl\u00e9ment (+1.0)\nbiais_juges = [0.0, 2.5, -3.0, 1.0]\n\n# 3. Construction des observations avec erreur al\u00e9atoire\ndonnees_longues = []\n\nfor idx_pat, pat_id in enumerate(patients_ids):\n    score_vrai_patient = scores_vrais[idx_pat]\n    for idx_juge, juge_id in enumerate(juges_noms):\n        erreur_mesure = np.random.normal(loc=0.0, scale=2.0)\n        score_observe = score_vrai_patient + biais_juges[idx_juge] + erreur_mesure\n        \n        # Tronquage aux bornes r\u00e9alistes de l'\u00e9chelle th\u00e9orique [0, 50]\n        score_final = np.clip(score_observe, 0.0, 50.0)\n        \n        donnees_longues.append({\n            'Target': pat_id,\n            'Rater': juge_id,\n            'Rating': np.round(score_final, 1)\n        })\n\ndf_psychometrie = pd.DataFrame(donnees_longues)\nprint(df_psychometrie.info())\nprint(df_psychometrie.head(10))<\/code><\/pre>\n<h3>4.3 Nettoyage et d\u00e9tection des anomalies de saisie<\/h3>\n<p>L&rsquo;estimation rigoureuse d&rsquo;un indice de fid\u00e9lit\u00e9 param\u00e9trique n\u00e9cessite de v\u00e9rifier la coh\u00e9rence interne du jeu de donn\u00e9es avant toute analyse. Dans les protocoles de recherche clinique multicentriques, les bases de donn\u00e9es sont fr\u00e9quemment alt\u00e9r\u00e9es par des erreurs mat\u00e9rielles de saisie, des valeurs hors limites, des doublons d&rsquo;enregistrement ou des d\u00e9s\u00e9quilibres impr\u00e9vus dans le croisement des facteurs d&rsquo;int\u00e9r\u00eat.<\/p>\n<p>La premi\u00e8re v\u00e9rification consiste \u00e0 s&rsquo;assurer que les valeurs observ\u00e9es respectent scrupuleusement les bornes th\u00e9oriques de l&rsquo;instrument d&rsquo;\u00e9valuation psychologique. L&rsquo;ex\u00e9cution d&rsquo;assertions logiques et d&rsquo;analyses descriptives univari\u00e9es via Pandas permet de rep\u00e9rer imm\u00e9diatement toute valeur aberrante :<\/p>\n<pre><code># V\u00e9rification de l'int\u00e9grit\u00e9 des bornes de cotation\nscore_min = df_psychometrie['Rating'].min()\nscore_max = df_psychometrie['Rating'].max()\n\nassert score_min &gt;= 0.0, f\"Erreur critique : Score n\u00e9gatif d\u00e9tect\u00e9 ({score_min})\"\nassert score_max &lt;= 50.0, f\"Erreur critique : D\u00e9passement de la borne sup\u00e9rieure ({score_max})\"\n\n# Contr\u00f4le des doublons structurels juge-patient\ndoublons = df_psychometrie.duplicated(subset=['Target', 'Rater'], keep=False)\nif doublons.any():\n    raise ValueError(f\"Doublons identifi\u00e9s :n{df_psychometrie[doublons]}\")\nelse:\n    print(\"Contr\u00f4le structurel : Aucun doublon d\u00e9tect\u00e9. Chaque cellule est unique.\")<\/code><\/pre>\n<p>Le second contr\u00f4le porte sur l&rsquo;\u00e9quilibrage complet du plan exp\u00e9rimental. Les mod\u00e8les de calcul standard du CCI reposent sur une analyse de variance \u00e0 deux facteurs sans cellule vide. Il convient donc de s&rsquo;assurer, \u00e0 l&rsquo;aide d&rsquo;une table de contingence crois\u00e9e (<code>crosstab<\/code>), que chaque juge a cot\u00e9 l&rsquo;int\u00e9gralit\u00e9 des cibles sans omission :<\/p>\n<pre><code>matrice_contingence = pd.crosstab(df_psychometrie['Target'], df_psychometrie['Rater'])\nverification_completude = (matrice_contingence == 1).all().all()\n\nif not verification_completude:\n    print(\"Attention : Pr\u00e9sence de cellules vides ou d'observations r\u00e9p\u00e9t\u00e9es.\")\nelse:\n    print(\"Conception exp\u00e9rimentale parfaite : Plan enti\u00e8rement crois\u00e9 et \u00e9quilibr\u00e9.\")<\/code><\/pre>\n<h2>5. Ex\u00e9cution pas \u00e0 pas du calcul du CCI avec pingouin.intraclass_corr()<\/h2>\n<h3>5.1 Param\u00e9trage exhaustif de la fonction<\/h3>\n<p>La fonction <code>pingouin.intraclass_corr()<\/code> synth\u00e9tise l&rsquo;ensemble des d\u00e9rivations math\u00e9matiques n\u00e9cessaires pour quantifier la fid\u00e9lit\u00e9 inter-juges. Contrairement aux approches s\u00e9quentielles imposant l&rsquo;\u00e9criture de multiples mod\u00e8les lin\u00e9aires, cette fonction n&rsquo;exige que quatre param\u00e8tres obligatoires pour fonctionner de mani\u00e8re optimale :<\/p>\n<ul>\n<li><code>data<\/code> : Le DataFrame Pandas contenant la totalit\u00e9 des observations sous format long structur\u00e9.<\/li>\n<li><code>targets<\/code> : Une cha\u00eene de caract\u00e8res indiquant le nom exact de la colonne d\u00e9signant les entit\u00e9s \u00e9valu\u00e9es (les patients, les s\u00e9quences vid\u00e9o, les items).<\/li>\n<li><code>raters<\/code> : Une cha\u00eene de caract\u00e8res pr\u00e9cisant le nom de la colonne identifiant les \u00e9valuateurs ind\u00e9pendants.<\/li>\n<li><code>ratings<\/code> : Une cha\u00eene de caract\u00e8res sp\u00e9cifiant le nom de la variable num\u00e9rique repr\u00e9sentant la mesure continue ou pseudo-continue \u00e0 analyser.<\/li>\n<li><code>nan_policy<\/code> : Optionnellement, le comportement face aux valeurs manquantes, dont la valeur par d\u00e9faut \u00e9limine les cibles incompl\u00e8tes (<em>listwise deletion<\/em>).<\/li>\n<\/ul>\n<p>Par d\u00e9faut, l&rsquo;appel de la fonction d\u00e9clenche l&rsquo;estimation simultan\u00e9e des six d\u00e9clinaisons du coefficient de corr\u00e9lation intraclasse \u00e9tablies par la classification de Shrout et Fleiss (1979). Cela permet au statisticien d&rsquo;examiner et de confronter en parall\u00e8le les diff\u00e9rentes hypoth\u00e8ses op\u00e9rationnelles relatives au mode d&rsquo;agr\u00e9gation des scores et \u00e0 la nature des juges.<\/p>\n<h3>5.2 Impl\u00e9mentation du code complet d&rsquo;ex\u00e9cution<\/h3>\n<p>L&rsquo;ex\u00e9cution de la proc\u00e9dure statistique s&rsquo;av\u00e8re concise et \u00e9l\u00e9gante, ne n\u00e9cessitant que quelques lignes de code Python bien structur\u00e9es :<\/p>\n<pre><code>import pingouin as pg\n\n# Appel direct de la fonction de corr\u00e9lation intraclasse\ntable_resultats_icc = pg.intraclass_corr(\n    data=df_psychometrie,\n    targets='Target',\n    raters='Rater',\n    ratings='Rating'\n)\n\n# Configuration de l'affichage Pandas pour examiner toutes les colonnes\npd.set_option('display.max_columns', None)\npd.set_option('display.width', 1000)\npd.set_option('display.precision', 4)\n\nprint(\"n--- TABLEAU DES R\u00c9SULTATS PSYCHOM\u00c9TRIQUES DU CCI ---\")\nprint(table_resultats_icc)<\/code><\/pre>\n<p>L&rsquo;ex\u00e9cution de cette commande g\u00e9n\u00e8re instantan\u00e9ment un tableau d&rsquo;analyse d\u00e9taill\u00e9 sous forme de DataFrame, structurant les m\u00e9triques cl\u00e9s de l&rsquo;inf\u00e9rence statistique : estimations ponctuelles, intervalles de confiance param\u00e9triques, degr\u00e9s de libert\u00e9 du mod\u00e8le, statistiques de test F et probabilit\u00e9s associ\u00e9es.<\/p>\n<h3>5.3 Options de personnalisation et variantes syntaxiques<\/h3>\n<p>Dans le cadre d&rsquo;\u00e9tudes cliniques multicentriques \u00e9valuant simultan\u00e9ment de multiples sous-\u00e9chelles d&rsquo;un inventaire psychologique, il est souvent utile d&rsquo;encapsuler le calcul du CCI au sein d&rsquo;une fonction r\u00e9utilisable. Cette fonction peut alors automatiser le filtrage, l&rsquo;analyse et l&rsquo;exportation des r\u00e9sultats vers diff\u00e9rents formats scientifiques exploitables (tels que LaTeX, CSV ou Excel) :<\/p>\n<pre><code>def analyser_fidelite_psychometrique(df, col_cible, col_juge, col_score, nom_echelle=\"Echelle_Clinique\"):\n    \"\"\"\n    Ex\u00e9cute le calcul du CCI et formate la sortie pour exploitation acad\u00e9mique.\n    \"\"\"\n    icc_df = pg.intraclass_corr(\n        data=df,\n        targets=col_cible,\n        raters=col_juge,\n        ratings=col_score\n    )\n    \n    # Ajout du nom de l'\u00e9chelle analys\u00e9e pour faciliter la synth\u00e8se multicrit\u00e8re\n    icc_df.insert(0, 'Echelle', nom_echelle)\n    \n    # Filtrage cibl\u00e9 sur le mod\u00e8le 2 (Accord Absolu)\n    icc_modele_2 = icc_df[icc_df['Type'].isin(['ICC2', 'ICC2k'])].copy()\n    \n    # S\u00e9paration et formatage propre des bornes de l'intervalle de confiance\n    icc_modele_2['IC95_Inf'] = icc_modele_2['CI95%'].apply(lambda x: x[0])\n    icc_modele_2['IC95_Sup'] = icc_modele_2['CI95%'].apply(lambda x: x[1])\n    \n    return icc_df, icc_modele_2\n\n# Ex\u00e9cution de la fonction modulaire\ntableau_complet, synthese_modele_2 = analyser_fidelite_psychometrique(\n    df=df_psychometrie,\n    col_cible='Target',\n    col_juge='Rater',\n    col_score='Rating',\n    nom_echelle='Inventaire_Anxiete'\n)\n\n# Exportation automatique pour publication\nsynthese_modele_2.to_csv('resultats_fidelite_inter_juges.csv', index=False)\nprint(\"Synth\u00e8se export\u00e9e avec succ\u00e8s.\")\nprint(synthese_modele_2[['Echelle', 'Type', 'ICC', 'IC95_Inf', 'IC95_Sup', 'Fval', 'pval']])<\/code><\/pre>\n<h2>6. Analyse approfondie des sorties statistiques g\u00e9n\u00e9r\u00e9es par Python<\/h2>\n<h3>6.1 D\u00e9composition des colonnes du tableau de sortie de Pingouin<\/h3>\n<p>L&rsquo;interpr\u00e9tation clinique des r\u00e9sultats calcul\u00e9s par Pingouin exige une compr\u00e9hension fine de la structure de sa table de sortie. Cette table synth\u00e9tise l&rsquo;ensemble des concepts de la th\u00e9orie de la fid\u00e9lit\u00e9. Le tableau renvoy\u00e9 par la fonction <code>intraclass_corr<\/code> comprend syst\u00e9matiquement huit colonnes distinctes :<\/p>\n<ul>\n<li><code>Type<\/code> : L&rsquo;abr\u00e9viation technique d\u00e9signant la forme sp\u00e9cifique du coefficient selon la nomenclature internationale : <code>ICC1<\/code>, <code>ICC2<\/code>, <code>ICC3<\/code>, <code>ICC1k<\/code>, <code>ICC2k<\/code>, et <code>ICC3k<\/code>.<\/li>\n<li><code>Description<\/code> : La formulation explicite du design exp\u00e9rimental mod\u00e9lis\u00e9. Par exemple, pour l&rsquo;ICC2, Pingouin indique <em>Two-way random effects, absolute agreement, single rater\/measurement<\/em>.<\/li>\n<li><code>ICC<\/code> : L&rsquo;estimation ponctuelle param\u00e9trique du coefficient de corr\u00e9lation intraclasse calcul\u00e9e sur l&rsquo;\u00e9chantillon empirique.<\/li>\n<li><code>F<\/code> : La valeur observ\u00e9e de la statistique de test issue de la distribution de Snedecor-Fisher.<\/li>\n<li><code>df1<\/code> : Le nombre de degr\u00e9s de libert\u00e9 associ\u00e9 au num\u00e9rateur du test F (correspondant au nombre de sujets \u00e9valu\u00e9s moins un : <em>n &#8211; 1<\/em>).<\/li>\n<li><code>df2<\/code> : Le nombre de degr\u00e9s de libert\u00e9 associ\u00e9 au d\u00e9nominateur du test de Fisher.<\/li>\n<li><code>pval<\/code> : Le degr\u00e9 de signification statistique (valeur de <em>p<\/em>) associ\u00e9 au test de l&rsquo;hypoth\u00e8se nulle d&rsquo;\u00e9galit\u00e9 du coefficient \u00e0 z\u00e9ro.<\/li>\n<li><code>CI95%<\/code> : Une structure de liste Python contenant les bornes inf\u00e9rieure et sup\u00e9rieure de l&rsquo;intervalle de confiance calcul\u00e9 au seuil de confiance bilat\u00e9ral de 95 %.<\/li>\n<\/ul>\n<p>L&rsquo;estimation ponctuelle renseigne directement sur la proportion de variance attribuable au score vrai sous les hypoth\u00e8ses du mod\u00e8le consid\u00e9r\u00e9. L&rsquo;examen attentif des estimations obtenues met en lumi\u00e8re les diff\u00e9rences th\u00e9oriques fondamentales qui existent entre ces indices. Typiquement, la valeur num\u00e9rique de l&rsquo;<code>ICC3<\/code> (coh\u00e9rence pure) est syst\u00e9matiquement sup\u00e9rieure ou \u00e9gale \u00e0 celle de l&rsquo;<code>ICC2<\/code> (accord absolu), car l&rsquo;ICC3 soustrait la variance inter-juges de la composante d&rsquo;erreur, ignorant les \u00e9carts syst\u00e9matiques de s\u00e9v\u00e9rit\u00e9 entre les cliniciens.<\/p>\n<h3>6.2 Intervalles de confiance \u00e0 95 % et inf\u00e9rence statistique<\/h3>\n<p>En psychom\u00e9trie moderne, l&rsquo;\u00e9valuation de la fid\u00e9lit\u00e9 ne saurait en aucun cas se limiter \u00e0 la simple lecture de l&rsquo;estimation ponctuelle du CCI. Les directives m\u00e9thodologiques stipulent qu&rsquo;une interpr\u00e9tation rigoureuse doit syst\u00e9matiquement s&rsquo;appuyer sur l&rsquo;intervalle de confiance \u00e0 95 % (IC 95 %), et plus sp\u00e9cifiquement sur sa borne inf\u00e9rieure.<\/p>\n<p>L&rsquo;estimation de l&rsquo;intervalle de confiance s&rsquo;appuie sur la distribution th\u00e9orique de la statistique <em>F<\/em> de Fisher. Pour les mod\u00e8les \u00e0 effets al\u00e9atoires \u00e0 deux facteurs, les \u00e9quations analytiques d\u00e9velopp\u00e9es par Shrout et Fleiss, compl\u00e9t\u00e9es par McGraw et Wong, exploitent des approximations exactes lorsque les composantes de la variance sont non nulles. La formule g\u00e9n\u00e9rale de calcul de la borne inf\u00e9rieure (<em>L<\/em>) et de la borne sup\u00e9rieure (<em>U<\/em>) pour le CCI(2,1) fait intervenir les percentiles de la distribution <em>F<\/em> :<\/p>\n<p><em>F<sub>obs<\/sub> \/ F<sub>critique_haut<\/sub> &le; F &le; F<sub>obs<\/sub> * F<sub>critique_bas<\/sub><\/em><\/p>\n<p>L&rsquo;amplitude de cet intervalle est directement d\u00e9termin\u00e9e par la taille de l&rsquo;\u00e9chantillon des sujets \u00e9valu\u00e9s (<em>n<\/em>) et, dans une moindre mesure, par le nombre d&rsquo;\u00e9valuateurs (<em>k<\/em>). Un \u00e9chantillon modeste (par exemple, 10 \u00e0 15 patients) peut produire une estimation ponctuelle tr\u00e8s flatteuse (ex. : CCI = 0.85), mais assortie d&rsquo;un intervalle de confiance excessivement large (ex. : IC 95 % [0.42, 0.96]). Dans un tel sc\u00e9nario, l&rsquo;estimation r\u00e9elle de la fid\u00e9lit\u00e9 demeure hautement incertaine et peut tout aussi bien \u00eatre jug\u00e9e m\u00e9diocre qu&rsquo;excellente. Cette impr\u00e9cision interdit toute conclusion d\u00e9finitive sur la fid\u00e9lit\u00e9 clinique du protocole d&rsquo;\u00e9valuation.<\/p>\n<h3>6.3 Tests de significativit\u00e9 : degr\u00e9s de libert\u00e9, valeur F et p-valeur<\/h3>\n<p>Chaque ligne de la table g\u00e9n\u00e9r\u00e9e par Pingouin est associ\u00e9e \u00e0 un test formel d&rsquo;hypoth\u00e8se statistique nulle. L&rsquo;hypoth\u00e8se nulle s&rsquo;\u00e9nonce : <em>H<sub>0<\/sub> : CCI = 0<\/em>, ce qui \u00e9quivaut \u00e0 postuler que la variance du score vrai des sujets est rigoureusement nulle et que les scores observ\u00e9s r\u00e9sultent exclusivement d&rsquo;un bruit de mesure al\u00e9atoire et d&rsquo;un d\u00e9saccord complet entre les juges.<\/p>\n<p>Pour tester cette hypoth\u00e8se, le ratio de variance calcul\u00e9 suit une loi de Fisher-Snedecor param\u00e9tr\u00e9e par les degr\u00e9s de libert\u00e9 <em>df1<\/em> et <em>df2<\/em>. Dans le mod\u00e8le \u00e0 deux facteurs, le nombre de degr\u00e9s de libert\u00e9 au num\u00e9rateur est invariablement \u00e9gal \u00e0 <em>df1 = n &#8211; 1<\/em>. Le calcul des degr\u00e9s de libert\u00e9 du d\u00e9nominateur (<em>df2<\/em>) d\u00e9pend en revanche du mod\u00e8le th\u00e9orique retenu :<\/p>\n<ul>\n<li>Pour le mod\u00e8le 3 (coh\u00e9rence) : <em>df2 = (n &#8211; 1)(k &#8211; 1)<\/em>.<\/li>\n<li>Pour le mod\u00e8le 2 (accord absolu) : les degr\u00e9s de libert\u00e9 sont approxim\u00e9s selon l&rsquo;\u00e9quation de Satterthwaite, car le d\u00e9nominateur de la formule combine deux sources de variance distinctes (JMS et EMS).<\/li>\n<\/ul>\n<p>Il importe de formuler une mise en garde m\u00e9thodologique essentielle : l&rsquo;obtention d&rsquo;une probabilit\u00e9 hautement significative (par exemple, <em>p &lt; 0.001<\/em>) n&rsquo;implique absolument pas que l&rsquo;instrument d&rsquo;\u00e9valuation dispose d&rsquo;une bonne fid\u00e9lit\u00e9 inter-juges. Dans les cohortes de grande taille (ex. : <em>n &gt; 200<\/em>), un CCI modeste de 0.35 sera presque syst\u00e9matiquement significatif sur le plan statistique en raison de la tr\u00e8s forte puissance du test, rejetant formellement l&rsquo;hypoth\u00e8se d&rsquo;une fid\u00e9lit\u00e9 strictement \u00e9gale \u00e0 z\u00e9ro. Pour autant, un tel niveau de concordance demeure cliniquement insuffisant pour une utilisation pratique. La prise de d\u00e9cision diagnostique doit donc reposer sur l&rsquo;amplitude clinique de l&rsquo;estimation et de son intervalle de confiance, et non sur la simple significativit\u00e9 de la p-valeur.<\/p>\n<h2>7. Arbre d\u00e9cisionnel pour s\u00e9lectionner la forme ad\u00e9quate de CCI<\/h2>\n<h3>7.1 Crit\u00e8re 1 : \u00c9chantillonnage et statut des \u00e9valuateurs<\/h3>\n<p>Le choix d&rsquo;un coefficient de corr\u00e9lation intraclasse appropri\u00e9 d\u00e9pend directement de la structure du plan de mesure et de la fa\u00e7on dont les \u00e9valuateurs ont \u00e9t\u00e9 recrut\u00e9s. Ce choix n&rsquo;est donc pas d&rsquo;ordre purement math\u00e9matique, mais rel\u00e8ve d&rsquo;une r\u00e9flexion m\u00e9thodologique approfondie sur les conditions de recueil des donn\u00e9es.<\/p>\n<p>Le premier point d&rsquo;arbitrage concerne le mode de s\u00e9lection et d&rsquo;affectation des juges au protocole exp\u00e9rimental :<\/p>\n<ul>\n<li>Si chaque cible de l&rsquo;\u00e9tude est \u00e9valu\u00e9e par un groupe d&rsquo;observateurs totalement distinct, tir\u00e9 au hasard sans lien avec les observateurs des autres cibles, l&rsquo;utilisation du <strong>Mod\u00e8le 1<\/strong> (effets al\u00e9atoires \u00e0 un facteur) s&rsquo;impose obligatoirement.<\/li>\n<li>Si tous les sujets sont \u00e9valu\u00e9s par le m\u00eame groupe de juges, et que ce groupe est consid\u00e9r\u00e9 comme un \u00e9chantillon repr\u00e9sentatif tir\u00e9 au sort au sein d&rsquo;une population plus large de praticiens, c&rsquo;est le <strong>Mod\u00e8le 2<\/strong> (effets al\u00e9atoires \u00e0 deux facteurs) qui doit \u00eatre retenu pour garantir la g\u00e9n\u00e9ralisabilit\u00e9 des r\u00e9sultats.<\/li>\n<li>Si les juges constituent un panel fixe, unique et non interchangeable (par exemple, des chercheurs experts ayant mis au point le protocole et restant les seuls \u00e9valuateurs concern\u00e9s), il convient d&rsquo;appliquer le <strong>Mod\u00e8le 3<\/strong> (effets mixtes \u00e0 deux facteurs).<\/li>\n<\/ul>\n<p>Un cas particulier de plus en plus fr\u00e9quent en psychologie computationnelle concerne l&rsquo;\u00e9valuation automatis\u00e9e de marqueurs comportementaux par des algorithmes d&rsquo;apprentissage profond ou de traitement du langage naturel. Lorsqu&rsquo;un algorithme de vision par ordinateur est compar\u00e9 \u00e0 un panel d&rsquo;experts humains, cet algorithme doit obligatoirement \u00eatre mod\u00e9lis\u00e9 comme un facteur \u00e0 effets fixes. L&rsquo;objectif est alors d&rsquo;\u00e9valuer la fid\u00e9lit\u00e9 de cet outil sp\u00e9cifique, sans chercher \u00e0 g\u00e9n\u00e9raliser les conclusions \u00e0 une population hypoth\u00e9tique d&rsquo;algorithmes al\u00e9atoires.<\/p>\n<h3>7.2 Crit\u00e8re 2 : Mesure unique contre moyenne de plusieurs mesures<\/h3>\n<p>La deuxi\u00e8me d\u00e9cision m\u00e9thodologique fondamentale r\u00e9side dans l&rsquo;arbitrage entre l&rsquo;usage d&rsquo;une mesure unique (<em>single rater<\/em> : indices not\u00e9s ICC1, ICC2, ICC3) ou de la moyenne de plusieurs mesures (<em>average raters<\/em> : indices not\u00e9s ICC1k, ICC2k, ICC3k). Ce choix doit refl\u00e9ter scrupuleusement la mani\u00e8re dont l&rsquo;outil psychom\u00e9trique sera d\u00e9ploy\u00e9 dans la pratique clinique quotidienne.<\/p>\n<p>Si, dans le cadre de son activit\u00e9 courante, le psychologue clinicien pose un diagnostic \u00e0 partir de la cotation r\u00e9alis\u00e9e par un seul professionnel lors de la consultation, le chercheur doit obligatoirement \u00e9valuer et rapporter le coefficient pour mesure unique (ICC2 ou ICC3). Choisir \u00e0 tort le coefficient pour mesures moyenn\u00e9es gonflerait artificiellement la fid\u00e9lit\u00e9 apparente de la proc\u00e9dure, masquant la variabilit\u00e9 inh\u00e9rente aux \u00e9valuations individuelles.<\/p>\n<p>\u00c0 l&rsquo;inverse, si le protocole diagnostique officiel impose qu&rsquo;un patient soit examin\u00e9 par un comit\u00e9 de trois praticiens ind\u00e9pendants et que la d\u00e9cision finale repose sur la moyenne de leurs scores respectifs, le coefficient pour moyenne (ICC2k ou ICC3k) constitue alors l&rsquo;estimateur l\u00e9gitime. Sur le plan math\u00e9matique, l&rsquo;accroissement syst\u00e9matique de la fid\u00e9lit\u00e9 observ\u00e9 lors du passage d&rsquo;une mesure individuelle \u00e0 la moyenne de <em>k<\/em> mesures r\u00e9pond directement aux pr\u00e9dictions de la <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/en.wikipedia.org\/wiki\/Spearman%E2%80%93Brown_prediction_formula\">formule de proph\u00e9tie de Spearman-Brown<\/a>. Cette relation formelle montre que l&rsquo;agr\u00e9gation de plusieurs \u00e9valuations ind\u00e9pendantes r\u00e9duit la variance de l&rsquo;erreur al\u00e9atoire proportionnellement au nombre d&rsquo;\u00e9valuateurs mobilis\u00e9s.<\/p>\n<h3>7.3 Crit\u00e8re 3 : Accord absolu versus coh\u00e9rence relative<\/h3>\n<p>Le troisi\u00e8me crit\u00e8re de s\u00e9lection oppose l&rsquo;accord absolu \u00e0 la coh\u00e9rence relative au sein des mod\u00e8les \u00e0 deux facteurs (mod\u00e8les 2 et 3). Cette distinction d\u00e9pend de la tol\u00e9rance du protocole exp\u00e9rimental face aux d\u00e9calages syst\u00e9matiques de cotation entre les \u00e9valuateurs.<\/p>\n<p>La coh\u00e9rence relative (<em>consistency<\/em>) neutralise les diff\u00e9rences syst\u00e9matiques de niveau de cotation d&rsquo;un juge \u00e0 l&rsquo;autre. Elle v\u00e9rifie uniquement si les \u00e9valuateurs classent les sujets dans le m\u00eame ordre de s\u00e9v\u00e9rit\u00e9 relative. Ce param\u00e8tre est particuli\u00e8rement adapt\u00e9 aux \u00e9tudes de recherche fondamentale qui s&rsquo;int\u00e9ressent aux corr\u00e9lations de rang ou aux covariations entre construits psychologiques sans se focaliser sur le niveau absolu des scores.<\/p>\n<p>\u00c0 l&rsquo;oppos\u00e9, l&rsquo;accord absolu (<em>absolute agreement<\/em>) prend en compte et p\u00e9nalise toute divergence syst\u00e9matique entre les \u00e9valuateurs. Si le clinicien A attribue syst\u00e9matiquement des notes sup\u00e9rieures de 5 points \u00e0 celles du clinicien B, l&rsquo;accord absolu sera fortement d\u00e9grad\u00e9. Cette p\u00e9nalisation est indispensable dans les contextes cliniques o\u00f9 les scores sont compar\u00e9s \u00e0 des seuils diagnostiques stricts (par exemple, un score seuil de 24 sur l&rsquo;\u00e9chelle de d\u00e9pression). Dans ce type de situation, deux cotations divergentes peuvent modifier directement la prise en charge th\u00e9rapeutique du patient, rendant l&rsquo;accord absolu incontournable.<\/p>\n<h2>8. Calcul alternatif via d\u00e9composition de la variance avec Statsmodels<\/h2>\n<h3>8.1 Formulation de l&rsquo;ANOVA \u00e0 deux facteurs avec r\u00e9p\u00e9titions<\/h3>\n<p>Bien que la biblioth\u00e8que Pingouin offre une solution simple et rapide pour les cas standards, il est particuli\u00e8rement formateur pour le statisticien de d\u00e9composer manuellement la variance \u00e0 l&rsquo;aide de la biblioth\u00e8que <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/www.statsmodels.org\/\">Statsmodels<\/a>. Cette approche permet d&rsquo;observer directement la m\u00e9canique sous-jacente du mod\u00e8le lin\u00e9aire g\u00e9n\u00e9ral et facilite l&rsquo;adaptation du calcul \u00e0 des devis de recherche plus complexes.<\/p>\n<p>Pour reconstituer le mod\u00e8le \u00e0 deux facteurs crois\u00e9s sans interaction (puisqu&rsquo;il n&rsquo;y a qu&rsquo;une seule observation par combinaison sujet-juge), nous ajustons un mod\u00e8le de r\u00e9gression lin\u00e9aire par les moindres carr\u00e9s ordinaires (OLS). Les cibles et les \u00e9valuateurs y sont d\u00e9clar\u00e9s sous forme de variables cat\u00e9gorielles \u00e0 l&rsquo;aide de la syntaxe de formule Patsy :<\/p>\n<pre><code>import statsmodels.api as sm\nimport statsmodels.formula.api as smf\n\n# Mod\u00e9lisation lin\u00e9aire de la d\u00e9composition des scores\nmodele_ols = smf.ols('Rating ~ C(Target) + C(Rater)', data=df_psychometrie).fit()\n\n# Extraction de la table d'analyse de variance de Type II\ntable_anova = sm.stats.anova_lm(modele_ols, typ=2)\nprint(\"--- TABLEAU D'ANALYSE DE VARIANCE (STATSMODELS) ---\")\nprint(table_anova)<\/code><\/pre>\n<p>La table d&rsquo;ANOVA ainsi g\u00e9n\u00e9r\u00e9e fournit les sommes de carr\u00e9s (<em>Sum of Squares<\/em>, SS), les degr\u00e9s de libert\u00e9 (<em>df<\/em>) ainsi que les carr\u00e9s moyens (<em>Mean Squares<\/em>, MS) associ\u00e9s \u00e0 chaque facteur d&rsquo;int\u00e9r\u00eat.<\/p>\n<h3>8.2 Calcul programmatique direct des \u00e9quations de Shrout et Fleiss<\/h3>\n<p>\u00c0 partir des carr\u00e9s moyens extraits du mod\u00e8le d&rsquo;analyse de variance, il devient possible de calculer directement les \u00e9quations formelles du CCI \u00e0 l&rsquo;aide de <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/numpy.org\/\">NumPy<\/a>. Cette d\u00e9marche permet de v\u00e9rifier la parfaite convergence des calculs manuels avec les r\u00e9sultats automatis\u00e9s fournis par Pingouin :<\/p>\n<pre><code>import numpy as np\n\n# 1. Extraction des composantes de variance (Carr\u00e9s Moyens)\nbms = table_anova.loc['C(Target)', 'sum_sq'] \/ table_anova.loc['C(Target)', 'df']\njms = table_anova.loc['C(Rater)', 'sum_sq'] \/ table_anova.loc['C(Rater)', 'df']\nems = table_anova.loc['Residual', 'sum_sq'] \/ table_anova.loc['Residual', 'df']\n\nn = df_psychometrie['Target'].nunique()\nk = df_psychometrie['Rater'].nunique()\n\nprint(f\"BMS (Cibles) : {bms:.4f}\")\nprint(f\"JMS (Juges)  : {jms:.4f}\")\nprint(f\"EMS (Erreur) : {ems:.4f}\")\n\n# 2. Application manuelle des \u00e9quations de Shrout et Fleiss\n# Mod\u00e8le 2 : \u00c9valuateur unique, accord absolu\nicc_2_1_manuel = (bms - ems) \/ (bms + (k - 1) * ems + (k \/ n) * (jms - ems))\n\n# Mod\u00e8le 2 : Moyenne de k \u00e9valuateurs, accord absolu\nicc_2_k_manuel = (bms - ems) \/ (bms + (jms - ems) \/ n)\n\n# Mod\u00e8le 3 : \u00c9valuateur unique, coh\u00e9rence relative\nicc_3_1_manuel = (bms - ems) \/ (bms + (k - 1) * ems)\n\nprint(\"n--- COMPARAISON DES CALCULS MANUELS ET PINGOUIN ---\")\nprint(f\"CCI(2,1) Calcul\u00e9 : {icc_2_1_manuel:.4f}\")\nprint(f\"CCI(2,k) Calcul\u00e9 : {icc_2_k_manuel:.4f}\")\nprint(f\"CCI(3,1) Calcul\u00e9 : {icc_3_1_manuel:.4f}\")<\/code><\/pre>\n<p>Cette impl\u00e9mentation pas \u00e0 pas met clairement en \u00e9vidence la relation arithm\u00e9tique qui lie les carr\u00e9s moyens de l&rsquo;analyse de variance aux coefficients de fid\u00e9lit\u00e9. Elle confirme que le CCI n&rsquo;est rien d&rsquo;autre qu&rsquo;un ratio standardis\u00e9 de variances issues du mod\u00e8le lin\u00e9aire g\u00e9n\u00e9ral.<\/p>\n<h3>8.3 Mod\u00e8les lin\u00e9aires mixtes hi\u00e9rarchiques pour designs complexes<\/h3>\n<p>L&rsquo;utilisation de l&rsquo;ANOVA classique se heurte \u00e0 des limites m\u00e9thodologiques majeures d\u00e8s lors que le plan d&rsquo;exp\u00e9rience est incomplet, d\u00e9s\u00e9quilibr\u00e9 ou comporte des donn\u00e9es manquantes. Ces situations sont pourtant monnaie courante dans la pratique clinique r\u00e9elle, o\u00f9 les abandons en cours d&rsquo;\u00e9tude et l&rsquo;indisponibilit\u00e9 ponctuelle des \u00e9valuateurs emp\u00eachent fr\u00e9quemment d&rsquo;obtenir des grilles de cotation compl\u00e8tes.<\/p>\n<p>Dans ces contextes complexes, la mod\u00e9lisation lin\u00e9aire mixte hi\u00e9rarchique (LMM) repr\u00e9sente la solution statistique la plus adapt\u00e9e. En utilisant le module <code>statsmodels.regression.mixed_linear_model.MixedLM<\/code>, il est possible d&rsquo;estimer directement les composantes de variance via la m\u00e9thode du maximum de vraisemblance restreinte (REML). Cette approche g\u00e8re naturellement les observations manquantes sans imposer la suppression arbitraire de cibles enti\u00e8res :<\/p>\n<pre><code>import statsmodels.formula.api as smf\n\n# Formulation du mod\u00e8le mixte \u00e0 intercepts al\u00e9atoires crois\u00e9s\n# Le facteur Target est mod\u00e9lis\u00e9 comme effet al\u00e9atoire, le facteur Rater comme effet fixe ou al\u00e9atoire\nmodele_mixte = smf.mixedlm(\n    formula=\"Rating ~ 1\",\n    data=df_psychometrie,\n    groups=df_psychometrie[\"Target\"],\n    re_formula=\"1\"\n).fit(reml=True)\n\nprint(modele_mixte.summary())\n\n# Extraction directe des composantes de variance estim\u00e9es par REML\nvar_sujets = float(modele_mixte.cov_re.iloc[0, 0])\nvar_residuelle = float(modele_mixte.scale)\n\n# Estimation directe du coefficient de corr\u00e9lation intraclasse\nicc_reml = var_sujets \/ (var_sujets + var_residuelle)\nprint(f\"nCCI estim\u00e9 via REML (Mod\u00e8le Lin\u00e9aire Mixte) : {icc_reml:.4f}\")<\/code><\/pre>\n<p>Cette mod\u00e9lisation par \u00e9quations d&rsquo;estimation mixtes offre une souplesse remarquable. Elle permet d&rsquo;int\u00e9grer sans difficult\u00e9 des covariables explicatives continues (comme l&rsquo;\u00e2ge du patient ou l&rsquo;anciennet\u00e9 du clinicien), d&rsquo;ajuster le calcul pour tenir compte d&rsquo;effets de site dans les \u00e9tudes multicentriques, et de mod\u00e9liser des structures d&rsquo;erreurs h\u00e9t\u00e9rosc\u00e9dastiques ou autor\u00e9gressives.<\/p>\n<h2>9. Directives d&rsquo;interpr\u00e9tation et normes psychom\u00e9triques<\/h2>\n<h3>9.1 Seuils d&rsquo;interpr\u00e9tation selon Koo et Li (2016)<\/h3>\n<p>L&rsquo;interpr\u00e9tation quantitative de la valeur num\u00e9rique d&rsquo;un coefficient de corr\u00e9lation intraclasse s&rsquo;est longtemps appuy\u00e9e sur des r\u00e8gles heuristiques vagues, sources de confusions dans la litt\u00e9rature m\u00e9dicale et psychologique. Pour standardiser ces pratiques, les travaux de r\u00e9f\u00e9rence de <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1016\/j.jcm.2016.02.012\">Koo et Li (2016)<\/a> ont \u00e9tabli une grille d&rsquo;interpr\u00e9tation rigoureuse, adopt\u00e9e aujourd&rsquo;hui par la majorit\u00e9 des comit\u00e9s de lecture acad\u00e9miques :<\/p>\n<ul>\n<li><strong>Fid\u00e9lit\u00e9 m\u00e9diocre (<em>Poor reliability<\/em>) :<\/strong> Valeur du CCI strictement inf\u00e9rieure \u00e0 0.50. L&rsquo;erreur de mesure pr\u00e9domine largement sur la variance r\u00e9elle du trait \u00e9valu\u00e9, interdisant toute utilisation du protocole \u00e0 des fins de recherche ou de diagnostic.<\/li>\n<li><strong>Fid\u00e9lit\u00e9 mod\u00e9r\u00e9e (<em>Moderate reliability<\/em>) :<\/strong> Valeur du CCI comprise entre 0.50 et 0.75. Ce niveau d&rsquo;accord peut suffire pour des \u00e9tudes exploratoires en laboratoire ou des d\u00e9pistages pr\u00e9liminaires, mais demeure trop impr\u00e9cis pour guider des d\u00e9cisions cliniques individuelles.<\/li>\n<li><strong>Fid\u00e9lit\u00e9 bonne (<em>Good reliability<\/em>) :<\/strong> Valeur du CCI comprise entre 0.75 et 0.90. Les cotations sont stables et reproductibles, autorisant l&rsquo;usage de l&rsquo;instrument dans les essais cliniques randomis\u00e9s et les bilans diagnostiques standardis\u00e9s.<\/li>\n<li><strong>Fid\u00e9lit\u00e9 excellente (<em>Excellent reliability<\/em>) :<\/strong> Valeur du CCI strictement sup\u00e9rieure \u00e0 0.90. L&rsquo;erreur de mesure est minime, ce qui r\u00e9pond aux exigences les plus strictes des \u00e9valuations individuelles \u00e0 fort enjeu (d\u00e9cisions m\u00e9dico-l\u00e9gales, inclusion dans des protocoles de th\u00e9rapies innovantes).<\/li>\n<\/ul>\n<p>Koo et Li formulent par ailleurs une recommandation m\u00e9thodologique essentielle, encore trop souvent n\u00e9glig\u00e9e : <em>l&rsquo;interpr\u00e9tation clinique ne doit pas reposer uniquement sur l&rsquo;estimation ponctuelle du CCI, mais doit obligatoirement \u00eatre guid\u00e9e par la borne inf\u00e9rieure de son intervalle de confiance \u00e0 95 %<\/em>. Si un indice affiche une estimation ponctuelle s\u00e9duisante de 0.82 (qualifi\u00e9e de \u00ab bonne \u00bb), mais que son intervalle de confiance s&rsquo;\u00e9tend de 0.48 \u00e0 0.93, la borne inf\u00e9rieure indique que la fid\u00e9lit\u00e9 r\u00e9elle peut \u00eatre m\u00e9diocre. Dans une d\u00e9marche clinique prudente, cet instrument ne saurait donc \u00eatre certifi\u00e9 comme disposant d&rsquo;une bonne fid\u00e9lit\u00e9.<\/p>\n<h3>9.2 Impact des propri\u00e9t\u00e9s de l&rsquo;\u00e9chantillon sur la magnitude du CCI<\/h3>\n<p>Le coefficient de corr\u00e9lation intraclasse est un indice relatif et non une constante intrins\u00e8que attach\u00e9e \u00e0 un instrument de mesure. Sa valeur num\u00e9rique d\u00e9pend directement de l&rsquo;h\u00e9t\u00e9rog\u00e9n\u00e9it\u00e9 de l&rsquo;\u00e9chantillon de cibles sur lequel il a \u00e9t\u00e9 calcul\u00e9. Ce ph\u00e9nom\u00e8ne, bien connu sous le nom de paradoxe de restriction de variance, doit inciter le chercheur \u00e0 une grande prudence dans l&rsquo;analyse de ses r\u00e9sultats.<\/p>\n<p>Consid\u00e9rons deux \u00e9chantillons de patients \u00e9valu\u00e9s \u00e0 l&rsquo;aide de la m\u00eame \u00e9chelle d&rsquo;observation. Dans le premier groupe, tr\u00e8s h\u00e9t\u00e9rog\u00e8ne, les patients pr\u00e9sentent des niveaux d&rsquo;atteinte clinique extr\u00eamement vari\u00e9s (allant de l&rsquo;absence de sympt\u00f4mes jusqu&rsquo;\u00e0 des formes tr\u00e8s s\u00e9v\u00e8res). Dans ce cas, la variance inter-sujets (BMS) est tr\u00e8s \u00e9lev\u00e9e par rapport \u00e0 l&rsquo;erreur de mesure, ce qui se traduit m\u00e9caniquement par un CCI proche de 1.00. Dans le second groupe, tr\u00e8s homog\u00e8ne, les patients partagent un profil clinique quasi identique. La variance inter-sujets y est donc extr\u00eamement faible. M\u00eame si les \u00e9valuateurs s&rsquo;accordent tr\u00e8s pr\u00e9cis\u00e9ment sur chaque patient (avec une erreur absolue minime de un \u00e0 deux points), la variance r\u00e9siduelle repr\u00e9sentera une part importante de la variance totale observ\u00e9e. Il en r\u00e9sultera un CCI tr\u00e8s bas, qui pourrait faire conclure \u00e0 tort \u00e0 une mauvaise fid\u00e9lit\u00e9 de l&rsquo;outil.<\/p>\n<p>De m\u00eame, l&rsquo;\u00e9tendue de l&rsquo;\u00e9chelle d&rsquo;\u00e9valuation influence directement la dispersion des notes. Une \u00e9chelle de Likert courte en 3 ou 4 points induit fr\u00e9quemment un effet de tassement de variance comparativement \u00e0 une \u00e9chelle continue en 100 points, ce qui complique les comparaisons directes de CCI d&rsquo;un outil \u00e0 l&rsquo;autre. Il est donc indispensable d&rsquo;\u00e9valuer la repr\u00e9sentativit\u00e9 clinique et la variabilit\u00e9 de la cohorte \u00e9tudi\u00e9e avant de g\u00e9n\u00e9raliser les conclusions relatives \u00e0 la fid\u00e9lit\u00e9 d&rsquo;un instrument.<\/p>\n<h2>10. Diagnostic des donn\u00e9es, gestion des donn\u00e9es manquantes et robustesse<\/h2>\n<h3>10.1 V\u00e9rification des postulats fondamentaux de normalit\u00e9<\/h3>\n<p>L&rsquo;exactitude des calculs de carr\u00e9s moyens et la validit\u00e9 des intervalles de confiance param\u00e9triques du CCI reposent sur des postulats statistiques stricts. Ces mod\u00e8les supposent notamment que les scores vrais des sujets ainsi que les erreurs r\u00e9siduelles de mesure suivent des distributions normales, et que la variance d&rsquo;erreur reste constante sur toute l&rsquo;\u00e9tendue de l&rsquo;\u00e9chelle d&rsquo;\u00e9valuation (hypoth\u00e8se d&rsquo;homosc\u00e9dasticit\u00e9).<\/p>\n<p>L&rsquo;\u00e9valuation de la normalit\u00e9 des r\u00e9sidus s&rsquo;effectue simplement sous Python \u00e0 l&rsquo;aide du test formel de <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/fr.wikipedia.org\/wiki\/Test_de_Shapiro-Wilk\">Shapiro-Wilk<\/a>, compl\u00e9t\u00e9 par l&rsquo;analyse visuelle des diagrammes quantile-quantile (Q-Q plots) :<\/p>\n<pre><code>import scipy.stats as stats\nimport statsmodels.api as sm\n\n# Extraction des r\u00e9sidus du mod\u00e8le lin\u00e9aire d'ANOVA\nresidus = table_anova = smf.ols('Rating ~ C(Target) + C(Rater)', data=df_psychometrie).fit().resid\n\n# Test formel de Shapiro-Wilk\nstat_sw, p_val_sw = stats.shapiro(residus)\nprint(f\"Test de normalit\u00e9 de Shapiro-Wilk sur les r\u00e9sidus : W = {stat_sw:.4f}, p = {p_val_sw:.4f}\")\n\nif p_val_sw &lt; 0.05:\n    print(\"Avertissement : Les r\u00e9sidus d\u00e9vient significativement de la distribution normale.\")\nelse:\n    print(\"Postulat v\u00e9rifi\u00e9 : Distribution normale des r\u00e9sidus confirm\u00e9e.\")<\/code><\/pre>\n<p>Lorsque les donn\u00e9es empiriques violent de mani\u00e8re flagrante le postulat de normalit\u00e9 (par exemple, en pr\u00e9sence d&rsquo;effets de plancher marqu\u00e9s ou de scores fortement asym\u00e9triques), les intervalles de confiance param\u00e9triques deviennent peu fiables. La solution m\u00e9thodologique consiste alors \u00e0 estimer l&rsquo;intervalle de confiance par r\u00e9\u00e9chantillonnage bootstrap non param\u00e9trique. Cette m\u00e9thode it\u00e9rative g\u00e9n\u00e8re des milliers de r\u00e9\u00e9chantillonnages al\u00e9atoires avec remise afin de construire une distribution empirique robuste du CCI :<\/p>\n<pre><code>def bootstrap_icc(data, n_iterations=1000, alpha=0.05):\n    \"\"\"\n    Calcule l'intervalle de confiance du CCI(2,1) par bootstrap non param\u00e9trique au niveau des sujets.\n    \"\"\"\n    sujets_uniques = data['Target'].unique()\n    n_sujets = len(sujets_uniques)\n    icc_bottes = []\n    \n    for _ in range(n_iterations):\n        # R\u00e9\u00e9chantillonnage des identifiants patients avec remise\n        echantillon_sujets = np.random.choice(sujets_uniques, size=n_sujets, replace=True)\n        \n        # Reconstruction de la structure de donn\u00e9es correspondante\n        df_boot = pd.concat([data[data['Target'] == s] for s in echantillon_sujets])\n        # R\u00e9assignation d'identifiants uniques factices pour pr\u00e9server la structure de croisement\n        df_boot['Target_Sim'] = np.repeat(range(n_sujets), data['Rater'].nunique())\n        \n        try:\n            res_boot = pg.intraclass_corr(data=df_boot, targets='Target_Sim', raters='Rater', ratings='Rating')\n            val_icc = res_boot.loc[res_boot['Type'] == 'ICC2', 'ICC'].values[0]\n            icc_bottes.append(val_icc)\n        except Exception:\n            continue\n            \n    borne_inf = np.percentile(icc_bottes, 100 * (alpha \/ 2))\n    borne_sup = np.percentile(icc_bottes, 100 * (1 - alpha \/ 2))\n    return np.mean(icc_bottes), (borne_inf, borne_sup)\n\nicc_moyen, ic_boot = bootstrap_icc(df_psychometrie, n_iterations=500)\nprint(f\"CCI(2,1) Bootstrap : {icc_moyen:.4f}, IC 95% Bootstrap : [{ic_boot[0]:.4f}, {ic_boot[1]:.4f}]\")<\/code><\/pre>\n<h3>10.2 Gestion des donn\u00e9es manquantes dans les grilles d&rsquo;\u00e9valuation<\/h3>\n<p>Dans les protocoles longitudinaux ou multicentriques, l&rsquo;absence impr\u00e9vue d&rsquo;un clinicien ou l&rsquo;interruption d&rsquo;une passation psychologique g\u00e9n\u00e8re in\u00e9vitablement des cellules vides dans la matrice de donn\u00e9es. La fonction <code>pingouin.intraclass_corr<\/code> applique par d\u00e9faut une politique stricte d&rsquo;\u00e9limination des donn\u00e9es manquantes (<em>listwise deletion<\/em>) : tout patient qui ne dispose pas d&rsquo;une cotation compl\u00e8te par l&rsquo;ensemble des juges est purement et simplement exclu du calcul.<\/p>\n<p>Cette approche par \u00e9limination peut consid\u00e9rablement d\u00e9grader la puissance statistique de l&rsquo;\u00e9tude et introduire des biais d&rsquo;\u00e9chantillonnage majeurs si les donn\u00e9es manquantes ne surviennent pas de fa\u00e7on totalement al\u00e9atoire (m\u00e9canisme <em>MCAR<\/em>, Missing Completely At Random). Si les omissions d\u00e9pendent de l&rsquo;\u00e9tat clinique du patient (m\u00e9canismes <em>MAR<\/em> ou <em>MNAR<\/em>, comme des patients tr\u00e8s perturb\u00e9s refusant certaines parties de l&rsquo;entretien), l&rsquo;\u00e9limination des cas incomplets faussera directement l&rsquo;estimation de la fid\u00e9lit\u00e9.<\/p>\n<p>Pour traiter ces situations plus rigoureusement sans exclure arbitrairement de patients, on peut recourir \u00e0 l&rsquo;imputation multiple par \u00e9quations cha\u00een\u00e9es (MICE). L&rsquo;algorithme <code>IterativeImputer<\/code> de <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/scikit-learn.org\/\">Scikit-learn<\/a> permet d&rsquo;imputer les scores manquants en s&rsquo;appuyant sur l&rsquo;ensemble des corr\u00e9lations observ\u00e9es entre les \u00e9valuateurs :<\/p>\n<pre><code>from sklearn.experimental import enable_iterative_imputer\nfrom sklearn.impute import IterativeImputer\n\n# Pivotement temporaire en matrice large pour l'imputation multivari\u00e9e\ndf_matrice_large = df_psychometrie.pivot(index='Target', columns='Rater', values='Rating')\n\n# Introduction d\u00e9lib\u00e9r\u00e9e de valeurs manquantes simul\u00e9es (10% des donn\u00e9es)\nnp.random.seed(101)\nmasque_manquant = np.random.rand(*df_matrice_large.shape) &lt; 0.10\ndf_manquant_large = df_matrice_large.mask(masque_manquant)\n\n# Application de l'imputation it\u00e9rative multivari\u00e9e\nimputeur = IterativeImputer(max_iter=20, random_state=42)\nmatrice_imputee = imputeur.fit_transform(df_manquant_large)\n\ndf_impute_large = pd.DataFrame(matrice_imputee, index=df_matrice_large.index, columns=df_matrice_large.columns)\n\n# Reconversion vers le format long standardis\u00e9\ndf_impute_long = df_impute_large.reset_index().melt(\n    id_vars=['Target'],\n    var_name='Rater',\n    value_name='Rating'\n)\n\n# Recalcul de la fid\u00e9lit\u00e9 sur les donn\u00e9es compl\u00e9t\u00e9es\nicc_apres_imputation = pg.intraclass_corr(data=df_impute_long, targets='Target', raters='Rater', ratings='Rating')\nprint(\"CCI calcul\u00e9 avec succ\u00e8s apr\u00e8s imputation multivari\u00e9e.\")<\/code><\/pre>\n<h3>10.3 D\u00e9tection de juges aberrants ou d&rsquo;effets de contamination<\/h3>\n<p>L&rsquo;estimation globale d&rsquo;un CCI peut \u00eatre fortement p\u00e9nalis\u00e9e par le comportement atypique d&rsquo;un seul \u00e9valuateur au sein du panel. En psychom\u00e9trie, ce probl\u00e8me renvoie g\u00e9n\u00e9ralement \u00e0 des biais de cotation bien identifi\u00e9s :<\/p>\n<ul>\n<li><strong>L&rsquo;effet de cl\u00e9mence ou de s\u00e9v\u00e9rit\u00e9 :<\/strong> D\u00e9calage syst\u00e9matique de la moyenne des scores d&rsquo;un clinicien par rapport \u00e0 celle de ses pairs.<\/li>\n<li><strong>Le biais de tendance centrale :<\/strong> R\u00e9ticence d&rsquo;un observateur \u00e0 exploiter les extr\u00eames de l&rsquo;\u00e9chelle, regroupant artificiellement l&rsquo;ensemble de ses notes autour du point m\u00e9dian.<\/li>\n<li><strong>L&rsquo;effet de halo :<\/strong> Tendance d&rsquo;un \u00e9valuateur \u00e0 laisser une impression g\u00e9n\u00e9rale influencer la cotation de dimensions comportementales pourtant distinctes.<\/li>\n<\/ul>\n<p>Pour isoler l&rsquo;impact sp\u00e9cifique de chaque \u00e9valuateur sur la fid\u00e9lit\u00e9 globale, il est recommand\u00e9 de mettre en \u0153uvre une proc\u00e9dure d&rsquo;analyse s\u00e9quentielle avec exclusion pas \u00e0 pas (<em>leave-one-out sensitivity analysis<\/em>) :<\/p>\n<pre><code>def diagnostiquer_juges_aberrants(df_long):\n    \"\"\"\n    Ex\u00e9cute une analyse de sensibilit\u00e9 pour \u00e9valuer la contribution de chaque juge au CCI global.\n    \"\"\"\n    juges = df_long['Rater'].unique()\n    resultats_sensibilite = []\n    \n    # Calcul de r\u00e9f\u00e9rence avec tous les juges\n    icc_baseline = pg.intraclass_corr(data=df_long, targets='Target', raters='Rater', ratings='Rating')\n    baseline_val = icc_baseline.loc[icc_baseline['Type'] == 'ICC2', 'ICC'].values[0]\n    \n    for juge_exclu in juges:\n        df_filtre = df_long[df_long['Rater'] != juge_exclu]\n        res_exclusion = pg.intraclass_corr(data=df_filtre, targets='Target', raters='Rater', ratings='Rating')\n        icc_sans_juge = res_exclusion.loc[res_exclusion['Type'] == 'ICC2', 'ICC'].values[0]\n        \n        delta_icc = icc_sans_juge - baseline_val\n        \n        resultats_sensibilite.append({\n            'Juge_Exclu': juge_exclu,\n            'CCI2_Sans_Juge': icc_sans_juge,\n            'Impact_Delta': delta_icc\n        })\n        \n    df_diagnostic = pd.DataFrame(resultats_sensibilite).sort_values(by='Impact_Delta', ascending=False)\n    return df_diagnostic\n\ndf_diagnostic = diagnostiquer_juges_aberrants(df_psychometrie)\nprint(\"n--- DIAGNOSTIC D'IMPACT INDIVIDUEL DES \u00c9VALUATEURS ---\")\nprint(df_diagnostic)<\/code><\/pre>\n<p>Si l&rsquo;exclusion d&rsquo;un \u00e9valuateur particulier entra\u00eene une hausse spectaculaire du CCI (un delta fortement positif), cela met en \u00e9vidence une divergence m\u00e9thodologique majeure chez ce praticien. Dans un contexte de recherche clinique, ce r\u00e9sultat justifie un r\u00e9examen de ses grilles de cotation et une session de recalibrage de l&rsquo;\u00e9quipe d&rsquo;\u00e9valuation.<\/p>\n<h2>11. Visualisation graphique de l&rsquo;accord inter-juges avec Matplotlib et Seaborn<\/h2>\n<h3>11.1 Graphiques de dispersion et droites d&rsquo;identit\u00e9 pour paires de juges<\/h3>\n<p>L&rsquo;inspection visuelle des donn\u00e9es d&rsquo;\u00e9valuation constitue un pr\u00e9alable indispensable \u00e0 l&rsquo;analyse num\u00e9rique. Pour comparer deux juges en particulier, la m\u00e9thode graphique de r\u00e9f\u00e9rence repose sur le trac\u00e9 d&rsquo;un nuage de points enrichi de la bissectrice d&rsquo;identit\u00e9 parfaite (la droite math\u00e9matique d&rsquo;\u00e9quation <em>y = x<\/em>).<\/p>\n<p>Contrairement \u00e0 une droite de r\u00e9gression lin\u00e9aire qui illustre simplement la covariation entre deux variables, la droite d&rsquo;identit\u00e9 \u00e0 45 degr\u00e9s visualise directement l&rsquo;accord absolu. Tout point s&rsquo;\u00e9cartant de cette ligne traduit un d\u00e9saccord num\u00e9rique entre les observateurs. En utilisant la fonction <code>jointplot<\/code> de la biblioth\u00e8que <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/seaborn.pydata.org\/\">Seaborn<\/a>, il devient ais\u00e9 de combiner ce nuage de points avec les distributions marginales des deux cliniciens, permettant d&rsquo;identifier imm\u00e9diatement d&rsquo;\u00e9ventuels d\u00e9calages d&rsquo;asym\u00e9trie ou de tendance centrale :<\/p>\n<pre><code>import matplotlib.pyplot as plt\nimport seaborn as sns\n\n# Pr\u00e9paration d'une matrice large pour visualiser deux \u00e9valuateurs\ndf_paire = df_psychometrie.pivot(index='Target', columns='Rater', values='Rating')\n\n# Cr\u00e9ation du graphique de dispersion enrichi des distributions marginales\ng = sns.jointplot(\n    data=df_paire,\n    x='Clinicien_A',\n    y='Clinicien_B',\n    kind='scatter',\n    color='#1f77b4',\n    height=8,\n    marginal_kws=dict(bins=10, fill=True, color='#4c72b0')\n)\n\n# Trac\u00e9 de la ligne de r\u00e9f\u00e9rence d'identit\u00e9 parfaite (y = x)\nlimites_axes = [\n    min(df_paire['Clinicien_A'].min(), df_paire['Clinicien_B'].min()) - 2,\n    max(df_paire['Clinicien_A'].max(), df_paire['Clinicien_B'].max()) + 2\n]\n\ng.ax_joint.plot(limites_axes, limites_axes, color='red', linestyle='--', linewidth=2, label='Accord Parfait (y = x)')\ng.ax_joint.set_xlim(limites_axes)\ng.ax_joint.set_ylim(limites_axes)\ng.ax_joint.set_xlabel('Cotations : Clinicien A', fontsize=12, fontweight='bold')\ng.ax_joint.set_ylabel('Cotations : Clinicien B', fontsize=12, fontweight='bold')\ng.ax_joint.legend(loc='upper left', frameon=True)\n\nplt.suptitle(\"Concordance Inter-Juges : Dispersion et Droite d'Identit\u00e9\", y=1.02, fontsize=14, fontweight='bold')\nplt.tight_layout()\nplt.show()<\/code><\/pre>\n<h3>11.2 Diagrammes de Bland-Altman appliqu\u00e9s aux \u00e9chelles continues<\/h3>\n<p>Propos\u00e9e initialement pour valider de nouveaux dispositifs de mesure en bio-ing\u00e9nierie, la m\u00e9thode graphique de <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/fr.wikipedia.org\/wiki\/Diagramme_de_Bland-Altman\">Bland et Altman (1986)<\/a> repr\u00e9sente l&rsquo;outil d&rsquo;analyse diagnostique le plus puissant pour sonder les d\u00e9saccords entre deux \u00e9valuateurs sur une \u00e9chelle continue. Plut\u00f4t que de repr\u00e9senter les mesures brutes l&rsquo;une contre l&rsquo;autre, le graphique de Bland-Altman projette la diff\u00e9rence individuelle des scores (<em>Juge A &#8211; Juge B<\/em>) sur l&rsquo;axe des ordonn\u00e9es, et la moyenne des deux cotations sur l&rsquo;axe des abscisses.<\/p>\n<p>Ce graphique met en \u00e9vidence la pr\u00e9sence \u00e9ventuelle d&rsquo;un biais syst\u00e9matique (la moyenne arithm\u00e9tique de l&rsquo;ensemble des diff\u00e9rences) et trace les limites d&rsquo;accord empiriques \u00e0 95 %, calcul\u00e9es selon la formule :<\/p>\n<p><em>Limites d&rsquo;Accord = Moyenne des Diff\u00e9rences &plusmn; 1.96 * \u00c9cart-type des Diff\u00e9rences<\/em><\/p>\n<pre><code>import numpy as np\nimport matplotlib.pyplot as plt\n\nscores_juge_a = df_paire['Clinicien_A'].values\nscores_juge_c = df_paire['Clinicien_C'].values\n\n# Calcul des grandeurs diff\u00e9rentielles et moyennes\ndifferences = scores_juge_a - scores_juge_c\nmoyennes = (scores_juge_a + scores_juge_c) \/ 2.0\n\nbiais_moyen = np.mean(differences)\necart_type_diff = np.std(differences, ddof=1)\nlimite_sup = biais_moyen + 1.96 * ecart_type_diff\nlimite_inf = biais_moyen - 1.96 * ecart_type_diff\n\n# Construction graphique du diagramme de Bland-Altman\nplt.figure(figsize=(10, 6))\nplt.scatter(moyennes, differences, color='#2ca02c', edgecolor='black', alpha=0.8, s=60)\nplt.axhline(biais_moyen, color='blue', linestyle='-', linewidth=2, label=f'Biais Moyen ({biais_moyen:+.2f})')\nplt.axhline(limite_sup, color='red', linestyle='--', linewidth=1.5, label=f'Limite Sup\u00e9rieure (+1.96 ET : {limite_sup:+.2f})')\nplt.axhline(limite_inf, color='red', linestyle='--', linewidth=1.5, label=f'Limite Inf\u00e9rieure (-1.96 ET : {limite_inf:+.2f})')\nplt.axhline(0, color='gray', linestyle=':', linewidth=1)\n\nplt.title(\"Diagramme de Bland-Altman : Clinicien A vs Clinicien C\", fontsize=14, fontweight='bold')\nplt.xlabel(\"Moyenne des deux \u00e9valuations [(A + C) \/ 2]\", fontsize=12)\nplt.ylabel(\"Diff\u00e9rence entre \u00e9valuations [A - C]\", fontsize=12)\nplt.legend(loc='upper right', frameon=True)\nplt.grid(True, linestyle='--', alpha=0.5)\nplt.tight_layout()\nplt.show()<\/code><\/pre>\n<p>Ce diagramme permet de d\u00e9tecter en un coup d&rsquo;\u0153il d&rsquo;\u00e9ventuels ph\u00e9nom\u00e8nes d&rsquo;h\u00e9t\u00e9rosc\u00e9dasticit\u00e9 dans l&rsquo;erreur de mesure. Si le nuage de points s&rsquo;\u00e9vase progressivement le long de l&rsquo;axe horizontal, formant une silhouette en entonnoir, cela indique que l&rsquo;accord entre les cliniciens se d\u00e9grade \u00e0 mesure que la s\u00e9v\u00e9rit\u00e9 clinique des patients augmente. Une telle observation constitue une information clinique majeure qu&rsquo;un calcul de CCI global masque compl\u00e8tement.<\/p>\n<h3>11.3 Cartes thermiques de concordance et trac\u00e9s de profils<\/h3>\n<p>Lorsque le protocole de recherche mobilise plus de deux observateurs, la visualisation synth\u00e9tique de la concordance globale requiert des repr\u00e9sentations multivari\u00e9es. Deux approches compl\u00e9mentaires sont couramment employ\u00e9es dans les publications de r\u00e9f\u00e9rence : la carte thermique (<em>heatmap<\/em>) des intercorr\u00e9lations et le trac\u00e9 de profils individuels (<em>spaghetti plot<\/em>).<\/p>\n<p>La carte thermique visualise instantan\u00e9ment les corr\u00e9lations crois\u00e9es entre tous les bin\u00f4mes d&rsquo;\u00e9valuateurs au sein du panel. Elle permet de rep\u00e9rer imm\u00e9diatement un juge qui se d\u00e9marquerait de l&rsquo;ensemble du groupe par des corr\u00e9lations anormalement basses :<\/p>\n<pre><code>import seaborn as sns\nimport matplotlib.pyplot as plt\n\n# Matrice de corr\u00e9lation crois\u00e9e entre tous les \u00e9valuateurs\ndf_juges_matrice = df_psychometrie.pivot(index='Target', columns='Rater', values='Rating')\nmatrice_corr = df_juges_matrice.corr(method='pearson')\n\nplt.figure(figsize=(8, 6))\nsns.heatmap(\n    matrice_corr,\n    annot=True,\n    fmt=\".3f\",\n    cmap='Blues',\n    vmin=0.0,\n    vmax=1.0,\n    cbar_kws={'label': 'Corr\u00e9lation bivari\u00e9e'}\n)\nplt.title(\"Matrice d'Intercorr\u00e9lation entre Cliniciens\", fontsize=13, fontweight='bold')\nplt.tight_layout()\nplt.show()<\/code><\/pre>\n<p>En compl\u00e9ment, le trac\u00e9 de profils individuels (<em>spaghetti plot<\/em>) repr\u00e9sente l&rsquo;ensemble des cotations sous forme de lignes bris\u00e9es reliant les juges successifs pour chaque patient. Cette visualisation permet de v\u00e9rifier d&rsquo;un coup d&rsquo;\u0153il le parall\u00e9lisme des cotations et de rep\u00e9rer les \u00e9ventuels effets de croisement interactif :<\/p>\n<pre><code>plt.figure(figsize=(12, 7))\n\n# Trac\u00e9 d'une ligne pour chaque sujet \u00e9valu\u00e9\nsns.lineplot(\n    data=df_psychometrie,\n    x='Rater',\n    y='Rating',\n    hue='Target',\n    legend=False,\n    palette='tab20',\n    alpha=0.7,\n    linewidth=1.5\n)\n\n# Ajout de la trajectoire moyenne de cotation\nmoyennes_juges = df_psychometrie.groupby('Rater')['Rating'].mean()\nplt.plot(moyennes_juges.index, moyennes_juges.values, color='black', linewidth=4, marker='o', label='Moyenne G\u00e9n\u00e9rale')\n\nplt.title(\"Profils de Cotation Individuelle des Patients \u00e0 Travers les Cliniciens\", fontsize=14, fontweight='bold')\nplt.xlabel(\"\u00c9valuateurs\", fontsize=12, fontweight='bold')\nplt.ylabel(\"Score Attribu\u00e9\", fontsize=12, fontweight='bold')\nplt.legend(loc='lower right', frameon=True)\nplt.grid(True, linestyle=':', alpha=0.6)\nplt.tight_layout()\nplt.show()<\/code><\/pre>\n<h2>12. R\u00e9daction et rapport des r\u00e9sultats selon les normes APA<\/h2>\n<h3>12.1 Standard de formulation acad\u00e9mique des r\u00e9sultats du CCI<\/h3>\n<p>La r\u00e9daction de la section des r\u00e9sultats d&rsquo;un article scientifique doit se conformer scrupuleusement aux exigences \u00e9ditoriales \u00e9dict\u00e9es par le manuel de publication de l&rsquo;<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/apastyle.apa.org\/\">American Psychological Association<\/a> (APA, 7e \u00e9dition). Trop souvent, les manuscrits soumis se contentent d&rsquo;\u00e9noncer un chiffre brut de CCI sans pr\u00e9ciser le mod\u00e8le math\u00e9matique sous-jacent ni expliciter la nature de l&rsquo;accord mesur\u00e9, ce qui rend les r\u00e9sultats scientifiquement impossibles \u00e0 reproduire.<\/p>\n<p>Pour \u00eatre conforme aux standards acad\u00e9miques, toute mention d&rsquo;un coefficient de corr\u00e9lation intraclasse doit imp\u00e9rativement pr\u00e9ciser :<\/p>\n<ul>\n<li>Le mod\u00e8le formel retenu selon la typologie de Shrout et Fleiss (mod\u00e8le 1, 2 ou 3).<\/li>\n<li>Le type de mesure mod\u00e9lis\u00e9 : mesure unique (<em>single measurement<\/em>) ou moyenne de plusieurs mesures (<em>average measurements<\/em>).<\/li>\n<li>L&rsquo;objectif de l&rsquo;analyse : accord absolu (<em>absolute agreement<\/em>) ou coh\u00e9rence relative (<em>consistency<\/em>).<\/li>\n<li>L&rsquo;estimation ponctuelle arrondie \u00e0 deux ou trois d\u00e9cimales.<\/li>\n<li>L&rsquo;intervalle de confiance \u00e0 95 % explicitant ses bornes inf\u00e9rieure et sup\u00e9rieure exactes : <em>IC 95 % [Inf, Sup]<\/em>.<\/li>\n<li>La statistique inf\u00e9rentielle de test <em>F<\/em> accompagn\u00e9e de ses degr\u00e9s de libert\u00e9 complets : <em>F(df1, df2)<\/em>.<\/li>\n<li>La probabilit\u00e9 critique exacte (valeur de <em>p<\/em>), rapport\u00e9e avec pr\u00e9cision sans \u00e9crire \u00ab p = 0.000 \u00bb.<\/li>\n<\/ul>\n<p>Voici deux exemples canoniques de r\u00e9daction acad\u00e9mique rigoureuse r\u00e9pondant point par point aux normes APA :<\/p>\n<p><em>Exemple pour une mesure clinique unique :<\/em> \u00ab La fid\u00e9lit\u00e9 inter-juges a \u00e9t\u00e9 quantifi\u00e9e \u00e0 l&rsquo;aide d&rsquo;un coefficient de corr\u00e9lation intraclasse \u00e0 deux facteurs \u00e0 effets al\u00e9atoires \u00e9valuant l&rsquo;accord absolu pour une mesure individuelle, CCI(2,1). L&rsquo;estimation ponctuelle indique une bonne fid\u00e9lit\u00e9 globale, CCI = .814, avec un intervalle de confiance \u00e0 95 % s&rsquo;\u00e9tendant de .692 \u00e0 .898, F(29, 87) = 18.42, p &lt; .001. La borne inf\u00e9rieure confirmant un niveau de concordance au moins mod\u00e9r\u00e9, l&rsquo;outil peut \u00eatre valid\u00e9 pour une administration par un praticien unique. \u00bb<\/p>\n<p><em>Exemple pour une moyenne d&rsquo;\u00e9valuations :<\/em> \u00ab Pour tester la fid\u00e9lit\u00e9 de la moyenne composite issue du panel des quatre \u00e9valuateurs fixes, un mod\u00e8le \u00e0 effets mixtes \u00e0 deux facteurs portant sur la coh\u00e9rence moyenne, CCI(3,k), a \u00e9t\u00e9 calcul\u00e9. L&rsquo;indice obtenu met en \u00e9vidence une excellente coh\u00e9rence, CCI = .945, IC 95 % [.901, .971], F(29, 87) = 18.25, p &lt; .001, justifiant l&rsquo;agr\u00e9gation des cotations sous forme d&rsquo;un score moyen d&rsquo;\u00e9quipe. \u00bb<\/p>\n<h3>12.2 Tableaux r\u00e9capitulatifs pour publications en psychologie<\/h3>\n<p>Lorsqu&rsquo;un inventaire psychologique comporte plusieurs dimensions cliniques ou sous-\u00e9chelles factorielles, il est pr\u00e9f\u00e9rable de regrouper les indices de fid\u00e9lit\u00e9 au sein d&rsquo;un tableau r\u00e9capitulatif structur\u00e9 selon les canons visuels de l&rsquo;APA (lignes horizontales \u00e9pur\u00e9es en haut, sous les en-t\u00eates et en bas, sans aucun quadrillage vertical).<\/p>\n<p>La biblioth\u00e8que Pandas facilite la mise en forme de ces tableaux synth\u00e9tiques et permet d&rsquo;exporter directement les r\u00e9sultats vers des formats int\u00e9grables dans Microsoft Word ou LaTeX :<\/p>\n<pre><code># Cr\u00e9ation d'un tableau synth\u00e9tique pour plusieurs dimensions psychom\u00e9triques\ntable_synthese_apa = pd.DataFrame({\n    'Sous-\u00c9chelle': ['Sympt\u00f4mes Somatiques', 'Affect D\u00e9pressif', 'Anxi\u00e9t\u00e9 Cognitive', 'Comportements d'\u00c9vitement'],\n    'Mod\u00e8le': ['CCI(2,1)', 'CCI(2,1)', 'CCI(2,1)', 'CCI(2,1)'],\n    'Type d'Accord': ['Absolu', 'Absolu', 'Absolu', 'Absolu'],\n    'CCI': [0.782, 0.845, 0.710, 0.895],\n    'IC 95%': ['[.642, .885]', '[.730, .921]', '[.551, .832]', '[.812, .948]'],\n    'F': [15.34, 22.80, 10.82, 35.12],\n    'ddl1': [29, 29, 29, 29],\n    'ddl2': [87, 87, 87, 87],\n    'p': ['&lt; .001', '&lt; .001', '&lt; .001', '&lt; .001'],\n    'Qualification': ['Bonne', 'Bonne', 'Mod\u00e9r\u00e9e', 'Bonne']\n})\n\n# Exportation directe du tableau au format LaTeX standard APA\ncode_latex_apa = table_synthese_apa.to_latex(\n    index=False,\n    caption=\"Fid\u00e9lit\u00e9 inter-juges des sous-\u00e9chelles de l'Inventaire d'\u00c9valuation Clinique (N = 30)\",\n    label=\"tab:icc_apa\",\n    column_format='lcccccccc'\n)\n\nprint(code_latex_apa)<\/code><\/pre>\n<p>En veillant \u00e0 restituer des r\u00e9sultats m\u00e9thodologiquement transparents, rigoureusement document\u00e9s et directement reproductibles gr\u00e2ce \u00e0 Python, les psychom\u00e9triciens et les chercheurs en sciences humaines contribuent concr\u00e8tement \u00e0 \u00e9lever les standards de robustesse et de reproductibilit\u00e9 de la psychologie scientifique contemporaine.<\/p>\n<h2>R\u00e9f\u00e9rences<\/h2>\n<ul>\n<li>Altman, D. G., &amp; Bland, J. M. (1983). Measurement in medicine: The analysis of method comparison studies. <em>The Statistician<\/em>, 32(3), 307\u2013317. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.2307\/2987937\">https:\/\/doi.org\/10.2307\/2987937<\/a><\/li>\n<li>American Psychological Association. (2020). <em>Publication manual of the American Psychological Association<\/em> (7th ed.). American Psychological Association. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1037\/0000165-000\">https:\/\/doi.org\/10.1037\/0000165-000<\/a><\/li>\n<li>Bland, J. M., &amp; Altman, D. G. (1986). Statistical methods for assessing agreement between two methods of clinical measurement. <em>The Lancet<\/em>, 327(8476), 307\u2013310. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1016\/S0140-6736(86)90837-8\">https:\/\/doi.org\/10.1016\/S0140-6736(86)90837-8<\/a><\/li>\n<li>Fisher, R. A. (1925). <em>Statistical methods for research workers<\/em>. Oliver and Boyd.<\/li>\n<li>Fleiss, J. L., Levin, B., &amp; Paik, M. C. (2003). <em>Statistical methods for rates and proportions<\/em> (3rd ed.). John Wiley &amp; Sons. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1002\/0471445428\">https:\/\/doi.org\/10.1002\/0471445428<\/a><\/li>\n<li>Koo, T. K., &amp; Li, M. Y. (2016). A guideline of selecting and reporting intraclass correlation coefficients for reliability research. <em>Journal of Chiropractic Medicine<\/em>, 15(2), 155\u2013163. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1016\/j.jcm.2016.02.012\">https:\/\/doi.org\/10.1016\/j.jcm.2016.02.012<\/a><\/li>\n<li>Lord, F. M., &amp; Novick, M. R. (1968). <em>Statistical theories of mental test scores<\/em>. Addison-Wesley.<\/li>\n<li>McGraw, K. O., &amp; Wong, S. P. (1996). Forming inferences about some intraclass correlation coefficients. <em>Psychological Methods<\/em>, 1(1), 30\u201346. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1037\/1082-989X.1.1.30\">https:\/\/doi.org\/10.1037\/1082-989X.1.1.30<\/a><\/li>\n<li>McKinney, W. (2010). Data structures for statistical computing in Python. <em>Proceedings of the 9th Python in Science Conference<\/em>, 445, 51\u201356. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.25080\/Majora-92bf1924-008\">https:\/\/doi.org\/10.25080\/Majora-92bf1924-008<\/a><\/li>\n<li>Perinetti, G. (2018). StaTips part IV: Selection, calculation and interpretation of the intraclass correlation coefficient for agreement-reliability studies. <em>South European Journal of Orthodontics and Dentofacial Research<\/em>, 5(1), 3\u20135. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.5937\/sejodr5-17724\">https:\/\/doi.org\/10.5937\/sejodr5-17724<\/a><\/li>\n<li>Seabold, S., &amp; Perktold, J. (2010). Statsmodels: Econometric and statistical modeling with Python. <em>Proceedings of the 9th Python in Science Conference<\/em>, 57, 61. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.25080\/Majora-92bf1924-011\">https:\/\/doi.org\/10.25080\/Majora-92bf1924-011<\/a><\/li>\n<li>Shrout, P. E., &amp; Fleiss, J. L. (1979). Intraclass correlations: Uses in assessing rater reliability. <em>Psychological Bulletin<\/em>, 86(2), 420\u2013428. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1037\/0033-2909.86.2.420\">https:\/\/doi.org\/10.1037\/0033-2909.86.2.420<\/a><\/li>\n<li>Vallat, R. (2018). Pingouin: Statistics in Python. <em>Journal of Open Source Software<\/em>, 3(31), 1026. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.21105\/joss.01026\">https:\/\/doi.org\/10.21105\/joss.01026<\/a><\/li>\n<li>Wickham, H. (2014). Tidy data. <em>Journal of Statistical Software<\/em>, 59(10), 1\u201323. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.18637\/jss.v059.i10\">https:\/\/doi.org\/10.18637\/jss.v059.i10<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Guide complet pour calculer et interpr\u00e9ter le coefficient de corr\u00e9lation intraclasse (CCI) en Python avec Pingouin dans un contexte de recherche psychologique.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","categories":[2269,2,2464],"tags":[8900,5306,5010,16,2468],"class_list":["post-7519","psych_stat","type-psych_stat","status-publish","hentry","category-methodes-quantitatives","category-psychometrie","category-science-des-donnees","tag-coefficient-de-correlation-intraclasse","tag-fidelite-inter-juges","tag-pingouin","tag-psychometrie","tag-python"],"_links":{"self":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat\/7519","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat"}],"about":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/types\/psych_stat"}],"author":[{"embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7519"}],"version-history":[{"count":0,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat\/7519\/revisions"}],"wp:attachment":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7519"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7519"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7519"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}