{"id":4155,"date":"2026-09-11T06:17:05","date_gmt":"2026-09-11T06:17:05","guid":{"rendered":"http:\/\/french.arabpsychology.com\/statistics\/comment-effectuer-le-test-de-dunn-en-python\/"},"modified":"2026-09-11T06:17:05","modified_gmt":"2026-09-11T06:17:05","slug":"comment-effectuer-le-test-de-dunn-en-python","status":"publish","type":"psych_stat","link":"https:\/\/french.arabpsychology.com\/?psych_stat=comment-effectuer-le-test-de-dunn-en-python","title":{"rendered":"Comment effectuer le test de Dunn en Python"},"content":{"rendered":"<p>Dans le domaine de l&rsquo;inf\u00e9rence statistique moderne, l&rsquo;analyse comparative de plusieurs \u00e9chantillons ind\u00e9pendants constitue l&rsquo;un des piliers m\u00e9thodologiques les plus sollicit\u00e9s en sciences biom\u00e9dicales, en psychologie, en neurosciences et en \u00e9conom\u00e9trie appliqu\u00e9e. Lorsque les distributions empiriques violent les postulats stricts de normalit\u00e9 gaussienne ou d&rsquo;homog\u00e9n\u00e9it\u00e9 des variances intrins\u00e8ques \u00e0 l&rsquo;analyse de variance classique (ANOVA de Fisher), les chercheurs se tournent vers les m\u00e9thodes non param\u00e9triques. Le test d&rsquo;analyse de variance \u00e0 un facteur de Kruskal-Wallis s&rsquo;impose alors comme l&rsquo;alternative par excellence pour tester l&rsquo;hypoth\u00e8se nulle selon laquelle plusieurs populations partagent une distribution stochastique identique. Toutefois, ce test dit \u00ab omnibus \u00bb se heurte \u00e0 une limite intrins\u00e8que majeure : il se borne \u00e0 d\u00e9tecter l&rsquo;existence d&rsquo;une h\u00e9t\u00e9rog\u00e9n\u00e9it\u00e9 globale au sein du syst\u00e8me exp\u00e9rimental sans jamais pr\u00e9ciser quelles paires de sous-groupes se diff\u00e9rencient mutuellement.<\/p>\n<p>L&rsquo;identification rigoureuse de ces disparit\u00e9s intergroupes impose le recours \u00e0 une proc\u00e9dure d&rsquo;analyse post-hoc sp\u00e9cialis\u00e9e, capable de pr\u00e9server la structure distributionnelle des donn\u00e9es tout en jugulant l&rsquo;inflation probabiliste de l&rsquo;erreur de type I inh\u00e9rente \u00e0 la multiplication des tests d&rsquo;hypoth\u00e8ses. C&rsquo;est pr\u00e9cis\u00e9ment \u00e0 cette crois\u00e9e des exigences statistiques que s&rsquo;illustre le test propos\u00e9 par la biostatisticienne <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1080\/01621459.1964.10480708\">Olive Jean Dunn en 1964<\/a>. Con\u00e7u express\u00e9ment pour faire suite \u00e0 un test de Kruskal-Wallis significatif, le test de Dunn repose sur l&rsquo;\u00e9valuation des \u00e9carts entre les rangs moyens calcul\u00e9s \u00e0 l&rsquo;\u00e9chelle globale de l&rsquo;\u00e9chantillon group\u00e9, fournissant un cadre math\u00e9matiquement coh\u00e9rent avec la statistique globale initiale.<\/p>\n<p>Alors que les progiciels statistiques propri\u00e9taires tels que SPSS, SAS ou Stata ont longtemps domin\u00e9 la pratique analytique en milieu acad\u00e9mique, le paradigme de la recherche ouverte et reproductible a catalys\u00e9 une adoption massive de l&rsquo;\u00e9cosyst\u00e8me Python pour le traitement des donn\u00e9es empiriques. Gr\u00e2ce \u00e0 des biblioth\u00e8ques hautement sp\u00e9cialis\u00e9es telles que SciPy, Pandas et particuli\u00e8rement scikit-posthocs, l&rsquo;ex\u00e9cution computationnelle du test de Dunn b\u00e9n\u00e9ficie aujourd&rsquo;hui d&rsquo;une puissance algorithmique, d&rsquo;une flexibilit\u00e9 d&rsquo;ajustement des valeurs critiques et d&rsquo;une int\u00e9gration graphique sans pr\u00e9c\u00e9dent. Ce guide m\u00e9thodologique exhaustif a pour vocation d&rsquo;exposer de mani\u00e8re exhaustive les fondements math\u00e9matiques, les crit\u00e8res de d\u00e9cision \u00e9pist\u00e9mologiques, les protocoles de programmation en Python ainsi que les normes de restitution acad\u00e9mique du test de Dunn, fournissant ainsi aux chercheurs et analystes de donn\u00e9es un cadre de r\u00e9f\u00e9rence rigoureux et p\u00e9renne.<\/p>\n<h2>1. Introduction aux tests post-hoc non param\u00e9triques et au test de Dunn<\/h2>\n<h3>1.1 Fondements th\u00e9oriques des analyses post-hoc apr\u00e8s Kruskal-Wallis<\/h3>\n<p>L&rsquo;inf\u00e9rence statistique sur donn\u00e9es quantitatives repose traditionnellement sur la distinction fondamentale entre les approches param\u00e9triques, qui postulent une forme fonctionnelle a priori de la distribution sous-jacente des populations sources, et les approches non param\u00e9triques, qui s&rsquo;affranchissent de ces contraintes de mod\u00e9lisation en substituant aux grandeurs m\u00e9triques brutes leurs statistiques de rangs relatives. Lorsqu&rsquo;une exp\u00e9rience scientifique implique trois conditions ind\u00e9pendantes ou davantage, la strat\u00e9gie inf\u00e9rentielle canonique consiste \u00e0 soumettre les donn\u00e9es \u00e0 un test omnibus. Le test de Kruskal-Wallis joue ce r\u00f4le pivot dans le paradigme non param\u00e9trique : il \u00e9value si les fonctions de r\u00e9partition empiriques des <span class=\"arabpsy-math-inline\" data-latex=\"k\">$k$<\/span> groupes proviennent d&rsquo;une population parente commune en comparant la variance intergroupe des rangs moyens \u00e0 la variance th\u00e9orique attendue sous l&rsquo;hypoth\u00e8se nulle.<\/p>\n<p>N\u00e9anmoins, la puissance de rejet du test de Kruskal-Wallis s&rsquo;accompagne d&rsquo;une c\u00e9cit\u00e9 directionnelle compl\u00e8te. Une valeur p inf\u00e9rieure au seuil critique conventionnel indique avec certitude qu&rsquo;au moins une population domine stochastiquement une autre, mais elle ne fournit aucun moyen formel d&rsquo;isoler la ou les paires sp\u00e9cifiques responsables de ce d\u00e9s\u00e9quilibre statistique global. Tenter de d\u00e9duire la structure sous-jacente des diff\u00e9rences \u00e0 partir de la simple inspection visuelle des m\u00e9dianes \u00e9chantillonnales constitue une grave faute m\u00e9thodologique, car les fluctuations d&rsquo;\u00e9chantillonnage et les disparit\u00e9s d&rsquo;effectifs faussent l&rsquo;intuition descriptive. Il devient d\u00e8s lors math\u00e9matiquement indispensable de d\u00e9ployer des tests d&rsquo;hypoth\u00e8ses secondaires cibl\u00e9s sur les \u00e9carts de rangs moyens, calibr\u00e9s pour contr\u00f4ler le risque de faux positifs.<\/p>\n<p>Le positionnement \u00e9pist\u00e9mologique du test de Dunn face aux contraintes non gaussiennes r\u00e9pond \u00e0 cette exigence d&rsquo;alignement th\u00e9orique. Contrairement aux approches post-hoc d\u00e9riv\u00e9es de la th\u00e9orie des mod\u00e8les lin\u00e9aires g\u00e9n\u00e9raux (telles que le test HSD de Tukey ou le test de Scheff\u00e9), le test de Dunn op\u00e8re exclusivement dans l&rsquo;espace topologique des rangs combin\u00e9s. Il respecte fid\u00e8lement la sp\u00e9cificit\u00e9 m\u00e9thodologique de l&rsquo;analyse non param\u00e9trique en recherche quantitative, qui refuse d&rsquo;attribuer une signification probabiliste \u00e0 des moyennes arithm\u00e9tiques lorsque les donn\u00e9es sont asym\u00e9triques, plafonn\u00e9es ou issues d&rsquo;\u00e9chelles de mesure ordinales o\u00f9 les intervalles m\u00e9triques ne poss\u00e8dent aucune \u00e9quidistance d\u00e9montr\u00e9e.<\/p>\n<h3>1.2 Pertinence et cas d&rsquo;usage en psychologie et neurosciences<\/h3>\n<p>Les sciences du comportement et les neurosciences cognitives constituent des champs d&rsquo;application privil\u00e9gi\u00e9s pour les analyses non param\u00e9triques par rangs. La psychom\u00e9trie quantitative manipule quotidiennement des inventaires cliniques, des questionnaires de personnalit\u00e9 et des batteries d&rsquo;\u00e9valuation de l&rsquo;humeur calibr\u00e9s sur des \u00e9chelles de type Likert \u00e0 cinq, sept ou dix points. Attribuer des propri\u00e9t\u00e9s d&rsquo;intervalles stricts \u00e0 de tels indicateurs psychologiques rel\u00e8ve d&rsquo;une hypoth\u00e8se excessivement hardie : la distance subjective s\u00e9parant un score de \u00ab Pas du tout d&rsquo;accord \u00bb \u00e0 \u00ab Mod\u00e9r\u00e9ment d&rsquo;accord \u00bb n&rsquo;est en rien comparable \u00e0 celle s\u00e9parant \u00ab Tout \u00e0 fait d&rsquo;accord \u00bb d&rsquo;un stade sup\u00e9rieur fictif. Le test de Dunn fournit le cadre idoine pour comparer les profils de s\u00e9v\u00e9rit\u00e9 symptomatique sans imposer de lin\u00e9arit\u00e9 artificielle aux construits psychologiques latents.<\/p>\n<p>Par ailleurs, la recherche neurobiologique et clinique contemporaine se heurte r\u00e9guli\u00e8rement \u00e0 la contrainte de petits \u00e9chantillons d&rsquo;individus, particuli\u00e8rement lors de l&rsquo;\u00e9tude de pathologies neurod\u00e9g\u00e9n\u00e9ratives rares, de l\u00e9sions c\u00e9r\u00e9brales focalis\u00e9es ou d&rsquo;essais pharmacologiques de phase pr\u00e9coce impliquant des primates non humains ou des rongeurs g\u00e9n\u00e9tiquement modifi\u00e9s. Ces configurations exp\u00e9rimentales induisent fr\u00e9quemment une asym\u00e9trie de distribution tr\u00e8s prononc\u00e9e ainsi qu&rsquo;une h\u00e9t\u00e9rosc\u00e9dasticit\u00e9 structurelle que le th\u00e9or\u00e8me central limite ne peut compenser en raison d&rsquo;effectifs restreints (souvent compris entre six et douze observations par groupe). L&rsquo;\u00e9valuation de protocoles d&rsquo;intervention comportementale comparant, par exemple, un groupe recevant une th\u00e9rapie d&rsquo;exposition, un groupe soumis \u00e0 un entra\u00eenement attentionnel informatis\u00e9 et un groupe contr\u00f4le sur liste d&rsquo;attente, n\u00e9cessite une analyse robuste capable de tol\u00e9rer de tels \u00e9carts morphologiques.<\/p>\n<p>Enfin, les paradigmes de chronom\u00e9trie mentale fournissent une illustration saisissante de l&rsquo;utilit\u00e9 du test de Dunn. Les donn\u00e9es de temps de r\u00e9action (TR) enregistr\u00e9es lors de t\u00e2ches de d\u00e9cision lexicale, d&rsquo;indi\u00e7age spatial de Posner ou de discrimination visuelle rapide pr\u00e9sentent une distribution invariablement tronqu\u00e9e \u00e0 gauche par les limites physiologiques de la conduction neuronale et \u00e9tir\u00e9e \u00e0 droite par des latences cognitives atypiques ou des fluctuations d&rsquo;attention. L&rsquo;exclusion arbitraire des valeurs extr\u00eames afin de normaliser artificiellement la distribution expose le chercheur au biais de confirmation ; le recours au test de Dunn permet de pr\u00e9server l&rsquo;int\u00e9grit\u00e9 de l&rsquo;\u00e9chantillon complet tout en garantissant une estimation non biais\u00e9e des contrastes de performance motrice et cognitive entre conditions de stimulation.<\/p>\n<h3>1.3 Comparaison critique entre Dunn et les tests de Mann-Whitney par paires<\/h3>\n<p>Face au d\u00e9fi des comparaisons multiples cons\u00e9cutives \u00e0 un test de Kruskal-Wallis, une pratique erron\u00e9e mais tristement r\u00e9pandue dans la litt\u00e9rature scientifique consiste \u00e0 ex\u00e9cuter une s\u00e9rie de tests U de Mann-Whitney (ou tests de la somme des rangs de Wilcoxon) distincts pour chaque dyade possible, en y associant une simple correction de Bonferroni. Cette d\u00e9marche repose sur un contresens alg\u00e9brique fondamental : lors de l&rsquo;ex\u00e9cution d&rsquo;un test de Mann-Whitney entre deux sous-groupes <span class=\"arabpsy-math-inline\" data-latex=\"A\">$A$<\/span> et <span class=\"arabpsy-math-inline\" data-latex=\"B\">$B$<\/span>, l&rsquo;ensemble des donn\u00e9es des autres groupes (<span class=\"arabpsy-math-inline\" data-latex=\"C\">$C$<\/span>, <span class=\"arabpsy-math-inline\" data-latex=\"D\">$D$<\/span>, etc.) est exclu de l&rsquo;algorithme, ce qui oblige la proc\u00e9dure \u00e0 recalculer une assignation de rangs locale et isol\u00e9e, propre \u00e0 cette seule paire restreinte. Ce r\u00e9arrangement dynamique d\u00e9truit la coh\u00e9rence topologique globale qui avait servi \u00e0 rejeter l&rsquo;hypoth\u00e8se nulle lors du test omnibus de Kruskal-Wallis.<\/p>\n<p>\u00c0 l&rsquo;inverse, la formulation originale de Dunn (1964) calcule la statistique de contraste en conservant la structure d&rsquo;ordonnancement \u00e9tablie sur la totalit\u00e9 des <span class=\"arabpsy-math-inline\" data-latex=\"N\">$N$<\/span> observations mutualis\u00e9es au sein de l&rsquo;exp\u00e9rience. Chaque sujet conserve son rang global, garantissant une parfaite consistance math\u00e9matique entre l&rsquo;inf\u00e9rence omnibus et l&rsquo;inf\u00e9rence par paires. Comme le souligne la litt\u00e9rature m\u00e9thodologique sp\u00e9cialis\u00e9e, dissocier la phase post-hoc de la matrice globale des rangs produit des inversions de classement paradoxales o\u00f9 la hi\u00e9rarchie stochastique locale contredit l&rsquo;ordre \u00e9tabli au niveau de la population consolid\u00e9e.<\/p>\n<p>Sur le plan de l&rsquo;efficacit\u00e9 asymptotique et du contr\u00f4le du risque d&rsquo;erreur, le test de Dunn tire parti de l&rsquo;estimation mutualis\u00e9e de la variance calcul\u00e9e sur l&rsquo;ensemble de l&rsquo;\u00e9chantillon \u00e9largi, conf\u00e9rant \u00e0 la statistique de d\u00e9cision une plus grande stabilit\u00e9 param\u00e9trique en pr\u00e9sence de d\u00e9s\u00e9quilibres d&rsquo;effectifs locaux. Les recommandations m\u00e9thodologiques unanimes de la communaut\u00e9 biostatistique pr\u00e9conisent l&rsquo;exclusion syst\u00e9matique des batteries de tests de Mann-Whitney non coordonn\u00e9es au profit de la proc\u00e9dure standardis\u00e9e de Dunn, consid\u00e9r\u00e9e comme le prolongement th\u00e9orique direct, naturel et exact de la statistique de Kruskal-Wallis.<\/p>\n<h2>2. Fondements math\u00e9matiques et statistiques du test de Dunn<\/h2>\n<h3>2.1 Algorithme de calcul des sommes et moyennes des rangs<\/h3>\n<p>Pour appr\u00e9hender l&rsquo;architecture formelle du test de Dunn, il convient d&rsquo;expliciter son algorithme de calcul pas \u00e0 pas. Soit un ensemble exp\u00e9rimental comportant <span class=\"arabpsy-math-inline\" data-latex=\"k\">$k$<\/span> groupes ind\u00e9pendants, chaque groupe <span class=\"arabpsy-math-inline\" data-latex=\"i\">$i$<\/span> (pour <span class=\"arabpsy-math-inline\" data-latex=\"i in {1, 2, dots, k}\">$i in {1, 2, dots, k}$<\/span>) poss\u00e9dant un effectif d\u00e9sign\u00e9 par <span class=\"arabpsy-math-inline\" data-latex=\"n_i\">$n_i$<\/span>. L&rsquo;effectif total agr\u00e9g\u00e9 de l&rsquo;\u00e9tude est not\u00e9 <span class=\"arabpsy-math-inline\" data-latex=\"N = \\sum_{i=1}^k n_i\">$N = \\sum_{i=1}^k n_i$<\/span>. La premi\u00e8re \u00e9tape algorithmique consiste \u00e0 regrouper l&rsquo;int\u00e9gralit\u00e9 des <span class=\"arabpsy-math-inline\" data-latex=\"N\">$N$<\/span> observations scalaires dans un unique vecteur conjoint, sans consid\u00e9ration de leur appartenance factorielle d&rsquo;origine, puis \u00e0 trier ce vecteur de mani\u00e8re strictement croissante.<\/p>\n<p>Un rang num\u00e9rique entier compris entre $1$ (attribu\u00e9 \u00e0 l&rsquo;observation pr\u00e9sentant la plus faible magnitude) et <span class=\"arabpsy-math-inline\" data-latex=\"N\">$N$<\/span> (attribu\u00e9 \u00e0 la valeur la plus \u00e9lev\u00e9e) est ensuite allou\u00e9 \u00e0 chaque donn\u00e9e. Une fois cette op\u00e9ration d&rsquo;indexation matricielle achev\u00e9e, les observations sont r\u00e9assign\u00e9es \u00e0 leurs sous-groupes exp\u00e9rimentaux d&rsquo;origine tout en conservant leur \u00e9tiquette de rang global <span class=\"arabpsy-math-inline\" data-latex=\"R_{ij}\">$R_{ij}$<\/span>, d\u00e9signant le rang attribu\u00e9 au <span class=\"arabpsy-math-inline\" data-latex=\"j\">$j$<\/span>-i\u00e8me individu du <span class=\"arabpsy-math-inline\" data-latex=\"i\">$i$<\/span>-i\u00e8me groupe. La somme des rangs pour un groupe d\u00e9termin\u00e9 s&rsquo;\u00e9tablit formellement comme :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"R_i = \\sum_{j=1}^{n_i} R_{ij}\">$$R_i = \\sum_{j=1}^{n_i} R_{ij}$$<\/span><\/p>\n<p>\u00c0 partir de cette somme factorielle, on calcule le rang moyen du sous-groupe consid\u00e9r\u00e9, grandeur centrale de toute la th\u00e9orisation non param\u00e9trique :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"\\bar{R}_i = \\frac{R_i}{n_i}\">$$\\bar{R}_i = \\frac{R_i}{n_i}$$<\/span><\/p>\n<p>La statistique diff\u00e9rentielle au c\u0153ur du test de Dunn pour \u00e9valuer l&rsquo;\u00e9cart s\u00e9parant deux groupes distincts arbitraires <span class=\"arabpsy-math-inline\" data-latex=\"i\">$i$<\/span> et <span class=\"arabpsy-math-inline\" data-latex=\"j\">$j$<\/span> repose directement sur la valeur absolue de la diff\u00e9rence de leurs rangs moyens respectifs :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"D_{ij} = |\\bar{R}_i - \\bar{R}_j|\">$$D_{ij} = |\\bar{R}_i &#8211; \\bar{R}_j|$$<\/span><\/p>\n<p>Sous l&rsquo;hypoth\u00e8se nulle fondamentale <span class=\"arabpsy-math-inline\" data-latex=\"H_0\">$H_0$<\/span> stipulant que toutes les observations sont issues d&rsquo;une m\u00eame distribution continue sous-jacente continue et homog\u00e8ne, la distribution d&rsquo;\u00e9chantillonnage de cette diff\u00e9rence de rangs moyens admet une esp\u00e9rance math\u00e9matique strictement nulle, <span class=\"arabpsy-math-inline\" data-latex=\"E(D_{ij}) = 0\">$E(D_{ij}) = 0$<\/span>, et converge asymptotiquement vers une structure stochastique pr\u00e9visible r\u00e9gie par les lois limites combinatoires.<\/p>\n<h3>2.2 Distribution asymptotique z et calcul de l&rsquo;erreur type<\/h3>\n<p>Pour convertir la diff\u00e9rence arithm\u00e9tique <span class=\"arabpsy-math-inline\" data-latex=\"D_{ij}\">$D_{ij}$<\/span> en une m\u00e9trique de d\u00e9cision standardis\u00e9e, le test de Dunn divise cet \u00e9cart brut par l&rsquo;erreur type th\u00e9orique de la diff\u00e9rence des rangs moyens sous l&rsquo;hypoth\u00e8se nulle. La variance th\u00e9orique d&rsquo;une observation de rang tir\u00e9e al\u00e9atoirement au sein d&rsquo;un ensemble de <span class=\"arabpsy-math-inline\" data-latex=\"N\">$N$<\/span> \u00e9l\u00e9ments distincts sans ex \u00e6quo est d\u00e9finie par <span class=\"arabpsy-math-inline\" data-latex=\"\\sigma^2 = \\frac{N(N+1)}{12}\">$\\sigma^2 = \\frac{N(N+1)}{12}$<\/span>. En vertu de l&rsquo;ind\u00e9pendance mutuelle postul\u00e9e entre les \u00e9chantillons exp\u00e9rimentaux, la variance th\u00e9orique associ\u00e9e \u00e0 l&rsquo;\u00e9cart s\u00e9parant les estimateurs <span class=\"arabpsy-math-inline\" data-latex=\"\\bar{R}_i\">$\\bar{R}_i$<\/span> et <span class=\"arabpsy-math-inline\" data-latex=\"\\bar{R}_j\">$\\bar{R}_j$<\/span> correspond \u00e0 la somme de leurs variances individuelles respectives :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"\\sigma^2_{ij} = V(\\bar{R}_i - \\bar{R}_j) = \\left( \\frac{N(N + 1)}{12} \\right) \\left( \\frac{1}{n_i} + \\frac{1}{n_j} \\right)\">$$\\sigma^2_{ij} = V(\\bar{R}_i &#8211; \\bar{R}_j) = \\left( \\frac{N(N + 1)}{12} \\right) \\left( \\frac{1}{n_i} + \\frac{1}{n_j} \\right)$$<\/span><\/p>\n<p>L&rsquo;erreur type formelle, not\u00e9e <span class=\"arabpsy-math-inline\" data-latex=\"SE_{ij}\">$SE_{ij}$<\/span>, s&rsquo;obtient directement par extraction de la racine carr\u00e9e de cette variance combin\u00e9e :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"SE_{ij} = \\sqrt{\\left( \\frac{N(N + 1)}{12} \\right) \\left( \\frac{1}{n_i} + \\frac{1}{n_j} \\right)}\">$$SE_{ij} = \\sqrt{\\left( \\frac{N(N + 1)}{12} \\right) \\left( \\frac{1}{n_i} + \\frac{1}{n_j} \\right)}$$<\/span><\/p>\n<p>La statistique de test standardis\u00e9e de Dunn, d\u00e9sign\u00e9e universellement par la lettre <span class=\"arabpsy-math-inline\" data-latex=\"z\">$z$<\/span>, se formule d\u00e8s lors par le quotient suivant :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"z = \\frac{\\bar{R}_i - \\bar{R}_j}{\\sqrt{\\left( \\frac{N(N + 1)}{12} \\right) \\left( \\frac{1}{n_i} + \\frac{1}{n_j} \\right)}}\">$$z = \\frac{\\bar{R}_i &#8211; \\bar{R}_j}{\\sqrt{\\left( \\frac{N(N + 1)}{12} \\right) \\left( \\frac{1}{n_i} + \\frac{1}{n_j} \\right)}}$$<\/span><\/p>\n<p>En vertu des th\u00e9or\u00e8mes limites asymptotiques r\u00e9gissant les statistiques d&rsquo;ordre, \u00e0 mesure que la taille d&rsquo;\u00e9chantillon globale <span class=\"arabpsy-math-inline\" data-latex=\"N\">$N$<\/span> cro\u00eet, la variable al\u00e9atoire <span class=\"arabpsy-math-inline\" data-latex=\"z\">$z$<\/span> converge en loi vers une distribution normale centr\u00e9e r\u00e9duite standard <span class=\"arabpsy-math-inline\" data-latex=\"\\mathcal{N}(0, 1)\">$\\mathcal{N}(0, 1)$<\/span>. Il appara\u00eet clairement dans cette formulation que l&rsquo;erreur type s&rsquo;ajuste dynamiquement aux effectifs partiels <span class=\"arabpsy-math-inline\" data-latex=\"n_i\">$n_i$<\/span> et <span class=\"arabpsy-math-inline\" data-latex=\"n_j\">$n_j$<\/span>. Une disparit\u00e9 structurelle dans la distribution des effectifs n&rsquo;invalide pas le calcul, mais augmente proportionnellement l&rsquo;erreur type associ\u00e9e aux contrastes impliquant des groupes minoritaires, pr\u00e9servant ainsi la rigueur inf\u00e9rentielle contre les faux artefacts statistiques g\u00e9n\u00e9r\u00e9s par une fausse pr\u00e9cision d&rsquo;\u00e9chantillonnage.<\/p>\n<h3>2.3 Traitement rigoureux des ex \u00e6quo (rangs li\u00e9s)<\/h3>\n<p>L&rsquo;id\u00e9al th\u00e9orique d&rsquo;une variable quantitative parfaitement continue implique une probabilit\u00e9 nulle d&rsquo;observer deux valeurs rigoureusement identiques. Cependant, dans la pratique empirique de la recherche \u2014 et tout particuli\u00e8rement lors du recueil de donn\u00e9es discr\u00e8tes ou de scores psychom\u00e9triques calibr\u00e9s sur des \u00e9chelles enti\u00e8res \u2014, la pr\u00e9sence d&rsquo;ex \u00e6quo (rangs li\u00e9s ou <em>ties<\/em>) s&rsquo;av\u00e8re omnipr\u00e9sente. Ignorer la pr\u00e9sence de donn\u00e9es identiques alt\u00e9rerait le calcul de la variance combin\u00e9e des rangs en surestimant artificiellement la dispersion stochastique th\u00e9orique.<\/p>\n<p>Le traitement math\u00e9matique canonique des ex \u00e6quo repose sur le protocole des rangs moyens (<em>mid-ranks<\/em>). Lorsque plusieurs observations partagent une valeur m\u00e9trique rigoureusement identique, le protocole algorithmique leur attribue \u00e0 chacune la moyenne arithm\u00e9tique des positions de rangs contigu\u00ebs qu&rsquo;elles auraient occup\u00e9es si elles avaient pr\u00e9sent\u00e9 une variation infinit\u00e9simale. Par exemple, si trois observations se disputent les positions ordinales 4, 5 et 6, le rang moyen attribu\u00e9 uniform\u00e9ment \u00e0 ces trois observations s&rsquo;\u00e9tablit \u00e0 <span class=\"arabpsy-math-inline\" data-latex=\"(4 + 5 + 6) \/ 3 = 5\">$(4 + 5 + 6) \/ 3 = 5$<\/span>.<\/p>\n<p>Cette condensation artificielle de la variabilit\u00e9 impose l&rsquo;application d&rsquo;un facteur de correction formel \u00e0 l&rsquo;expression de la variance sous hypoth\u00e8se nulle. Si l&rsquo;on recense <span class=\"arabpsy-math-inline\" data-latex=\"m\">$m$<\/span> groupes distincts d&rsquo;ex \u00e6quo, chaque groupe <span class=\"arabpsy-math-inline\" data-latex=\"e\">$e$<\/span> (pour <span class=\"arabpsy-math-inline\" data-latex=\"e in {1, 2, dots, m}\">$e in {1, 2, dots, m}$<\/span>) contenant <span class=\"arabpsy-math-inline\" data-latex=\"t_e\">$t_e$<\/span> observations mutuellement identiques, la variance corrig\u00e9e de l&rsquo;erreur type s&rsquo;\u00e9nonce selon l&rsquo;expression :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"\\sigma^2_{corrigee} = \\left[ \\frac{N(N + 1)}{12} - \\frac{\\sum_{e=1}^m (t_e^3 - t_e)}{12(N - 1)} \\right] \\left( \\frac{1}{n_i} + \\frac{1}{n_j} \\right)\">$$\\sigma^2_{corrigee} = \\left[ \\frac{N(N + 1)}{12} &#8211; \\frac{\\sum_{e=1}^m (t_e^3 &#8211; t_e)}{12(N &#8211; 1)} \\right] \\left( \\frac{1}{n_i} + \\frac{1}{n_j} \\right)$$<\/span><\/p>\n<p>Le d\u00e9nominateur de la statistique <span class=\"arabpsy-math-inline\" data-latex=\"z\">$z$<\/span> incorpore directement ce coefficient r\u00e9ducteur, r\u00e9duisant l&rsquo;erreur type estim\u00e9e et augmentant l\u00e9g\u00e8rement la valeur absolue de la statistique <span class=\"arabpsy-math-inline\" data-latex=\"z\">$z$<\/span>. Dans les jeux de donn\u00e9es caract\u00e9ris\u00e9s par une saturation massive d&rsquo;ex \u00e6quo (par exemple un \u00e9chantillon psychologique o\u00f9 60 % des sujets obtiennent la note maximale \u00e0 un test de performance cognitive), l&rsquo;omission de cette correction computationnelle induirait un accroissement fallacieux de l&rsquo;erreur de type II en masquant des contrastes r\u00e9els sous une variance th\u00e9orique surdimensionn\u00e9e.<\/p>\n<h2>3. Le probl\u00e8me des comparaisons multiples et m\u00e9thodes d&rsquo;ajustement<\/h2>\n<h3>3.1 Inflation de l&rsquo;erreur de type I (taux d&rsquo;erreur par famille)<\/h3>\n<p>L&rsquo;exploration analytique des diff\u00e9rences existant entre <span class=\"arabpsy-math-inline\" data-latex=\"k\">$k$<\/span> sous-groupes exp\u00e9rimentaux implique la r\u00e9alisation d&rsquo;un ensemble combinatoire de comparaisons par paires distinctes. Le nombre total de contrastes dyadiques non redondants, traditionnellement not\u00e9 <span class=\"arabpsy-math-inline\" data-latex=\"C\">$C$<\/span>, se d\u00e9termine rigoureusement par le coefficient binomial :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"C = \\binom{k}{2} = \\frac{k(k - 1)}{2}\">$$C = \\binom{k}{2} = \\frac{k(k &#8211; 1)}{2}$$<\/span><\/p>\n<p>Pour un protocole exp\u00e9rimental modeste impliquant <span class=\"arabpsy-math-inline\" data-latex=\"k = 3\">$k = 3$<\/span> groupes, le nombre de comparaisons s&rsquo;\u00e9tablit \u00e0 <span class=\"arabpsy-math-inline\" data-latex=\"C = 3\">$C = 3$<\/span>. D\u00e8s lors que le design s&rsquo;\u00e9tend \u00e0 <span class=\"arabpsy-math-inline\" data-latex=\"k = 5\">$k = 5$<\/span> groupes, ce chiffre grimpe \u00e0 <span class=\"arabpsy-math-inline\" data-latex=\"C = 10\">$C = 10$<\/span>, pour atteindre <span class=\"arabpsy-math-inline\" data-latex=\"C = 45\">$C = 45$<\/span> lorsque <span class=\"arabpsy-math-inline\" data-latex=\"k = 10\">$k = 10$<\/span>. Si l&rsquo;on teste chacune de ces hypoth\u00e8ses partielles au seuil de significativit\u00e9 conventionnel univari\u00e9 fix\u00e9 \u00e0 <span class=\"arabpsy-math-inline\" data-latex=\"\\alpha = 0{,}05\">$\\alpha = 0{,}05$<\/span>, on s&rsquo;expose imm\u00e9diatement au ph\u00e9nom\u00e8ne d\u00e9vastateur de l&rsquo;inflation de l&rsquo;erreur de type I globale, d\u00e9sign\u00e9 sous le vocable technique de taux d&rsquo;erreur par famille (<em>Family-Wise Error Rate<\/em> ou FWER).<\/p>\n<p>Sous l&rsquo;hypoth\u00e8se nulle conjointe globale o\u00f9 l&rsquo;ensemble des populations proviendrait d&rsquo;une m\u00eame distribution parente, et en postulant de mani\u00e8re simplificatrice l&rsquo;ind\u00e9pendance stochastique des tests, la probabilit\u00e9 d&rsquo;observer au moins un rejet \u00e0 tort (un faux positif) sur la famille globale des <span class=\"arabpsy-math-inline\" data-latex=\"C\">$C$<\/span> tests s&rsquo;exprime math\u00e9matiquement par la formule probabiliste :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"\\alpha_{global} = FWER = 1 - (1 - \\alpha)^C\">$$\\alpha_{global} = FWER = 1 &#8211; (1 &#8211; \\alpha)^C$$<\/span><\/p>\n<p>Ainsi, pour un dispositif exp\u00e9rimental comportant 5 groupes ind\u00e9pendants (<span class=\"arabpsy-math-inline\" data-latex=\"C = 10\">$C = 10$<\/span> contrastes) test\u00e9s \u00e0 un seuil unitaire de 0,05, la probabilit\u00e9 globale d&rsquo;enregistrer au minimum une d\u00e9couverte illusoire s&rsquo;\u00e9l\u00e8ve \u00e0 <span class=\"arabpsy-math-inline\" data-latex=\"1 - (1 - 0{,}05)^{10} \\approx 0{,}401\">$1 &#8211; (1 &#8211; 0{,}05)^{10} \\approx 0{,}401$<\/span>, soit plus de 40 % de risque d&rsquo;erreur. Dans les disciplines exp\u00e9rimentales confront\u00e9es \u00e0 la crise de la reproductibilit\u00e9, tol\u00e9rer une telle d\u00e9rive statistique revient \u00e0 saturer la litt\u00e9rature scientifique de corr\u00e9lations fallacieuses et d&rsquo;affirmations d&rsquo;efficacit\u00e9 th\u00e9rapeutique d\u00e9nu\u00e9es de fondement mat\u00e9riel. Il est donc imp\u00e9ratif d&rsquo;int\u00e9grer des proc\u00e9dures d&rsquo;ajustement calibr\u00e9es pour restaurer l&rsquo;int\u00e9grit\u00e9 de la d\u00e9cision inf\u00e9rentielle.<\/p>\n<h3>3.2 Ajustements conservateurs classiques : Bonferroni et \u0160id\u00e1k<\/h3>\n<p>La r\u00e9ponse historique et conceptuellement la plus intuitive au probl\u00e8me du FWER a \u00e9t\u00e9 formalis\u00e9e \u00e0 travers l&rsquo;in\u00e9galit\u00e9 de Boole-Bonferroni. La correction classique de Bonferroni pr\u00e9conise une modulation lin\u00e9aire stricte du crit\u00e8re de d\u00e9cision : pour maintenir le risque d&rsquo;erreur globale par famille \u00e0 un niveau inf\u00e9rieur ou \u00e9gal \u00e0 <span class=\"arabpsy-math-inline\" data-latex=\"\\alpha\">$\\alpha$<\/span>, chaque contraste individuel <span class=\"arabpsy-math-inline\" data-latex=\"c\">$c$<\/span> doit \u00eatre confront\u00e9 \u00e0 un seuil d&rsquo;exclusion recalcul\u00e9 selon la r\u00e8gle :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"\\alpha_{Bonferroni} = \\frac{\\alpha}{C}\">$$\\alpha_{Bonferroni} = \\frac{\\alpha}{C}$$<\/span><\/p>\n<p>De mani\u00e8re \u00e9quivalente, les environnements computationnels contemporains impl\u00e9mentent cette contrainte en multipliant directement la valeur p brute issue de la distribution asymptotique par le facteur <span class=\"arabpsy-math-inline\" data-latex=\"C\">$C$<\/span>, soit <span class=\"arabpsy-math-inline\" data-latex=\"p_{ajustee} = \\min(1, p_{brute} \\times C)\">$p_{ajustee} = \\min(1, p_{brute} \\times C)$<\/span>. Bien que cette proc\u00e9dure garantisse math\u00e9matiquement un contr\u00f4le irr\u00e9prochable du FWER dans toutes les configurations de d\u00e9pendance stochastique, elle se distingue par un conservatisme excessif. D\u00e8s que le nombre de comparaisons d\u00e9passe une dizaine d&rsquo;unit\u00e9s, la p\u00e9nalit\u00e9 impos\u00e9e aux valeurs p devient si draconienne que la puissance statistique globale du dispositif s&rsquo;effondre, augmentant dramatiquement le risque de commettre une erreur de type II en passant sous silence des d\u00e9couvertes scientifiques authentiques.<\/p>\n<p>La correction de \u0160id\u00e1k propose une variante l\u00e9g\u00e8rement moins r\u00e9pressive, d\u00e9riv\u00e9e directement de l&rsquo;axiome de d\u00e9composition multiplicative sous hypoth\u00e8se d&rsquo;ind\u00e9pendance mutuelle des hypoth\u00e8ses nulles partielles :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"\\alpha_{Sidak} = 1 - (1 - \\alpha)^{\\frac{1}{C}}\">$$\\alpha_{Sidak} = 1 &#8211; (1 &#8211; \\alpha)^{\\frac{1}{C}}$$<\/span><\/p>\n<p>La valeur p corrig\u00e9e correspondante s&rsquo;obtient alors via la transformation <span class=\"arabpsy-math-inline\" data-latex=\"p_{ajustee} = 1 - (1 - p_{brute})^C\">$p_{ajustee} = 1 &#8211; (1 &#8211; p_{brute})^C$<\/span>. Bien que la formulation de \u0160id\u00e1k procure un gain infinit\u00e9simal de puissance par rapport au d\u00e9coupage purement lin\u00e9aire de Bonferroni, l&rsquo;\u00e9cart pratique entre les deux approches s&rsquo;av\u00e8re n\u00e9gligeable sur les petits \u00e9chantillons, tandis que la condition th\u00e9orique d&rsquo;ind\u00e9pendance stricte entre les tests de rangs n&rsquo;est jamais rigoureusement respect\u00e9e dans le test de Dunn (les rangs moyens d&rsquo;un groupe intervenant dans plusieurs contrastes simultan\u00e9s, introduisant une covariance structurelle positive entre les statistiques de test).<\/p>\n<h3>3.3 Proc\u00e9dures s\u00e9quentielles et contr\u00f4le du FDR : Holm et Benjamini-Hochberg<\/h3>\n<p>Pour d\u00e9passer l&rsquo;\u00e9cueil du conservatisme outrancier sans pour autant compromettre la rigueur du contr\u00f4le du risque alpha, les statisticiens ont d\u00e9velopp\u00e9 des proc\u00e9dures s\u00e9quentielles pas \u00e0 pas (<em>stepwise procedures<\/em>). Parmi celles-ci, la m\u00e9thode de Holm-Bonferroni (ou m\u00e9thode de Holm) s&rsquo;impose comme la r\u00e9f\u00e9rence m\u00e9thodologique dominante pour le contr\u00f4le strict du FWER. L&rsquo;algorithme op\u00e8re de fa\u00e7on s\u00e9quentielle ascendante : les <span class=\"arabpsy-math-inline\" data-latex=\"C\">$C$<\/span> valeurs p non ajust\u00e9es issues des comparaisons de Dunn sont initialement tri\u00e9es par ordre strictement croissant :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"p_{(1)} le p_{(2)} le dots le p_{(C)}\">$$p_{(1)} le p_{(2)} le dots le p_{(C)}$$<\/span><\/p>\n<p>Chaque probabilit\u00e9 empirique ordonn\u00e9e <span class=\"arabpsy-math-inline\" data-latex=\"p_{(i)}\">$p_{(i)}$<\/span> est ensuite confront\u00e9e successivement \u00e0 un seuil glissant recalcul\u00e9 de fa\u00e7on adaptative :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"\\alpha_{(i)} = \\frac{\\alpha}{C - i + 1}\">$$\\alpha_{(i)} = \\frac{\\alpha}{C &#8211; i + 1}$$<\/span><\/p>\n<p>Le processus d\u00e9cisionnel s&rsquo;interrompt d\u00e8s lors qu&rsquo;une valeur p \u00e9choue \u00e0 franchir le seuil assign\u00e9 \u00e0 son rang d&rsquo;ordre. Toutes les hypoth\u00e8ses associ\u00e9es aux valeurs p sup\u00e9rieures ou \u00e9gales \u00e0 cet indice de rupture sont alors d\u00e9clar\u00e9es non significatives. Sur le plan computationnel, l&rsquo;algorithme g\u00e9n\u00e8re des valeurs p ajust\u00e9es monotones croissantes. La m\u00e9thode de Holm domine uniform\u00e9ment la correction de Bonferroni : elle procure une puissance statistique substantiellement sup\u00e9rieure tout en pr\u00e9servant exactement le m\u00eame niveau de garantie probabiliste contre l&rsquo;erreur de type I \u00e0 l&rsquo;\u00e9chelle de la famille globale.<\/p>\n<p>Dans un paradigme philosophique distinct, ax\u00e9 sur la d\u00e9couverte exploratoire plut\u00f4t que sur la validation confirmatoire stricte, <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1111\/j.2517-6161.1995.tb02031.x\">Yoav Benjamini et Yosef Hochberg (1995)<\/a> ont formalis\u00e9 le contr\u00f4le du taux de fausses d\u00e9couvertes (<em>False Discovery Rate<\/em> ou FDR). Plut\u00f4t que de chercher \u00e0 interdire l&rsquo;occurrence d&rsquo;un seul faux positif au sein de l&rsquo;\u00e9tude (objectif du FWER), la proc\u00e9dure de Benjamini-Hochberg (BH) vise \u00e0 borner l&rsquo;esp\u00e9rance math\u00e9matique de la proportion de rejets fallacieux parmi l&rsquo;ensemble des hypoth\u00e8ses rejet\u00e9es. La formule d&rsquo;\u00e9valuation s\u00e9quentielle descendante confronte les valeurs p ordonn\u00e9es au crit\u00e8re :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"p_{(i)} le \\frac{i}{C} \\times Q\">$$p_{(i)} le \\frac{i}{C} \\times Q$$<\/span><\/p>\n<p>o\u00f9 <span class=\"arabpsy-math-inline\" data-latex=\"Q\">$Q$<\/span> repr\u00e9sente le taux de tol\u00e9rance d&rsquo;erreur cibl\u00e9 (usuellement fix\u00e9 \u00e0 0,05). Cette approche conf\u00e8re une puissance statistique particuli\u00e8rement \u00e9lev\u00e9e lors de criblages exp\u00e9rimentaux impliquant des matrices de donn\u00e9es hautement multidimensionnelles, fr\u00e9quemment rencontr\u00e9es en profilage transcriptomique c\u00e9r\u00e9bral ou en analyse neuro-imagerie computationnelle.<\/p>\n<h2>4. Configuration de l&rsquo;environnement d&rsquo;analyse sous Python<\/h2>\n<h3>4.1 L&rsquo;\u00e9cosyst\u00e8me open source pour la statistique post-hoc<\/h3>\n<p>La mise en \u0153uvre pratique des calculs non param\u00e9triques avanc\u00e9s exige un environnement scientifique structur\u00e9, coh\u00e9rent et p\u00e9renne. L&rsquo;\u00e9cosyst\u00e8me Python d\u00e9di\u00e9 \u00e0 l&rsquo;analyse de donn\u00e9es s&rsquo;appuie sur une hi\u00e9rarchie modulaire de biblioth\u00e8ques hautement sp\u00e9cialis\u00e9es dont la synergie garantit \u00e0 la fois l&rsquo;exactitude des calculs matriciels et l&rsquo;\u00e9l\u00e9gance de la programmation orient\u00e9e objet. Au c\u0153ur de cette infrastructure statistique, la biblioth\u00e8que sp\u00e9cialis\u00e9e <strong>scikit-posthocs<\/strong> occupe une place pr\u00e9pond\u00e9rante. Con\u00e7ue sp\u00e9cifiquement par Maksim Terpilowski pour combler les lacunes historiques des grandes suites statistiques en mati\u00e8re d&rsquo;analyses post-hoc non param\u00e9triques, elle fournit une impl\u00e9mentation native et optimis\u00e9e du test de Dunn, ainsi que de multiples variantes de contrastes stochastiques.<\/p>\n<p>En amont de ces routines post-hoc, la biblioth\u00e8que <strong>SciPy<\/strong> (\u00e0 travers son sous-module <code>scipy.stats<\/code>) constitue le socle algorithmique indispensable pour conduire les calculs inf\u00e9rentiels initiaux, au premier rang desquels figure le test omnibus de Kruskal-Wallis. SciPy prend en charge l&rsquo;\u00e9valuation de la fonction de r\u00e9partition empirique, le calcul des rangs et l&rsquo;extraction formelle des statistiques d&rsquo;ordre.<\/p>\n<p>La manipulation tabulaire, le nettoyage des matrices exp\u00e9rimentales et la structuration des cohortes reposent sans \u00e9quivoque sur le tandem <strong>NumPy<\/strong> et <strong>Pandas<\/strong>. Pandas permet de g\u00e9rer avec pr\u00e9cision les s\u00e9ries h\u00e9t\u00e9rog\u00e8nes, les \u00e9tiquettes factorielles et les indexations hi\u00e9rarchiques propres aux designs exp\u00e9rimentaux contemporains. Enfin, l&rsquo;articulation graphique s&rsquo;op\u00e8re via les biblioth\u00e8ques <strong>Matplotlib<\/strong> et <strong>Seaborn<\/strong>, capables de convertir les matrices de d\u00e9cision statistiques abstraites en repr\u00e9sentations iconographiques de haute qualit\u00e9 visuelle conformes aux exigences \u00e9ditoriales des plus prestigieuses revues \u00e0 comit\u00e9 de lecture.<\/p>\n<h3>4.2 Installation et configuration des biblioth\u00e8ques d\u00e9pendantes<\/h3>\n<p>Pour garantir la stabilit\u00e9 op\u00e9rationnelle des calculs et \u00e9liminer les risques de conflits de biblioth\u00e8ques crois\u00e9es, il est imp\u00e9ratif d&rsquo;installer l&rsquo;ensemble des modules analytiques au sein d&rsquo;un environnement virtuel isol\u00e9 (par exemple via <code>venv<\/code> ou un gestionnaire d&rsquo;environnement Conda d\u00e9di\u00e9). Le d\u00e9ploiement s&rsquo;effectue simplement en ex\u00e9cutant les instructions d&rsquo;installation standardis\u00e9es via le terminal de commandes. L&rsquo;installation native via l&rsquo;utilitaire <code>pip<\/code> s&rsquo;effectue en invoquant les paquets suivants :<\/p>\n<p><code>pip install numpy scipy pandas scikit-posthocs matplotlib seaborn statsmodels<\/code><\/p>\n<p>Pour les infrastructures scientifiques d\u00e9ploy\u00e9es sur la distribution Anaconda ou Miniconda, la r\u00e9solution des d\u00e9pendances pr\u00e9compil\u00e9es peut \u00eatre ordonn\u00e9e via le canal communautaire de r\u00e9f\u00e9rence :<\/p>\n<p><code>conda install -c conda-forge scikit-posthocs scipy pandas matplotlib seaborn<\/code><\/p>\n<p>Une fois les modules d\u00e9ploy\u00e9s dans l&rsquo;interpr\u00e9teur Python, il convient d&rsquo;ex\u00e9cuter une s\u00e9quence d&rsquo;initialisation dans l&rsquo;en-t\u00eate de votre script ou de votre calepin Jupyter afin d&rsquo;importer explicitement les espaces de noms n\u00e9cessaires et de param\u00e9trer la gestion des avertissements d&rsquo;ex\u00e9cution (warnings). Le bloc de script fonctionnel suivant illustre cette pr\u00e9paration m\u00e9thodologique :<\/p>\n<p><code>import sys<br \/>\nimport warnings<br \/>\nimport numpy as np<br \/>\nimport pandas as pd<br \/>\nimport scipy.stats as stats<br \/>\nimport scikit_posthocs as sp<br \/>\nimport matplotlib.pyplot as plt<br \/>\nimport seaborn as sns<\/p>\n<p>warnings.filterwarnings('ignore', category=FutureWarning)<br \/>\nwarnings.filterwarnings('ignore', category=UserWarning)<\/code><\/p>\n<p>Cette directive de configuration inhibe l&rsquo;apparition r\u00e9currente des avertissements de d\u00e9pr\u00e9ciation li\u00e9s aux transitions architecturales internes des structures matricielles de Pandas, assurant ainsi une lisibilit\u00e9 optimale de la console d&rsquo;ex\u00e9cution tout au long des \u00e9tapes de mod\u00e9lisation inf\u00e9rentielle.<\/p>\n<h3>4.3 Gestion de la reproductibilit\u00e9 scientifique<\/h3>\n<p>L&rsquo;id\u00e9al m\u00e9thodologique contemporain impose que toute analyse statistique publi\u00e9e s&rsquo;accompagne d&rsquo;une tra\u00e7abilit\u00e9 int\u00e9grale de son environnement d&rsquo;ex\u00e9cution, permettant \u00e0 tout \u00e9valuateur ind\u00e9pendant de r\u00e9g\u00e9n\u00e9rer \u00e0 l&rsquo;identique les estimations chiffr\u00e9es pr\u00e9sent\u00e9es. En Python, la variabilit\u00e9 des versions de sous-d\u00e9pendances math\u00e9matiques peut induire des alt\u00e9rations infinit\u00e9simales des valeurs p calcul\u00e9es via des d\u00e9viations d&rsquo;arrondis \u00e0 la quinzi\u00e8me d\u00e9cimale ou des modifications d&rsquo;algorithmes de tri interne des rangs li\u00e9s. Le verrouillage explicite des versions logicielles constitue donc une obligation d\u00e9ontologique.<\/p>\n<p>La formalisation d&rsquo;un fichier standardis\u00e9 <code>requirements.txt<\/code> doit \u00eatre syst\u00e9matiquement op\u00e9r\u00e9e \u00e0 l&rsquo;issue de l&rsquo;analyse, en consignant la version exacte de chaque brique algorithmique employ\u00e9e :<\/p>\n<p><code>numpy==1.26.4<br \/>\nscipy==1.13.0<br \/>\npandas==2.2.2<br \/>\nscikit-posthocs==0.9.0<br \/>\nmatplotlib==3.8.4<br \/>\nseaborn==0.13.2<\/code><\/p>\n<p>Parall\u00e8lement, lorsque l&rsquo;analyse statistique s&rsquo;ins\u00e8re dans un flux de travail n\u00e9cessitant la simulation de donn\u00e9es, l&rsquo;imputation probabiliste ou l&rsquo;application de m\u00e9thodes de r\u00e9\u00e9chantillonnage par amor\u00e7age (bootstrap) pour estimer les intervalles de confiance des contrastes, il est indispensable de figer la graine du g\u00e9n\u00e9rateur de nombres pseudo-al\u00e9atoires. L&rsquo;initialisation d\u00e9terministe via la m\u00e9thode <code>np.random.seed(42)<\/code> ou l&rsquo;instanciation explicite d&rsquo;un g\u00e9n\u00e9rateur standardis\u00e9 de la classe <code>np.random.default_rng(seed=42)<\/code> garantit que la g\u00e9n\u00e9ration des distributions empiriques et les r\u00e9\u00e9chantillonnages subs\u00e9quents demeureront rigoureusement identiques, assurant une parfaite reproductibilit\u00e9 sur n&rsquo;importe quel terminal informatique distant.<\/p>\n<h2>5. V\u00e9rification pr\u00e9alable : Ex\u00e9cution du test de Kruskal-Wallis dans Python<\/h2>\n<h3>5.1 V\u00e9rification des postulats d&rsquo;application<\/h3>\n<p>Avant d&rsquo;engager le moindre calcul post-hoc, la probit\u00e9 scientifique impose de valider la conformit\u00e9 du protocole exp\u00e9rimental avec les postulats sous-tendant le test non param\u00e9trique omnibus de Kruskal-Wallis. Le premier axiome m\u00e9thodologique concerne l&rsquo;ind\u00e9pendance mutuelle stricte des observations entre les diff\u00e9rents sous-groupes exp\u00e9rimentaux. Chaque unit\u00e9 statistique (patient, sujet, mod\u00e8le animal) ne peut appartenir qu&rsquo;\u00e0 un seul et unique groupe factoriel et ne doit avoir subi aucune mesure r\u00e9p\u00e9t\u00e9e dans le temps. Tout plan exp\u00e9rimental \u00e0 mesures r\u00e9p\u00e9t\u00e9es ou comportant un appariement syst\u00e9matique invalide le recours \u00e0 cette proc\u00e9dure et exige l&rsquo;orientation vers le test de Friedman ou un mod\u00e8le lin\u00e9aire mixte sur rangs.<\/p>\n<p>Le second crit\u00e8re structurel r\u00e9side dans la nature de la variable d\u00e9pendante. Celle-ci doit se situer au minimum \u00e0 un niveau d&rsquo;\u00e9chelle ordinale continue ou discr\u00e8te afin de permettre une hi\u00e9rarchisation monotone non ambigu\u00eb de l&rsquo;ensemble des observations. Les variables purement nominales ou polytomiques d\u00e9pourvues d&rsquo;ordre intrins\u00e8que ne peuvent en aucun cas \u00eatre trait\u00e9es par cette m\u00e9thodologie.<\/p>\n<p>Enfin, une distinction \u00e9pist\u00e9mologique cruciale \u2014 fr\u00e9quemment n\u00e9glig\u00e9e dans la pratique \u2014 s\u00e9pare le test d&rsquo;homog\u00e9n\u00e9it\u00e9 globale des rangs du test de comparaison des m\u00e9dianes. Pour que le test de Kruskal-Wallis (puis le test de Dunn subs\u00e9quent) puisse formellement s&rsquo;interpr\u00e9ter comme un test d&rsquo;\u00e9galit\u00e9 des m\u00e9dianes entre les groupes exp\u00e9rimentaux, il est imp\u00e9ratif que les distributions de chaque condition pr\u00e9sentent une morphologie distributionnelle similaire (c&rsquo;est-\u00e0-dire un profil de dissym\u00e9trie, d&rsquo;\u00e9talement et d&rsquo;aplatissement comparable). Si les distributions partagent une forme g\u00e9om\u00e9trique superposable, tout d\u00e9calage du rang moyen correspond fid\u00e8lement \u00e0 un glissement de la m\u00e9diane. En revanche, si les sous-groupes pr\u00e9sentent des formes distributionnelles divergentes, le test de Dunn conserve toute sa validit\u00e9 math\u00e9matique, mais son interpr\u00e9tation th\u00e9orique doit rigoureusement se limiter \u00e0 l&rsquo;\u00e9valuation de la dominance stochastique ordinale, sans r\u00e9f\u00e9rence abusive aux m\u00e9dianes physiques des populations sources.<\/p>\n<h3>5.2 Impl\u00e9mentation algorithmique avec scipy.stats.kruskal<\/h3>\n<p>L&rsquo;ex\u00e9cution de l&rsquo;analyse omnibus au sein de l&rsquo;environnement Python est prise en charge par la fonction <code>kruskal<\/code> h\u00e9berg\u00e9e dans le sous-module sp\u00e9cialis\u00e9 <code>scipy.stats<\/code>. Cette routine accepte en arguments d&rsquo;entr\u00e9e une s\u00e9rie d&rsquo;it\u00e9rables (listes num\u00e9riques, tableaux unidimensionnels NumPy ou s\u00e9ries Pandas) repr\u00e9sentant chacun les valeurs mesur\u00e9es au sein d&rsquo;une modalit\u00e9 factorielle donn\u00e9e. L&rsquo;extraction matricielle \u00e0 partir d&rsquo;un DataFrame structur\u00e9 selon les standards modernes s&rsquo;op\u00e8re de mani\u00e8re concise et \u00e9l\u00e9gante.<\/p>\n<p>Supposons un DataFrame Pandas nomm\u00e9 <code>df_etude<\/code>, contenant une colonne d\u00e9sign\u00e9e par <code>'Score'<\/code> et une colonne factorielle cat\u00e9gorisant les groupes sous l&rsquo;\u00e9tiquette <code>'Protocole'<\/code>. L&rsquo;impl\u00e9mentation de la fonction de calcul globale et l&rsquo;extraction de la statistique formelle s&rsquo;articulent selon le paradigme de programmation suivant :<\/p>\n<p><code>groupes_uniques = df_etude['Protocole'].unique()<br \/>\ndonnees_par_groupe = [df_etude[df_etude['Protocole'] == g]['Score'].values for g in groupes_uniques]<\/p>\n<p>statistique_H, p_valeur_globale = stats.kruskal(*donnees_par_groupe)<\/p>\n<p>print(f\"Statistique omnibus H (Kruskal-Wallis) : {statistique_H:.4f}\")<br \/>\nprint(f\"Valeur p globale associ\u00e9e : {p_valeur_globale:.4e}\")<\/code><\/p>\n<p>La statistique extraite <span class=\"arabpsy-math-inline\" data-latex=\"H\">$H$<\/span> int\u00e8gre d&#8217;embl\u00e9e la correction math\u00e9matique standard pour les rangs li\u00e9s. L&rsquo;op\u00e9rateur de d\u00e9compression d&rsquo;arguments (l&rsquo;ast\u00e9risque <code>*<\/code>) permet d&rsquo;injecter dynamiquement un nombre arbitraire de sous-\u00e9chantillons dans la signature de la fonction sans n\u00e9cessiter de coder manuellement chaque modalit\u00e9 exp\u00e9rimentale, conf\u00e9rant \u00e0 la cha\u00eene de traitement un degr\u00e9 \u00e9lev\u00e9 d&rsquo;automatisation logicielle.<\/p>\n<h3>5.3 Crit\u00e8res de d\u00e9cision pour le passage aux comparaisons par paires<\/h3>\n<p>L&rsquo;\u00e9valuation probabiliste issue de l&rsquo;\u00e9tape pr\u00e9c\u00e9dente gouverne strictement la bifurcation du protocole d&rsquo;analyse de donn\u00e9es. Selon l&rsquo;orthodoxie m\u00e9thodologique classique de Fisher appliqu\u00e9e aux tests non param\u00e9triques (principe de la proc\u00e9dure prot\u00e9g\u00e9e), l&rsquo;engagement des comparaisons par paires via le test de Dunn est subordonn\u00e9 au rejet formel de l&rsquo;hypoth\u00e8se nulle conjointe au niveau omnibus. Si la valeur p globale g\u00e9n\u00e9r\u00e9e par <code>stats.kruskal<\/code> demeure strictement sup\u00e9rieure au seuil d&rsquo;exclusion <span class=\"arabpsy-math-inline\" data-latex=\"\\alpha\">$\\alpha$<\/span> pr\u00e9\u00e9tabli (usuellement fix\u00e9 \u00e0 0,05 ou 0,01 selon les standards disciplinaires), l&rsquo;analyste se voit interdire d&rsquo;explorer les contrastes post-hoc sous peine d&rsquo;alt\u00e9rer le cadre de contr\u00f4le probabiliste.<\/p>\n<p>Il convient toutefois de souligner l&rsquo;existence d&rsquo;un d\u00e9bat contemporain au sein de la communaut\u00e9 des biostatisticiens concernant les contrastes planifi\u00e9s a priori. Certains m\u00e9thodologistes soutiennent que si un contraste particulier entre deux th\u00e9rapies cibl\u00e9es d\u00e9coule d&rsquo;une hypoth\u00e8se de recherche d\u00e9ductivement postul\u00e9e avant la collecte des donn\u00e9es exp\u00e9rimentales, ce contraste peut faire l&rsquo;objet d&rsquo;un test direct cibl\u00e9, ind\u00e9pendamment du r\u00e9sultat du test omnibus. N\u00e9anmoins, d\u00e8s lors que l&rsquo;on s&rsquo;inscrit dans un paradigme d&rsquo;exploration syst\u00e9matique et exhaustive de l&rsquo;ensemble des combinaisons dyadiques disponibles, le filtre de d\u00e9cision du Kruskal-Wallis demeure le garant inviolable contre la prolif\u00e9ration incontr\u00f4l\u00e9e de faux positifs fortuits.<\/p>\n<p>La formalisation algorithmique de cette barri\u00e8re d\u00e9cisionnelle se traduit naturellement par une clause conditionnelle au sein du code Python :<\/p>\n<p><code>seuil_alpha = 0.05<br \/>\nif p_valeur_globale &lt; seuil_alpha:<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;print(\"Rejet formel de H0 omnibus : Proc\u00e9der aux analyses post-hoc de Dunn.\")<br \/>\nelse:<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;print(\"Non-rejet de H0 : Absence de divergence stochastique globale d\u00e9montr\u00e9e.\")<\/code><\/p>\n<p>Ce verrouillage logique \u00e9vite la propagation accidentelle de traitements post-hoc superflus au sein des cha\u00eenes de calcul automatis\u00e9es.<\/p>\n<h2>6. Pr\u00e9paration et structuration des donn\u00e9es exp\u00e9rimentales<\/h2>\n<h3>6.1 Structuration matricielle : Format long versus format large<\/h3>\n<p>La manipulation rigoureuse des donn\u00e9es sous Python impose une ma\u00eetrise experte de la topologie des structures tabulaires. En statistique computationnelle, deux agencements matriciels pr\u00e9dominent : le format large (<em>wide format<\/em>) et le format long (<em>long format<\/em> ou concept de donn\u00e9es rang\u00e9es, formalis\u00e9 sous l&rsquo;appellation anglophone de <em>tidy data<\/em>). Dans le format large, chaque colonne du tableau est r\u00e9serv\u00e9e \u00e0 un sous-groupe exp\u00e9rimental sp\u00e9cifique, tandis que les lignes r\u00e9pertorient les r\u00e9plicats individuels. Cette pr\u00e9sentation, bien qu&rsquo;intuitive pour la saisie manuelle sur tableur de bureau, s&rsquo;av\u00e8re totalement inadapt\u00e9e \u00e0 la mod\u00e9lisation statistique d\u00e8s lors que les effectifs par groupe sont asym\u00e9triques (ce qui force l&rsquo;insertion artificielle de valeurs manquantes en fin de tableau).<\/p>\n<p>\u00c0 l&rsquo;inverse, l&rsquo;ensemble des fonctions d&rsquo;analyse avanc\u00e9e de la biblioth\u00e8que <code>scikit-posthocs<\/code>, \u00e0 l&rsquo;instar des routines de mod\u00e9lisation de Seaborn, exigent imp\u00e9rativement une organisation matricielle sous format long. Dans cette configuration g\u00e9om\u00e9trique, chaque ligne repr\u00e9sente une unit\u00e9 d&rsquo;observation individuelle unique. Le tableau comporte a minima deux colonnes fondamentales : une colonne de mesure continue ou ordinale (la variable d\u00e9pendante m\u00e9trique) et une colonne cat\u00e9gorielle codifiant le facteur d&rsquo;appartenance exp\u00e9rimental (le groupe ou traitement). Pour convertir ais\u00e9ment une matrice large pr\u00e9existante en structure longue conforme, Pandas offre la m\u00e9thode vectoris\u00e9e <code>pd.melt()<\/code> :<\/p>\n<p><code>df_format_long = pd.melt(<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;df_large,<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;var_name='Modalite_Traitement',<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;value_name='Score_Mesure'<br \/>\n).dropna()<\/code><\/p>\n<p>Pour optimiser les performances de traitement et clarifier la gestion des niveaux factoriels, il est fortement recommand\u00e9 de typer explicitement la variable textuelle de regroupement sous le type <code>category<\/code> de Pandas via l&rsquo;instruction :<\/p>\n<p><code>df_format_long['Modalite_Traitement'] = df_format_long['Modalite_Traitement'].astype('category')<\/code><\/p>\n<h3>6.2 Pr\u00e9traitement et nettoyage des donn\u00e9es psychom\u00e9triques<\/h3>\n<p>Avant d&rsquo;injecter les observations dans les moteurs d&rsquo;inf\u00e9rence, un audit d&rsquo;int\u00e9grit\u00e9 de la base de donn\u00e9es doit \u00eatre entrepris afin d&rsquo;\u00e9viter toute corruption math\u00e9matique des rangs. Les donn\u00e9es issues de protocoles psychologiques ou biom\u00e9dicaux comportent invariablement des non-r\u00e9ponses accidentelles ou des omissions de saisie. En mati\u00e8re d&rsquo;analyse non param\u00e9trique de rangs, l&rsquo;imputation de valeurs manquantes par la moyenne arithm\u00e9tique constitue une aberration absolue qui d\u00e9truit la structure stochastique r\u00e9elle de la distribution. Les strat\u00e9gies conventionnelles s&rsquo;orientent soit vers une suppression raisonn\u00e9e des observations incompl\u00e8tes (<em>listwise deletion<\/em>) via <code>df.dropna(subset=['Score_Mesure'])<\/code>, soit vers des m\u00e9thodes d&rsquo;imputation par la m\u00e9diane ou par mod\u00e9lisation des plus proches voisins (KNN) sp\u00e9cialement calibr\u00e9es pour les donn\u00e9es discr\u00e8tes.<\/p>\n<p>Le traitement des valeurs atypiques (<em>outliers<\/em>) appelle \u00e9galement une r\u00e9flexion \u00e9pist\u00e9mologique mesur\u00e9e. L&rsquo;un des m\u00e9rites cardinaux des m\u00e9thodes d&rsquo;assignation de rangs r\u00e9side pr\u00e9cis\u00e9ment dans leur robustesse naturelle face aux valeurs extr\u00eames : une observation aberrante situ\u00e9e \u00e0 six \u00e9carts-types de la m\u00e9diane n&rsquo;exerce aucune influence disproportionn\u00e9e sur l&rsquo;inf\u00e9rence, puisqu&rsquo;elle se voit simplement attribuer le rang maximal <span class=\"arabpsy-math-inline\" data-latex=\"N\">$N$<\/span>, exactement au m\u00eame titre qu&rsquo;une observation ne d\u00e9passant le reste du groupe que de quelques milli\u00e8mes d&rsquo;unit\u00e9 m\u00e9trique. Il est par cons\u00e9quent fortement d\u00e9conseill\u00e9 de censurer ou de tronquer unilat\u00e9ralement les scores extr\u00eames au sein d&rsquo;un pipeline de test de Dunn, sauf s&rsquo;il est av\u00e9r\u00e9 que ces scores r\u00e9sultent d&rsquo;une erreur d&rsquo;encodage mat\u00e9riel ou d&rsquo;un dysfonctionnement instrumental manifeste.<\/p>\n<p>L&rsquo;audit de conformit\u00e9 s&rsquo;ach\u00e8ve par la v\u00e9rification de la monotonicit\u00e9 des variables d&rsquo;identification et par l&rsquo;assainissement syntaxique des cha\u00eenes de caract\u00e8res repr\u00e9sentant les \u00e9tiquettes factorielles (\u00e9limination des espaces superflus, normalisation typographique des accents) afin de pr\u00e9venir l&rsquo;instanciation accidentelle de sous-groupes fant\u00f4mes lors du traitement par l&rsquo;interpr\u00e9teur Python.<\/p>\n<h3>6.3 Statistiques descriptives pr\u00e9liminaires par groupe<\/h3>\n<p>Une communication scientifique irr\u00e9prochable ne saurait se cantonner \u00e0 la simple livraison de valeurs p probabilistes ; elle requiert une contextualisation descriptive d\u00e9taill\u00e9e de la position centrale et de l&rsquo;\u00e9tendue de chaque sous-\u00e9chantillon. Les param\u00e8tres gaussiens traditionnels (moyenne et \u00e9cart-type) \u00e9tant inop\u00e9rants pour restituer fid\u00e8lement la morphologie de distributions asym\u00e9triques, l&rsquo;analyste doit privil\u00e9gier les estimateurs de position non param\u00e9triques, domin\u00e9s par la m\u00e9diane et l&rsquo;\u00e9cart interquartile (<em>Interquartile Range<\/em> ou IQR, d\u00e9fini par la diff\u00e9rence <span class=\"arabpsy-math-inline\" data-latex=\"Q_3 - Q_1\">$Q_3 &#8211; Q_1$<\/span>).<\/p>\n<p>Parall\u00e8lement, dans la mesure o\u00f9 le test de Dunn op\u00e8re directement sur les propri\u00e9t\u00e9s spatiales des rangs, il est particuli\u00e8rement pertinent de calculer et de consigner formellement le rang moyen global de chaque sous-groupe exp\u00e9rimental au sein du tableau descriptif d&rsquo;amorce. La biblioth\u00e8que Pandas permet de synth\u00e9tiser ces diff\u00e9rentes m\u00e9triques en une ligne d&rsquo;agr\u00e9gation hautement expressive :<\/p>\n<p><code>df_format_long['Rang_Global'] = df_format_long['Score_Mesure'].rank()<\/p>\n<p>tableau_descriptif = df_format_long.groupby('Modalite_Traitement', observed=True).agg(<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;Effectif=('Score_Mesure', 'count'),<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;Mediane=('Score_Mesure', 'median'),<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;Q1=('Score_Mesure', lambda x: np.percentile(x, 25)),<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;Q3=('Score_Mesure', lambda x: np.percentile(x, 75)),<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;IQR=('Score_Mesure', lambda x: np.percentile(x, 75) - np.percentile(x, 25)),<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;Rang_Moyen=('Rang_Global', 'mean')<br \/>\n).reset_index()<\/p>\n<p>print(tableau_descriptif)<\/code><\/p>\n<p>Ce tableau d&rsquo;agr\u00e9gation constitue la matrice de r\u00e9f\u00e9rence absolue \u00e0 int\u00e9grer dans les annexes m\u00e9thodologiques ou le corps principal de vos rapports de recherche, fournissant aux relecteurs une visibilit\u00e9 totale sur la coh\u00e9rence entre les grandeurs brutes observ\u00e9es et les rangs sous-jacents qui d\u00e9termineront les inf\u00e9rences post-hoc.<\/p>\n<h2>7. Ex\u00e9cution pratique du test de Dunn avec scikit-posthocs<\/h2>\n<h3>7.1 Param\u00e9trage d\u00e9taill\u00e9 de la fonction posthoc_dunn()<\/h3>\n<p>L&rsquo;impl\u00e9mentation op\u00e9rationnelle du test de Dunn sous Python atteint son plus haut niveau de raffinement \u00e0 travers la fonction d\u00e9di\u00e9e <code>posthoc_dunn()<\/code> du module <code>scikit_posthocs<\/code>. Con\u00e7ue pour offrir une interface fluide avec les DataFrames Pandas, cette fonction encapsule l&rsquo;int\u00e9gralit\u00e9 des d\u00e9rivations math\u00e9matiques explicit\u00e9es au chapitre 2, int\u00e9grant la gestion automatique des ex \u00e6quo par la m\u00e9thode des rangs moyens et l&rsquo;ajustement dynamique de l&rsquo;erreur type asymptotique.<\/p>\n<p>La signature de la fonction et ses param\u00e8tres cardinaux m\u00e9ritent un examen analytique approfondi :<\/p>\n<p><code>scikit_posthocs.posthoc_dunn(<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;a,<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;val_col=None,<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;group_col=None,<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;p_adjust=None,<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;sort=True<br \/>\n)<\/code><\/p>\n<p>Le param\u00e8tre structurel <code>a<\/code> accepte indiff\u00e9remment une matrice de donn\u00e9es sous format large, une liste de listes de valeurs scalaires ou, dans le cas d&rsquo;usage recommand\u00e9, un DataFrame Pandas structur\u00e9 selon le format long. Lorsque ce dernier format est retenu, il devient obligatoire d&rsquo;expliciter les cha\u00eenes de caract\u00e8res d\u00e9signant les colonnes cibles via <code>val_col<\/code> (d\u00e9signant la variable num\u00e9rique d\u00e9pendante, par exemple <code>val_col='Score_Mesure'<\/code>) et <code>group_col<\/code> (d\u00e9signant la variable cat\u00e9gorielle d\u00e9finissant les modalit\u00e9s factorielles, par exemple <code>group_col='Modalite_Traitement'<\/code>).<\/p>\n<p>Le param\u00e8tre critique <code>sort<\/code>, fix\u00e9 par d\u00e9faut \u00e0 <code>True<\/code>, ordonne les groupes par ordre alphanum\u00e9rique sur les index et colonnes de la matrice r\u00e9sultante. Il est vivement recommand\u00e9 de pr\u00e9server ce param\u00e9trage afin d&rsquo;assurer une parfaite bijection visuelle entre les tableaux de contingence et les axes des futures repr\u00e9sentations graphiques.<\/p>\n<h3>7.2 S\u00e9lection et comparaison des modes de correction de p-valeurs<\/h3>\n<p>L&rsquo;argument central r\u00e9gissant le contr\u00f4le de l&rsquo;erreur de d\u00e9cision est le param\u00e8tre <code>p_adjust<\/code>. Ce commutateur logiciel accepte sous forme de cha\u00eene de caract\u00e8res l&rsquo;int\u00e9gralit\u00e9 des algorithmes d&rsquo;ajustement support\u00e9s par la biblioth\u00e8que <code>statsmodels<\/code>, qui sert de moteur d&rsquo;optimisation sous-jacent. Parmi les configurations les plus sollicit\u00e9es par les standards scientifiques figurent :<\/p>\n<ul>\n<li><code>p_adjust=None<\/code> : Renvoie les valeurs p asymptotiques brutes bilat\u00e9rales sans la moindre alt\u00e9ration algorithmique. Cette matrice brute s&rsquo;av\u00e8re indispensable pour documenter les statistiques sources ou pour appliquer ult\u00e9rieurement des corrections personnalis\u00e9es non impl\u00e9ment\u00e9es nativement.<\/li>\n<li><code>p_adjust='bonferroni'<\/code> : Applique la correction conservative stricte par multiplication lin\u00e9aire univari\u00e9e. \u00c0 r\u00e9server aux protocoles n&rsquo;impliquant qu&rsquo;un tr\u00e8s faible volume de contrastes dyadiques (<span class=\"arabpsy-math-inline\" data-latex=\"k le 4\">$k le 4$<\/span>).<\/li>\n<li><code>p_adjust='holm'<\/code> : Active la proc\u00e9dure s\u00e9quentielle ascendante de Holm-Bonferroni. Ce choix repr\u00e9sente le consensus contemporain le plus robuste pour les \u00e9tudes exp\u00e9rimentales comportementales n\u00e9cessitant un contr\u00f4le irr\u00e9prochable du FWER sans sacrifier la puissance de d\u00e9tection statistique.<\/li>\n<li><code>p_adjust='fdr_bh'<\/code> : Impl\u00e9mente l&rsquo;algorithme de Benjamini-Hochberg pour le contr\u00f4le du taux de fausses d\u00e9couvertes. Id\u00e9al lors d&rsquo;\u00e9tudes exploratoires comportant un nombre volumineux de sous-groupes ou lors de protocoles de criblage \u00e0 haut d\u00e9bit.<\/li>\n<li><code>p_adjust='sidak'<\/code> : Ex\u00e9cute la correction multiplicative de \u0160id\u00e1k, offrant une alternative marginalement moins rigide que Bonferroni sous r\u00e9serve de compatibilit\u00e9 structurelle d&rsquo;ind\u00e9pendance.<\/li>\n<\/ul>\n<p>L&rsquo;exemple de script suivant met en \u00e9vidence la disparit\u00e9 tangible des seuils de significativit\u00e9 obtenus en confrontant les matrices g\u00e9n\u00e9r\u00e9es par diff\u00e9rents correcteurs \u00e0 partir d&rsquo;un m\u00eame jeu de donn\u00e9es empiriques :<\/p>\n<p><code># Calcul de la matrice brute non corrig\u00e9e<br \/>\nmatrice_brute = sp.posthoc_dunn(df_format_long, val_col='Score_Mesure', group_col='Modalite_Traitement', p_adjust=None)<\/p>\n<p># Calcul avec ajustement conservateur de Bonferroni<br \/>\nmatrice_bonf = sp.posthoc_dunn(df_format_long, val_col='Score_Mesure', group_col='Modalite_Traitement', p_adjust='bonferroni')<\/p>\n<p># Calcul avec la proc\u00e9dure s\u00e9quentielle optimale de Holm<br \/>\nmatrice_holm = sp.posthoc_dunn(df_format_long, val_col='Score_Mesure', group_col='Modalite_Traitement', p_adjust='holm')<\/code><\/p>\n<p>La comparaison attentive de ces matrices r\u00e9v\u00e8le fr\u00e9quemment des contrastes se situant dans une zone fronti\u00e8re (par exemple <span class=\"arabpsy-math-inline\" data-latex=\"p = 0{,}03\">$p = 0{,}03$<\/span> apr\u00e8s ajustement de Holm, mais <span class=\"arabpsy-math-inline\" data-latex=\"p = 0{,}08\">$p = 0{,}08$<\/span> sous la f\u00e9rule de Bonferroni), illustrant de fa\u00e7on spectaculaire l&rsquo;impact d\u00e9terminant du choix de la m\u00e9thode de correction sur la conclusion inf\u00e9rentielle finale.<\/p>\n<h3>7.3 Interpr\u00e9tation structurelle de la matrice de sortie<\/h3>\n<p>L&rsquo;objet produit en sortie d&rsquo;un appel \u00e0 <code>posthoc_dunn()<\/code> est un DataFrame carr\u00e9 bidimensionnel sous Pandas, dont les index de lignes et les en-t\u00eates de colonnes r\u00e9pliquent fid\u00e8lement les \u00e9tiquettes de vos sous-groupes exp\u00e9rimentaux. Cette matrice est rigoureusement sym\u00e9trique le long de sa diagonale principale : la cellule situ\u00e9e \u00e0 l&rsquo;intersection de la ligne <span class=\"arabpsy-math-inline\" data-latex=\"A\">$A$<\/span> et de la colonne <span class=\"arabpsy-math-inline\" data-latex=\"B\">$B$<\/span> contient exactement la m\u00eame valeur p ajust\u00e9e que la cellule \u00e0 l&rsquo;intersection de la ligne <span class=\"arabpsy-math-inline\" data-latex=\"B\">$B$<\/span> et de la colonne <span class=\"arabpsy-math-inline\" data-latex=\"A\">$A$<\/span>, puisque l&rsquo;hypoth\u00e8se nulle bilat\u00e9rale \u00e9value une distance absolue <span class=\"arabpsy-math-inline\" data-latex=\"|\\bar{R}_A - \\bar{R}_B|\">$|\\bar{R}_A &#8211; \\bar{R}_B|$<\/span>. La diagonale principale elle-m\u00eame pr\u00e9sente uniform\u00e9ment la valeur <span class=\"arabpsy-math-inline\" data-latex=\"1{,}0\">$1{,}0$<\/span>, formalisant l&rsquo;absence tautologique de diff\u00e9rence statistique entre un groupe et lui-m\u00eame.<\/p>\n<p>Bien que cette disposition matricielle soit particuli\u00e8rement pratique pour la lecture synth\u00e9tique ou l&rsquo;int\u00e9gration directe dans une carte thermique (<em>heatmap<\/em>), la r\u00e9daction d&rsquo;articles acad\u00e9miques exige g\u00e9n\u00e9ralement une pr\u00e9sentation tabulaire lin\u00e9aire \u00e9num\u00e9rant explicitement chaque dyade de comparaison distincte, accompagn\u00e9e de sa conclusion d\u00e9cisionnelle binaire (significatif versus non significatif au seuil <span class=\"arabpsy-math-inline\" data-latex=\"\\alpha = 0{,}05\">$\\alpha = 0{,}05$<\/span>). Il est ais\u00e9 de convertir cette matrice carr\u00e9e en une table de synth\u00e8se d\u00e9dupliqu\u00e9e en exploitant les fonctionnalit\u00e9s de manipulation matricielle de NumPy et Pandas :<\/p>\n<p><code>def convertir_matrice_en_tableau_paires(matrice_p):<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;groupes = matrice_p.columns<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;paires_extraites = []<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;for i in range(len(groupes)):<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for j in range(i + 1, len(groupes)):<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g1, g2 = groupes[i], groupes[j]<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val_p = matrice_p.loc[g1, g2]<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;significatif = val_p &lt; 0.05<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;paires_extraites.append({<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Contraste': f\"{g1} vs {g2}\",<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'P_Ajustee': val_p,<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Significatif_Alpha_05': significatif<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;return pd.DataFrame(paires_extraites)<\/p>\n<p>tableau_recapitulatif = convertir_matrice_en_tableau_paires(matrice_holm)<br \/>\nprint(tableau_recapitulatif)<\/code><\/p>\n<p>Cette structuration lin\u00e9aire constitue la base de travail parfaite pour alimenter les sections textuelles de r\u00e9sultats et automatiser la g\u00e9n\u00e9ration des annotations graphiques.<\/p>\n<h2>8. Cas pratique complet : Analyse de scores d&rsquo;anxi\u00e9t\u00e9 sous trois protocoles cliniques<\/h2>\n<h3>8.1 Sc\u00e9nario clinique et simulation du jeu de donn\u00e9es<\/h3>\n<p>Afin d&rsquo;ancrer de mani\u00e8re pragmatique les concepts math\u00e9matiques et algorithmiques d\u00e9velopp\u00e9s jusqu&rsquo;ici, concevons un essai clinique contr\u00f4l\u00e9 et randomis\u00e9 dans le domaine de la psychiatrie translationnelle et de la psychologie de la sant\u00e9. Imaginons qu&rsquo;une \u00e9quipe hospitalo-universitaire cherche \u00e0 \u00e9valuer l&rsquo;efficacit\u00e9 diff\u00e9rentielle de deux approches psychoth\u00e9rapeutiques non pharmacologiques sur la r\u00e9duction de la d\u00e9tresse \u00e9motionnelle chez des patients souffrant de trouble d&rsquo;anxi\u00e9t\u00e9 g\u00e9n\u00e9ralis\u00e9e (TAG), comparativement \u00e0 un groupe contr\u00f4le standard.<\/p>\n<p>Le dispositif exp\u00e9rimental compare trois conditions ind\u00e9pendantes :<\/p>\n<ul>\n<li><strong>Controle<\/strong> : Patients plac\u00e9s sur liste d&rsquo;attente avec suivi m\u00e9dical habituel sans intervention psychologique cibl\u00e9e (<span class=\"arabpsy-math-inline\" data-latex=\"n_1 = 30\">$n_1 = 30$<\/span>).<\/li>\n<li><strong>Mindfulness<\/strong> : Patients soumis \u00e0 un protocole standardis\u00e9 de r\u00e9duction du stress bas\u00e9e sur la pleine conscience (MBSR) dispens\u00e9 en huit s\u00e9ances de groupe (<span class=\"arabpsy-math-inline\" data-latex=\"n_2 = 32\">$n_2 = 32$<\/span>).<\/li>\n<li><strong>TCC<\/strong> : Patients participant \u00e0 une th\u00e9rapie cognitivo-comportementale formalis\u00e9e ciblant les distorsions cognitives et les croyances m\u00e9tacognitives relatives \u00e0 l&rsquo;inqui\u00e9tude chronique (<span class=\"arabpsy-math-inline\" data-latex=\"n_3 = 28\">$n_3 = 28$<\/span>).<\/li>\n<\/ul>\n<p>La variable d\u00e9pendante principale est constitu\u00e9e par le score total obtenu \u00e0 l&rsquo;inventaire d&rsquo;anxi\u00e9t\u00e9 de Beck (<em>Beck Anxiety Inventory<\/em> ou BAI) administr\u00e9 \u00e0 l&rsquo;issue des huit semaines de prise en charge. Le score BAI est un indice ordonn\u00e9 discret pouvant osciller th\u00e9oriquement entre 0 et 63 points. Dans les populations cliniques, cette m\u00e9trique se caract\u00e9rise notoirement par une forte asym\u00e9trie positive (la majorit\u00e9 des patients r\u00e9pondant favorablement au traitement se regroupant sur des scores bas, g\u00e9n\u00e9rant un plancher distributionnel, tandis qu&rsquo;un sous-groupe r\u00e9fractaire maintient des scores de s\u00e9v\u00e9rit\u00e9 tr\u00e8s \u00e9lev\u00e9s dans la queue de distribution \u00e0 droite).<\/p>\n<p>Les hypoth\u00e8ses scientifiques formalis\u00e9es a priori s&rsquo;\u00e9noncent comme suit :<\/p>\n<ul>\n<li><span class=\"arabpsy-math-inline\" data-latex=\"H_0\">$H_0$<\/span> globale : La fonction de r\u00e9partition des scores de d\u00e9tresse sur l&rsquo;inventaire BAI est rigoureusement identique dans les trois populations exp\u00e9rimentales (homog\u00e9n\u00e9it\u00e9 stochastique globale).<\/li>\n<li><span class=\"arabpsy-math-inline\" data-latex=\"H_1\">$H_1$<\/span> globale : Au moins l&rsquo;une des conditions th\u00e9rapeutiques g\u00e9n\u00e8re une distribution de scores BAI qui domine stochastiquement celle d&rsquo;une autre condition.<\/li>\n<li>Hypoth\u00e8ses par paires sp\u00e9cifiques post-hoc : La TCC et la pleine conscience induisent chacune une att\u00e9nuation significative de la symptomatologie anxieuse comparativement au groupe contr\u00f4le sur liste d&rsquo;attente, tandis qu&rsquo;une divergence d&rsquo;efficacit\u00e9 clinique relative est attendue entre les deux th\u00e9rapies actives.<\/li>\n<\/ul>\n<h3>8.2 Script complet de traitement statistique de bout en bout<\/h3>\n<p>Le script Python suivant impl\u00e9mente l&rsquo;int\u00e9gralit\u00e9 du pipeline m\u00e9thodologique : simulation d&rsquo;un jeu de donn\u00e9es synth\u00e9tique r\u00e9aliste pr\u00e9sentant une asym\u00e9trie marqu\u00e9e via des tirages dans une distribution gamma, inspection descriptive, ex\u00e9cution conditionnelle du test de Kruskal-Wallis, application du test de Dunn avec ajustement s\u00e9quentiel de Holm-Bonferroni, et conversion des r\u00e9sultats sous forme structur\u00e9e tabulaire.<\/p>\n<p><code>import numpy as np<br \/>\nimport pandas as pd<br \/>\nimport scipy.stats as stats<br \/>\nimport scikit_posthocs as sp<\/p>\n<p># 1. Initialisation d\u00e9terministe du g\u00e9n\u00e9rateur al\u00e9atoire<br \/>\nrng = np.random.default_rng(seed=2024)<\/p>\n<p># 2. Simulation de scores d'anxi\u00e9t\u00e9 asym\u00e9triques (distribution gamma discr\u00e9tis\u00e9e)<br \/>\nscores_controle = np.clip(rng.gamma(shape=7.0, scale=4.0, size=30), 0, 63).astype(int)<br \/>\nscores_mindfulness = np.clip(rng.gamma(shape=5.0, scale=3.5, size=32), 0, 63).astype(int)<br \/>\nscores_tcc = np.clip(rng.gamma(shape=3.5, scale=3.0, size=28), 0, 63).astype(int)<\/p>\n<p># 3. Assemblage du DataFrame au format long (tidy data)<br \/>\ndf_clinique = pd.DataFrame({<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;'Score_BAI': np.concatenate([scores_controle, scores_mindfulness, scores_tcc]),<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;'Protocole': (['Controle'] * 30) + (['Mindfulness'] * 32) + (['TCC'] * 28)<br \/>\n})<br \/>\ndf_clinique['Protocole'] = df_clinique['Protocole'].astype('category')<\/p>\n<p># 4. Statistiques descriptives de rangs et de position<br \/>\ndf_clinique['Rang_Global'] = df_clinique['Score_BAI'].rank()<br \/>\nresume_stats = df_clinique.groupby('Protocole', observed=True).agg(<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;N=('Score_BAI', 'count'),<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;Mediane=('Score_BAI', 'median'),<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;IQR=('Score_BAI', lambda x: np.percentile(x, 75) - np.percentile(x, 25)),<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;Rang_Moyen=('Rang_Global', 'mean')<br \/>\n).reset_index()<\/p>\n<p>print(\"=== STATISTIQUES DESCRIPTIVES ===\")<br \/>\nprint(resume_stats.to_string(index=False))<br \/>\nprint(\"n\")<\/p>\n<p># 5. Inf\u00e9rence Omnibus : Test de Kruskal-Wallis<br \/>\nechantillons = [df_clinique[df_clinique['Protocole'] == m]['Score_BAI'].values for m in df_clinique['Protocole'].cat.categories]<br \/>\nH_stat, p_omnibus = stats.kruskal(*echantillons)<\/p>\n<p>print(\"=== INFERENCE OMNIBUS (KRUSKAL-WALLIS) ===\")<br \/>\nprint(f\"H = {H_stat:.3f}, ddl = {len(echantillons)-1}, p = {p_omnibus:.4e}\")<br \/>\nprint(\"n\")<\/p>\n<p># 6. D\u00e9cision conditionnelle et Inf\u00e9rence Post-Hoc : Test de Dunn (Holm)<br \/>\nif p_omnibus &lt; 0.05:<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;print(\"=== INFERENCE POST-HOC : TEST DE DUNN (AJUSTEMENT HOLM) ===\")<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;matrice_dunn_holm = sp.posthoc_dunn(<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;df_clinique,<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val_col='Score_BAI',<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;group_col='Protocole',<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p_adjust='holm'<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;)<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;print(matrice_dunn_holm)<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;print(\"n\")<br \/>\nelse:<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;print(\"Test omnibus non significatif. Aucune analyse post-hoc ex\u00e9cut\u00e9e.\")<\/code><\/p>\n<h3>8.3 D\u00e9construction pas \u00e0 pas des r\u00e9sultats obtenus<\/h3>\n<p>L&rsquo;ex\u00e9cution scripturale ci-dessus fournit une s\u00e9rie de sorties chiffr\u00e9es qu&rsquo;il convient de d\u00e9construire avec minutie afin de comprendre la dynamique inf\u00e9rentielle \u00e0 l&rsquo;\u0153uvre. En premier lieu, l&rsquo;examen des statistiques descriptives r\u00e9v\u00e8le des m\u00e9dianes de scores d&rsquo;anxi\u00e9t\u00e9 s&rsquo;\u00e9tablissant approximativement \u00e0 27,5 pour le groupe Contr\u00f4le, \u00e0 17,0 pour le protocole Pleine Conscience (Mindfulness) et \u00e0 10,0 pour le groupe soumis \u00e0 la Th\u00e9rapie Cognitivo-Comportementale (TCC). Les rangs moyens globaux refl\u00e8tent cette progression ordinale : le groupe Contr\u00f4le enregistre un rang moyen d&rsquo;environ 63,4, le groupe Mindfulness un rang de 44,2, tandis que le protocole TCC culmine sur les scores les plus favorables avec un rang moyen r\u00e9duit \u00e0 environ 26,8.<\/p>\n<p>L&rsquo;\u00e9tape omnibus confirme la pertinence de l&rsquo;analyse : la statistique de Kruskal-Wallis atteint une valeur de <span class=\"arabpsy-math-inline\" data-latex=\"H \\approx 31{,}42\">$H \\approx 31{,}42$<\/span> avec 2 degr\u00e9s de libert\u00e9, g\u00e9n\u00e9rant une valeur p asymptotique de l&rsquo;ordre de <span class=\"arabpsy-math-inline\" data-latex=\"1{,}5 \\times 10^{-7}\">$1{,}5 \\times 10^{-7}$<\/span>. Ce r\u00e9sultat autorise sans \u00e9quivoque le rejet de l&rsquo;hypoth\u00e8se nulle d&rsquo;homog\u00e9n\u00e9it\u00e9 stochastique globale \u00e0 un seuil critique tr\u00e8s largement inf\u00e9rieur \u00e0 <span class=\"arabpsy-math-inline\" data-latex=\"\\alpha = 0{,}001\">$\\alpha = 0{,}001$<\/span>. Le passage au protocole post-hoc de Dunn est donc pleinement l\u00e9gitim\u00e9.<\/p>\n<p>L&rsquo;inspection de la matrice triangulaire r\u00e9sultant du test de Dunn avec ajustement s\u00e9quentiel de Holm permet de caract\u00e9riser pr\u00e9cis\u00e9ment l&rsquo;architecture des contrastes cliniques :<\/p>\n<ol>\n<li><strong>Contraste TCC versus Contr\u00f4le<\/strong> : La valeur p ajust\u00e9e s&rsquo;\u00e9tablit \u00e0 une magnitude extr\u00eamement faible (<span class=\"arabpsy-math-inline\" data-latex=\"p_{ajustee} &lt; 0{,}0001\">$p_{ajustee} &lt; 0{,}0001$<\/span>). L&rsquo;\u00e9cart entre le rang moyen du groupe TCC (26,8) et celui du groupe Contr\u00f4le (63,4) est massif. L&rsquo;inf\u00e9rence d\u00e9montre formellement la sup\u00e9riorit\u00e9 statistique hautement significative de la TCC sur l&rsquo;absence de prise en charge psychologique active.<\/li>\n<li><strong>Contraste Mindfulness versus Contr\u00f4le<\/strong> : La comparaison dyadique produit une valeur p ajust\u00e9e de l&rsquo;ordre de <span class=\"arabpsy-math-inline\" data-latex=\"p_{ajustee} \\approx 0{,}004\">$p_{ajustee} \\approx 0{,}004$<\/span>. L&rsquo;hypoth\u00e8se nulle est ici encore fermement rejet\u00e9e. Le protocole de pleine conscience induit une diminution statistiquement significative des scores d&rsquo;anxi\u00e9t\u00e9 comparativement au suivi standard sur liste d&rsquo;attente.<\/li>\n<li><strong>Contraste TCC versus Mindfulness<\/strong> : L&rsquo;interrogation de l&rsquo;\u00e9cart s\u00e9parant les deux approches psychoth\u00e9rapeutiques actives g\u00e9n\u00e8re une valeur p corrig\u00e9e de <span class=\"arabpsy-math-inline\" data-latex=\"p_{ajustee} \\approx 0{,}018\">$p_{ajustee} \\approx 0{,}018$<\/span>. Dans la mesure o\u00f9 cette valeur demeure strictement inf\u00e9rieure au seuil alpha conventionnel de 0,05, nous sommes fond\u00e9s \u00e0 conclure \u00e0 l&rsquo;existence d&rsquo;une diff\u00e9rence d&rsquo;efficacit\u00e9 statistiquement d\u00e9montr\u00e9e entre les deux th\u00e9rapies actives, la th\u00e9rapie cognitivo-comportementale d\u00e9montrant une dominance stochastique sup\u00e9rieure sur le soulagement des scores de s\u00e9v\u00e9rit\u00e9 anxieuse mesur\u00e9s via le BAI dans cet \u00e9chantillon clinique.<\/li>\n<\/ol>\n<p>Sur le plan des applications cliniques et de la mod\u00e9lisation en sant\u00e9 mentale, ces d\u00e9ductions confirment que si la m\u00e9ditation de pleine conscience offre un levier th\u00e9rapeutique r\u00e9el et mesurable face \u00e0 l&rsquo;inertie de la liste d&rsquo;attente, la restructuration cognitive et l&rsquo;exposition inh\u00e9rentes au protocole de TCC procurent un b\u00e9n\u00e9fice th\u00e9rapeutique additionnel significatif dans la prise en charge symptomatique du TAG.<\/p>\n<h2>9. Visualisation graphique avanc\u00e9e des r\u00e9sultats de Dunn<\/h2>\n<h3>9.1 G\u00e9n\u00e9ration d&rsquo;une carte thermique (Heatmap) des p-valeurs<\/h3>\n<p>Dans les contextes exp\u00e9rimentaux complexes impliquant un grand nombre de modalit\u00e9s factorielles, la lecture aride de tables matricielles denses fatigue l&rsquo;attention visuelle de l&rsquo;\u00e9valuateur. La conversion de la matrice des valeurs p en une carte thermique (<em>heatmap<\/em>) chromatique permet d&rsquo;appr\u00e9hender instantan\u00e9ment la cartographie des contrastes significatifs. La biblioth\u00e8que <code>scikit-posthocs<\/code> int\u00e8gre une routine native d\u00e9nomm\u00e9e <code>sign_plot()<\/code>, mais la combinaison conjointe des m\u00e9thodes d&rsquo;habillage graphique de <strong>Seaborn<\/strong> et de <strong>Matplotlib<\/strong> offre un contr\u00f4le esth\u00e9tique et fonctionnel infiniment plus raffin\u00e9.<\/p>\n<p>L&rsquo;enjeu graphique fondamental r\u00e9side dans la d\u00e9finition d&rsquo;un gradient de couleurs divergent dont le point d&rsquo;inflexion visuel correspond rigoureusement au seuil de d\u00e9cision statistique critique fix\u00e9 conventionnellement \u00e0 <span class=\"arabpsy-math-inline\" data-latex=\"\\alpha = 0{,}05\">$\\alpha = 0{,}05$<\/span>. L&rsquo;utilisation d&rsquo;une \u00e9chelle logarithmique inverse ou d&rsquo;une palette bicolore contrast\u00e9e (par exemple bleu pour les contrastes non significatifs et rouge vermillon pour les paires franchissant le seuil d&rsquo;exclusion) guide imm\u00e9diatement le regard vers les d\u00e9couvertes statistiquement robustes.<\/p>\n<p>Le script suivant assure la g\u00e9n\u00e9ration compl\u00e8te d&rsquo;une carte thermique publication-ready \u00e0 partir de la matrice de Dunn ajust\u00e9e selon Holm :<\/p>\n<p><code># Configuration globale de l'esth\u00e9tique graphique<br \/>\nplt.figure(figsize=(7, 6), dpi=300)<br \/>\nsns.set_theme(style='white', font='Arial')<\/p>\n<p># Masque triangulaire sup\u00e9rieur pour \u00e9liminer la redondance bilat\u00e9rale<br \/>\nmasque_superieur = np.triu(np.ones_like(matrice_dunn_holm, dtype=bool))<\/p>\n<p># Trac\u00e9 de la carte thermique annot\u00e9e<br \/>\ncarte_thermique = sns.heatmap(<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;matrice_dunn_holm,<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;mask=masque_superieur,<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;annot=True,<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;fmt=\".3f\",<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;cmap=\"vlag_r\",<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;vmin=0.00,<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;vmax=0.10,<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;cbar_kws={'label': 'Valeur p ajust\u00e9e (Holm)'},<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;linewidths=1.0,<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;linecolor='white'<br \/>\n)<\/p>\n<p>plt.title(\"Matrice des contrastes de Dunn post-hoc\", fontsize=13, weight='bold', pad=15)<br \/>\nplt.xlabel(\"Groupe exp\u00e9rimental\", fontsize=11, labelpad=10)<br \/>\nplt.ylabel(\"Groupe exp\u00e9rimental\", fontsize=11, labelpad=10)<br \/>\nplt.tight_layout()<br \/>\nplt.show()<\/code><\/p>\n<p>Ce type de rendu visuel \u00e9limine toute ambigu\u00eft\u00e9 d&rsquo;interpr\u00e9tation et se pr\u00eate parfaitement \u00e0 l&rsquo;insertion dans des pr\u00e9sentations orales scientifiques ou des rapports d&rsquo;audit statistique.<\/p>\n<h3>9.2 Repr\u00e9sentation conjointe des distributions et annotations de significativit\u00e9<\/h3>\n<p>Si la matrice thermique excelle dans l&rsquo;\u00e9valuation des valeurs p, elle demeure muette quant \u00e0 la directionnalit\u00e9 et \u00e0 la dispersion physique des donn\u00e9es primaires. La figure reine en publication biom\u00e9dicale et psychologique consiste \u00e0 juxtaposer, sur un m\u00eame plan g\u00e9om\u00e9trique, l&rsquo;architecture distributionnelle des donn\u00e9es brutes et les indicateurs synth\u00e9tiques de significativit\u00e9 statistique sous forme de barres de comparaison surmont\u00e9es d&rsquo;ast\u00e9risques standardis\u00e9s (* pour <span class=\"arabpsy-math-inline\" data-latex=\"p &lt; 0{,}05\">$p &lt; 0{,}05$<\/span>, ** pour <span class=\"arabpsy-math-inline\" data-latex=\"p &lt; 0{,}01\">$p &lt; 0{,}01$<\/span>, *** pour <span class=\"arabpsy-math-inline\" data-latex=\"p &lt; 0{,}001\">$p &lt; 0{,}001$<\/span>).<\/p>\n<p>La superposition d&rsquo;un diagramme en bo\u00eete de Tukey classique (<em>boxplot<\/em>) tronqu\u00e9 et d&rsquo;un nuage de points individuels jitteris\u00e9s (<em>stripplot<\/em>) offre une transparence descriptive absolue. Le diagramme en bo\u00eete documente les quantiles de la population, tandis que le nuage de points r\u00e9v\u00e8le la densit\u00e9 r\u00e9elle des observations, pr\u00e9venant toute dissimulation d&rsquo;agr\u00e9gats bimodaux sous une bo\u00eete faussement homog\u00e8ne.<\/p>\n<p>L&rsquo;int\u00e9gration programmatique des barres de significativit\u00e9 s&rsquo;op\u00e8re directement \u00e0 l&rsquo;aide des primitives graphiques de Matplotlib :<\/p>\n<p><code>fig, ax = plt.subplots(figsize=(8, 6), dpi=300)<\/p>\n<p># Superposition boxplot et stripplot<br \/>\nsns.boxplot(x='Protocole', y='Score_BAI', data=df_clinique, ax=ax, width=0.45, palette='Set2', boxprops=dict(alpha=0.8), showmeans=False)<br \/>\nsns.stripplot(x='Protocole', y='Score_BAI', data=df_clinique, ax=ax, size=6, color='black', alpha=0.4, jitter=0.2)<\/p>\n<p># Trac\u00e9 manuel programmatique d'une barre de comparaison entre Contr\u00f4le (idx 0) et TCC (idx 2)<br \/>\nx1, x2 = 0, 2<br \/>\ny_barre = df_clinique['Score_BAI'].max() + 4<br \/>\nhauteur_tige = 1.5<\/p>\n<p>ax.plot([x1, x1, x2, x2], [y_barre, y_barre + hauteur_tige, y_barre + hauteur_tige, y_barre], lw=1.2, c='black')<br \/>\nax.text((x1 + x2) * 0.5, y_barre + hauteur_tige + 0.5, \"***\", ha='center', va='bottom', color='black', fontsize=12, weight='bold')<\/p>\n<p>ax.set_title(\"Distribution des scores d'anxi\u00e9t\u00e9 (BAI) par groupe d'intervention\", fontsize=12, weight='bold', pad=15)<br \/>\nax.set_xlabel(\"Protocole d'intervention clinique\", fontsize=10, labelpad=10)<br \/>\nax.set_ylabel(\"Score d'anxi\u00e9t\u00e9 de Beck (Points)\", fontsize=10, labelpad=10)<br \/>\nax.set_ylim(bottom=-2, top=y_barre + 8)<br \/>\nsns.despine(top=True, right=True)<br \/>\nplt.tight_layout()<br \/>\nplt.show()<\/code><\/p>\n<p>Ce format iconographique r\u00e9pond en tous points aux exigences de clart\u00e9 documentaire promues par les directives \u00e9ditoriales des revues savantes internationales.<\/p>\n<h3>9.3 Diagrammes de rangs et graphiques de contrastes<\/h3>\n<p>Dans la mesure exacte o\u00f9 le test de Dunn ne teste pas l&rsquo;\u00e9galit\u00e9 des m\u00e9dianes brutes mais l&rsquo;\u00e9galit\u00e9 des rangs moyens sous l&rsquo;hypoth\u00e8se de distributions partag\u00e9es, une rigueur m\u00e9thodologique absolue incite \u00e0 repr\u00e9senter directement l&rsquo;espace latent des rangs moyens exp\u00e9rimentaux accompagn\u00e9s de leurs intervalles d&rsquo;incertitude. Le diagramme de contrastes (ou graphique en for\u00eat, <em>forest plot<\/em>) s&rsquo;impose ici comme le v\u00e9hicule visuel le plus fid\u00e8le \u00e0 la machinerie statistique interne du test.<\/p>\n<p>Un tel graphique trace sur l&rsquo;axe des ordonn\u00e9es l&rsquo;ensemble des comparaisons par paires et sur l&rsquo;axe des abscisses l&rsquo;amplitude standardis\u00e9e de la diff\u00e9rence des rangs moyens <span class=\"arabpsy-math-inline\" data-latex=\"(\\bar{R}_i - \\bar{R}_j)\">$(\\bar{R}_i &#8211; \\bar{R}_j)$<\/span>, flanqu\u00e9e de son intervalle de confiance asymptotique calcul\u00e9 \u00e0 partir de l&rsquo;erreur type <span class=\"arabpsy-math-inline\" data-latex=\"SE_{ij}\">$SE_{ij}$<\/span> pond\u00e9r\u00e9e par le quantile critique de la loi normale centr\u00e9e r\u00e9duite ajust\u00e9 au seuil global choisi. Une ligne verticale d&rsquo;abscisse z\u00e9ro repr\u00e9sente l&rsquo;hypoth\u00e8se nulle d&rsquo;indiff\u00e9renciation stochastique : tout intervalle s\u00e9cant cette ligne axiale formalise un contraste non statistiquement concluant, tandis que tout segment enti\u00e8rement disjoint du z\u00e9ro atteste d&rsquo;un rejet univoque de l&rsquo;hypoth\u00e8se nulle.<\/p>\n<p>Lors de la phase finale de pr\u00e9paration documentaire pour soumission \u00e0 l&rsquo;\u00e9diteur, ces visualisations doivent imp\u00e9rativement \u00eatre export\u00e9es sous des formats vectoriels haute r\u00e9solution (format PDF vectoriel ou SVG) pr\u00e9servant l&rsquo;int\u00e9grit\u00e9 topologique des textes et trac\u00e9s ind\u00e9pendamment du facteur d&rsquo;agrandissement, ou a minima sous forme de fichiers matriciels compress\u00e9s sans perte (PNG calibr\u00e9 \u00e0 une densit\u00e9 spatiale minimale de 300 points par pouce ou DPI) via l&rsquo;instruction :<\/p>\n<p><code>plt.savefig(\"resultats_contrastes_dunn.pdf\", format='pdf', bbox_inches='tight')<br \/>\nplt.savefig(\"resultats_contrastes_dunn.png\", dpi=300, bbox_inches='tight')<\/code><\/p>\n<h2>10. Calcul de la taille d&rsquo;effet pour les comparaisons par paires<\/h2>\n<h3>10.1 Importance \u00e9pist\u00e9mologique de la taille d&rsquo;effet en recherche exp\u00e9rimentale<\/h3>\n<p>L&rsquo;inf\u00e9rence statistique bas\u00e9e exclusivement sur la valeur p pr\u00e9sente une faille conceptuelle r\u00e9dhibitoire d\u00e9nonc\u00e9e avec vigueur par l&rsquo;<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/www.apa.org\">American Psychological Association<\/a> depuis plusieurs d\u00e9cennies : la valeur p est une mesure composite intriquant indissociablement la magnitude r\u00e9elle du ph\u00e9nom\u00e8ne \u00e9tudi\u00e9 et la puissance d&rsquo;\u00e9chantillonnage de l&rsquo;exp\u00e9rience (la taille d&rsquo;\u00e9chantillon <span class=\"arabpsy-math-inline\" data-latex=\"N\">$N$<\/span>). Avec un \u00e9chantillon suffisamment vaste, une diff\u00e9rence de rang moyen microscopique, d\u00e9nu\u00e9e de la moindre utilit\u00e9 pratique ou pertinence clinique, franchira in\u00e9vitablement le seuil de significativit\u00e9 statistique (<span class=\"arabpsy-math-inline\" data-latex=\"p &lt; 0{,}05\">$p &lt; 0{,}05$<\/span>). Inversement, dans une cohorte \u00e0 effectifs r\u00e9duits explorant des pathologies orphelines, un effet th\u00e9rapeutique majeur peut \u00e9chouer \u00e0 atteindre le seuil de significativit\u00e9 par simple d\u00e9ficit de puissance math\u00e9matique.<\/p>\n<p>La d\u00e9termination de la taille d&rsquo;effet (<em>effect size<\/em>) constitue donc un imp\u00e9ratif m\u00e9thodologique incontournable. Les m\u00e9triques de taille d&rsquo;effet fournissent une estimation quantitative standardis\u00e9e, affranchie de la taille de l&rsquo;\u00e9chantillon, de l&rsquo;amplitude du contraste observ\u00e9. Elles permettent aux praticiens d&rsquo;\u00e9valuer l&rsquo;int\u00e9r\u00eat clinique r\u00e9el d&rsquo;un protocole d&rsquo;intervention et constituent le substrat quantitatif indispensable \u00e0 la r\u00e9alisation future de m\u00e9ta-analyses int\u00e9gratives compilant les donn\u00e9es de multiples laboratoires \u00e0 travers le monde.<\/p>\n<h3>10.2 Formulation du coefficient r de Wilcoxon \/ Dunn<\/h3>\n<p>Dans le domaine non param\u00e9trique, l&rsquo;indicateur de taille d&rsquo;effet le plus rigoureusement document\u00e9 et le plus largement adopt\u00e9 pour quantifier les contrastes bas\u00e9s sur les rangs est le coefficient de corr\u00e9lation de rang biserte <span class=\"arabpsy-math-inline\" data-latex=\"r\">$r$<\/span> de Rosenthal-Wilcoxon. Ce coefficient standardis\u00e9 convertit la statistique asymptotique <span class=\"arabpsy-math-inline\" data-latex=\"z\">$z$<\/span> issue de la diff\u00e9rence des rangs en une m\u00e9trique d&rsquo;association born\u00e9e th\u00e9oriquement sur l&rsquo;intervalle <span class=\"arabpsy-math-inline\" data-latex=\"[0, 1]\">$[0, 1]$<\/span> pour sa valeur absolue.<\/p>\n<p>La formulation analytique exacte reliant le score standardis\u00e9 <span class=\"arabpsy-math-inline\" data-latex=\"z\">$z$<\/span> du contraste de Dunn \u00e0 la taille de l&rsquo;\u00e9chantillon impliqu\u00e9 dans la dyade consid\u00e9r\u00e9e s&rsquo;\u00e9nonce comme suit :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"r = \\frac{|z|}{\\sqrt{N_{paire}}}\">$$r = \\frac{|z|}{\\sqrt{N_{paire}}}$$<\/span><\/p>\n<p>o\u00f9 <span class=\"arabpsy-math-inline\" data-latex=\"|z|\">$|z|$<\/span> repr\u00e9sente la valeur absolue de la statistique normale centr\u00e9e r\u00e9duite associ\u00e9e au contraste sp\u00e9cifique s\u00e9parant le groupe <span class=\"arabpsy-math-inline\" data-latex=\"i\">$i$<\/span> du groupe <span class=\"arabpsy-math-inline\" data-latex=\"j\">$j$<\/span>, et <span class=\"arabpsy-math-inline\" data-latex=\"N_{paire} = n_i + n_j\">$N_{paire} = n_i + n_j$<\/span> repr\u00e9sente l&rsquo;effectif combin\u00e9 restreint aux deux seuls sous-groupes engag\u00e9s dans cette comparaison dyadique sp\u00e9cifique. (Il convient de noter une divergence m\u00e9thodologique mineure dans la litt\u00e9rature : certains auteurs pr\u00e9conisent l&rsquo;utilisation de l&rsquo;effectif total <span class=\"arabpsy-math-inline\" data-latex=\"N\">$N$<\/span> agr\u00e9g\u00e9 de toute l&rsquo;\u00e9tude au d\u00e9nominateur ; n\u00e9anmoins, l&#8217;emploi de la taille d&rsquo;\u00e9chantillon locale de la paire <span class=\"arabpsy-math-inline\" data-latex=\"n_i + n_j\">$n_i + n_j$<\/span> pr\u00e9vaut largement dans les standards de publication actuels, car elle \u00e9vite d&rsquo;\u00e9craser artificiellement la taille d&rsquo;effet relative d&rsquo;un contraste lorsque l&rsquo;\u00e9tude globale englobe un nombre volumineux d&rsquo;autres groupes distants).<\/p>\n<p>Pour guider l&rsquo;interpr\u00e9tation qualitative de cette m\u00e9trique, les balises de r\u00e9f\u00e9rence propos\u00e9es historiquement par Jacob Cohen dans le cadre des coefficients de corr\u00e9lation s&rsquo;appliquent fid\u00e8lement :<\/p>\n<ul>\n<li><span class=\"arabpsy-math-inline\" data-latex=\"r \\approx 0{,}10\">$r \\approx 0{,}10$<\/span> : Effet d&rsquo;amplitude faible (diff\u00e9rence perceptible uniquement sur de larges cohortes).<\/li>\n<li><span class=\"arabpsy-math-inline\" data-latex=\"r \\approx 0{,}30\">$r \\approx 0{,}30$<\/span> : Effet d&rsquo;amplitude mod\u00e9r\u00e9e (diff\u00e9rence cliniquement significative et observable en pratique courante).<\/li>\n<li><span class=\"arabpsy-math-inline\" data-latex=\"r ge 0{,}50\">$r ge 0{,}50$<\/span> : Effet d&rsquo;amplitude forte \u00e0 majeure (divergence massive entre les populations d&rsquo;int\u00e9r\u00eat).<\/li>\n<\/ul>\n<h3>10.3 Impl\u00e9mentation algorithmique d&rsquo;une fonction Python sur mesure<\/h3>\n<p>Bien que la biblioth\u00e8que <code>scikit-posthocs<\/code> d\u00e9livre avec une parfaite fiabilit\u00e9 les matrices de valeurs p via <code>posthoc_dunn()<\/code>, elle n&rsquo;extrait pas directement par d\u00e9faut les statistiques <span class=\"arabpsy-math-inline\" data-latex=\"z\">$z$<\/span> interm\u00e9diaires ni les coefficients <span class=\"arabpsy-math-inline\" data-latex=\"r\">$r$<\/span> de taille d&rsquo;effet associ\u00e9s. Il est donc hautement profitable pour le chercheur de disposer d&rsquo;une fonction algorithmique personnalis\u00e9e, vectoris\u00e9e et modulaire, capable de d\u00e9river les valeurs <span class=\"arabpsy-math-inline\" data-latex=\"z\">$z$<\/span> exactes \u00e0 partir des valeurs p asymptotiques bilat\u00e9rales brutes et de calculer syst\u00e9matiquement les tailles d&rsquo;effet correspondantes pour chaque dyade du protocole.<\/p>\n<p>La conversion d&rsquo;une probabilit\u00e9 unilat\u00e9rale ou bilat\u00e9rale en quantile d&rsquo;\u00e9cart normal s&rsquo;op\u00e8re \u00e9l\u00e9gamment via la fonction quantile de la distribution normale standard (la <em>percent point function<\/em> ou <code>stats.norm.ppf<\/code>). Le script Python ci-dessous fournit une routine automatis\u00e9e int\u00e9grant ces calculs :<\/p>\n<p><code>def table_dunn_avec_tailles_effet(df, col_val, col_grp, methode_ajust='holm'):<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;import scipy.stats as stats<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;import scikit_posthocs as sp<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;import pandas as pd<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;import numpy as np<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;# Extraction des p-valeurs brutes et ajust\u00e9es<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;mat_brute = sp.posthoc_dunn(df, val_col=col_val, group_col=col_grp, p_adjust=None)<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;mat_ajust = sp.posthoc_dunn(df, val_col=col_val, group_col=col_grp, p_adjust=methode_ajust)<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;groupes = df[col_grp].unique()<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;comptages = df.groupby(col_grp, observed=True)[col_val].count()<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;resultats = []<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;for i in range(len(groupes)):<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for j in range(i + 1, len(groupes)):<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g1, g2 = groupes[i], groupes[j]<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p_brute = mat_brute.loc[g1, g2]<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p_ajust = mat_ajust.loc[g1, g2]<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Reconstitution de la statistique |z| sous l'hypoth\u00e8se asymptotique<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;z_val = stats.norm.ppf(1.0 - (p_brute \/ 2.0))<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Calcul de l'effectif local combin\u00e9 de la paire<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n_paire = comptages[g1] + comptages[g2]<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;taille_effet_r = z_val \/ np.sqrt(n_paire)<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Qualification qualitative selon les crit\u00e8res de Cohen<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if taille_effet_r &lt; 0.30:<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;magnitude = \"Faible\"<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elif taille_effet_r &lt; 0.50:<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;magnitude = \"Mod\u00e9r\u00e9e\"<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else:<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;magnitude = \"Forte\"<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultats.append({<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Comparaison': f\"{g1} vs {g2}\",<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Statistique_z': np.round(z_val, 3),<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'P_Brute': f\"{p_brute:.4e}\",<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'P_Ajustee': f\"{p_ajust:.4e}\",<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Taille_Effet_r': np.round(taille_effet_r, 3),<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Magnitude': magnitude<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;return pd.DataFrame(resultats)<\/p>\n<p>df_synthese_complete = table_dunn_avec_tailles_effet(df_clinique, 'Score_BAI', 'Protocole', 'holm')<br \/>\nprint(df_synthese_complete.to_string(index=False))<\/code><\/p>\n<p>L&rsquo;int\u00e9gration de cette routine au sein de vos analyses consolide instantan\u00e9ment la rigueur quantitative de vos travaux en livrant l&rsquo;ensemble du faisceau de preuves exig\u00e9 par les relecteurs m\u00e9thodologistes les plus exigeants.<\/p>\n<h2>11. Erreurs fr\u00e9quentes, pi\u00e8ges m\u00e9thodologiques et bonnes pratiques<\/h2>\n<h3>11.1 Erreurs de syntaxe et de manipulation de donn\u00e9es courantes<\/h3>\n<p>Dans la conduite computationnelle du test de Dunn sous Python, une proportion substantielle des anomalies d&rsquo;ex\u00e9cution ou d&rsquo;inf\u00e9rence r\u00e9sulte d&rsquo;erreurs de syntaxe \u00e9l\u00e9mentaires ou d&rsquo;incompr\u00e9hensions li\u00e9es aux signatures de fonctions. La m\u00e9prise la plus fr\u00e9quente consiste \u00e0 inverser involontairement l&rsquo;attribution des arguments nominaux <code>val_col<\/code> et <code>group_col<\/code> lors de l&rsquo;appel \u00e0 <code>posthoc_dunn()<\/code>. Tenter d&rsquo;assigner une colonne de labels textuels \u00e0 <code>val_col<\/code> d\u00e9clenche invariablement une exception syst\u00e8me de type <code>TypeError<\/code> ou produit une tentative aberrante de calcul de rangs sur des cha\u00eenes de caract\u00e8res ordonn\u00e9es alphab\u00e9tiquement.<\/p>\n<p>Un autre pi\u00e8ge pernicieux r\u00e9side dans la pr\u00e9sence masqu\u00e9e de valeurs manquantes (valeurs <code>NaN<\/code> ou <code>None<\/code>). Si Pandas tol\u00e8re g\u00e9n\u00e9ralement la pr\u00e9sence de ces donn\u00e9es lacunaires lors de l&rsquo;ex\u00e9cution d&rsquo;op\u00e9rations d&rsquo;agr\u00e9gation simples en les \u00e9liminant silencieusement, le passage de structures contenant des cellules vides \u00e0 certains algorithmes sous-jacents de <code>scikit-posthocs<\/code> peut g\u00e9n\u00e9rer une troncature silencieuse de la taille d&rsquo;\u00e9chantillon globale <span class=\"arabpsy-math-inline\" data-latex=\"N\">$N$<\/span>, biaisant math\u00e9matiquement le calcul de l&rsquo;erreur type asymptotique par fausse estimation de la variance th\u00e9orique sous hypoth\u00e8se nulle. Un nettoyage explicite pr\u00e9alable via <code>dropna()<\/code> est une pr\u00e9caution imp\u00e9rative.<\/p>\n<p>Enfin, une confusion persiste r\u00e9guli\u00e8rement autour de la typographie exacte des cha\u00eenes de caract\u00e8res pilotant l&rsquo;ajustement des valeurs p. Sp\u00e9cifier par inadvertance <code>p_adjust='bonf'<\/code> ou <code>p_adjust='BH'<\/code> (en majuscules) d\u00e9clenchera une exception d&rsquo;ex\u00e9cution, le moteur <code>statsmodels<\/code> sous-jacent attendant scrupuleusement les d\u00e9signations normalis\u00e9es en minuscules, telles que <code>'bonferroni'<\/code>, <code>'holm'<\/code> ou <code>'fdr_bh'<\/code>. L&rsquo;audit scrupuleux du dictionnaire d&rsquo;arguments pr\u00e9vient ces interruptions chronophages.<\/p>\n<h3>11.2 Controverses m\u00e9thodologiques et d\u00e9rives analytiques<\/h3>\n<p>Au-del\u00e0 des simples maladresses algorithmiques, plusieurs d\u00e9rives conceptuelles fragilisent r\u00e9guli\u00e8rement la validit\u00e9 des inf\u00e9rences non param\u00e9triques publi\u00e9es. La premi\u00e8re d\u00e9rive r\u00e9side dans la tentation du <em>p-hacking<\/em> par s\u00e9lection a posteriori de la m\u00e9thode de correction. Un analyste observant qu&rsquo;un contraste fronti\u00e8re atteint <span class=\"arabpsy-math-inline\" data-latex=\"p = 0{,}046\">$p = 0{,}046$<\/span> sous l&rsquo;algorithme de Benjamini-Hochberg, mais recule \u00e0 <span class=\"arabpsy-math-inline\" data-latex=\"p = 0{,}081\">$p = 0{,}081$<\/span> sous la correction de Holm, commettrait une grave infraction \u00e0 l&rsquo;\u00e9thique scientifique en optant r\u00e9troactivement pour le FDR sans d\u00e9clarer ouvertement ce choix comme exploratoire. Le cadre d&rsquo;ajustement doit imp\u00e9rativement faire l&rsquo;objet d&rsquo;un pr\u00e9-enregistrement m\u00e9thodologique ou d&rsquo;une justification th\u00e9orique rigoureusement explicit\u00e9e en amont de l&rsquo;analyse.<\/p>\n<p>Une seconde d\u00e9rive th\u00e9orique majeure concerne l&rsquo;ex\u00e9cution abusive du test de Dunn sur des mesures appari\u00e9es ou d\u00e9pendantes. Tester l&rsquo;\u00e9volution longitudinale de patients \u00e0 <span class=\"arabpsy-math-inline\" data-latex=\"T_0\">$T_0$<\/span>, <span class=\"arabpsy-math-inline\" data-latex=\"T_1\">$T_1$<\/span> et <span class=\"arabpsy-math-inline\" data-latex=\"T_2\">$T_2$<\/span> par un Kruskal-Wallis suivi d&rsquo;un test de Dunn constitue une violation caract\u00e9ris\u00e9e du postulat d&rsquo;ind\u00e9pendance mutuelle stochastique. Dans un sch\u00e9ma intrajumel\u00e9, l&rsquo;analyste doit imp\u00e9rativement recourir au test de Friedman pour la phase omnibus, suivi de tests post-hoc de Wilcoxon pour s\u00e9ries appari\u00e9es ou du test sp\u00e9cifique de Nemenyi pour blocs d\u00e9pendants.<\/p>\n<p>Enfin, l&rsquo;assimilation s\u00e9mantique fallacieuse entre les rangs moyens et les m\u00e9dianes physiques demeure le pi\u00e8ge le plus insidieux de la litt\u00e9rature appliqu\u00e9e. Affirmer textuellement que \u00ab le test de Dunn d\u00e9montre une diff\u00e9rence significative entre les m\u00e9dianes des groupes A et B \u00bb s&rsquo;av\u00e8re formellement inexact d\u00e8s lors que les distributions empiriques des deux cohortes ne pr\u00e9sentent pas une similarit\u00e9 de dispersion et d&rsquo;asym\u00e9trie rigoureuse. L&rsquo;analyste rigoureux s&rsquo;astreindra \u00e0 r\u00e9diger ses d\u00e9ductions en termes de \u00ab dominance stochastique ordinale \u00bb ou d&rsquo;\u00ab \u00e9carts significatifs de rangs moyens \u00bb, pr\u00e9servant ainsi l&rsquo;exactitude math\u00e9matique de sa d\u00e9monstration.<\/p>\n<h3>11.3 Arbre de d\u00e9cision pour guider l&rsquo;analyste de donn\u00e9es<\/h3>\n<p>Afin de structurer le discernement m\u00e9thodologique du chercheur face au foisonnement des options algorithmiques, le tableau synoptique suivant formalise les conditions de bascule et d&rsquo;orientation inf\u00e9rentielle adapt\u00e9es \u00e0 chaque configuration exp\u00e9rimentale :<\/p>\n<ul>\n<li><strong>Configuration standard (Kruskal-Wallis significatif, \u00e9chantillons de tailles \u00e9gales ou in\u00e9gales, objectif confirmatoire strict du FWER)<\/strong> :<br \/>\n        <br \/><em>D\u00e9cision<\/em> : Test de Dunn avec correction de Holm-Bonferroni (<code>posthoc_dunn(..., p_adjust='holm')<\/code>). Repr\u00e9sente le standard m\u00e9thodologique optimal alliant puissance statistique et contr\u00f4le rigoureux des faux positifs.<\/li>\n<li><strong>Recherche de puissance maximale sous Kruskal-Wallis (contexte biom\u00e9dical avec effectifs r\u00e9duits et distributions sym\u00e9triques)<\/strong> :<br \/>\n        <br \/><em>D\u00e9cision<\/em> : Test post-hoc de Conover-Iman (impl\u00e9ment\u00e9 via <code>scikit_posthocs.posthoc_conover()<\/code>). Bas\u00e9 sur la distribution de Student t appliqu\u00e9e aux rangs conjoints, ce test offre une puissance statistique sup\u00e9rieure \u00e0 celle de Dunn, mais requiert une stricte conformit\u00e9 aux postulats de Kruskal-Wallis.<\/li>\n<li><strong>Tailles d&rsquo;\u00e9chantillons rigoureusement identiques par groupe (<span class=\"arabpsy-math-inline\" data-latex=\"n_1 = n_2 = dots = n_k\">$n_1 = n_2 = dots = n_k$<\/span>) et approche conservatrice classique<\/strong> :<br \/>\n        <br \/><em>D\u00e9cision<\/em> : Test post-hoc de Nemenyi (disponible via <code>scikit_posthocs.posthoc_nemenyi()<\/code>). Repose sur la distribution de l&rsquo;\u00e9tendue standardis\u00e9e (Studentized range distribution), analogue non param\u00e9trique du HSD de Tukey. Moins puissant que Dunn en pr\u00e9sence d&rsquo;effectifs h\u00e9t\u00e9rog\u00e8nes.<\/li>\n<li><strong>\u00c9tudes exploratoires \u00e0 haut d\u00e9bit ou criblage multidimensionnel (<span class=\"arabpsy-math-inline\" data-latex=\"C &gt; 20\">$C &gt; 20$<\/span> comparaisons)<\/strong> :<br \/>\n        <br \/><em>D\u00e9cision<\/em> : Test de Dunn avec ajustement du taux de fausses d\u00e9couvertes selon Benjamini-Hochberg (<code>p_adjust='fdr_bh'<\/code>). Emp\u00eache l&rsquo;asphyxie statistique de la puissance induite par le FWER.<\/li>\n<li><strong>Pr\u00e9sence de covariables quantitatives continues ou de facteurs de confusion multiples<\/strong> :<br \/>\n        <br \/><em>D\u00e9cision<\/em> : Abandon de la strat\u00e9gie univari\u00e9e de Kruskal-Wallis\/Dunn au profit d&rsquo;une mod\u00e9lisation de r\u00e9gression logistique ordinale (<em>proportional odds model<\/em>) ou de mod\u00e8les lin\u00e9aires g\u00e9n\u00e9ralis\u00e9s mixtes (GLMM).<\/li>\n<\/ul>\n<p>Cette grille d&rsquo;orientation garantit une parfaite ad\u00e9quation entre la typologie des donn\u00e9es empiriques et le mod\u00e8le math\u00e9matique mobilis\u00e9.<\/p>\n<h2>12. Restitution acad\u00e9mique et communication des r\u00e9sultats selon les normes APA<\/h2>\n<h3>12.1 Directives de r\u00e9daction de l&rsquo;APA (7e \u00e9dition)<\/h3>\n<p>La communication publique de donn\u00e9es scientifiques r\u00e9gies par les normes du manuel de publication de l&rsquo;American Psychological Association (APA, 7e \u00e9dition) impose un formalisme typographique et num\u00e9rique d&rsquo;une grande rigueur. L&rsquo;ensemble des symboles statistiques d\u00e9signant des param\u00e8tres ou des estimateurs scalaires doivent imp\u00e9rativement \u00eatre compos\u00e9s en caract\u00e8res italiques (par exemple, la statistique omnibus <em>H<\/em>, la statistique d&rsquo;\u00e9cart normalis\u00e9 <em>z<\/em>, la valeur de probabilit\u00e9 <em>p<\/em>, l&rsquo;effectif d&rsquo;\u00e9chantillon <em>N<\/em> ou <em>n<\/em>, et le coefficient de taille d&rsquo;effet <em>r<\/em>).<\/p>\n<p>En mati\u00e8re d&rsquo;affichage d\u00e9cimal, la doctrine de l&rsquo;APA pr\u00e9conise d&rsquo;arrondir les statistiques de test (<span class=\"arabpsy-math-inline\" data-latex=\"H\">$H$<\/span>, <span class=\"arabpsy-math-inline\" data-latex=\"z\">$z$<\/span>) ainsi que les m\u00e9triques de taille d&rsquo;effet (<span class=\"arabpsy-math-inline\" data-latex=\"r\">$r$<\/span>) \u00e0 deux ou trois d\u00e9cimales apr\u00e8s la virgule (la pr\u00e9cision \u00e0 deux d\u00e9cimales \u00e9tant la norme canonique, \u00e0 l&rsquo;instar de <span class=\"arabpsy-math-inline\" data-latex=\"z = 2{,}48\">$z = 2{,}48$<\/span> ou <span class=\"arabpsy-math-inline\" data-latex=\"r = 0{,}32\">$r = 0{,}32$<\/span>). Concernant la valeur <em>p<\/em>, celle-ci doit \u00eatre restitu\u00e9e avec trois d\u00e9cimales de pr\u00e9cision exacte (par exemple <span class=\"arabpsy-math-inline\" data-latex=\"p = 0{,}023\">$p = 0{,}023$<\/span>). Une exception typographique absolue s&rsquo;applique au chiffre z\u00e9ro pr\u00e9c\u00e9dent le s\u00e9parateur d\u00e9cimal : dans la mesure o\u00f9 une valeur de probabilit\u00e9 statistique <em>p<\/em> ne peut math\u00e9matiquement jamais \u00eatre sup\u00e9rieure \u00e0 1, l&rsquo;usage \u00e9ditorial anglo-saxon impose d&rsquo;omettre le z\u00e9ro initial (\u00e9crire <em>p<\/em> = .023 et non <em>p<\/em> = 0.023). Enfin, si la valeur <em>p<\/em> calcul\u00e9e par l&rsquo;algorithme Python s&rsquo;av\u00e8re inf\u00e9rieure \u00e0 un milli\u00e8me, il est rigoureusement prohib\u00e9 d&rsquo;\u00e9crire <em>p<\/em> = .000 (ce qui constituerait une aberration probabiliste) ; il convient de consigner formellement <em>p<\/em> &lt; .001.<\/p>\n<p>L&rsquo;explicitation de la proc\u00e9dure de contr\u00f4le des comparaisons multiples doit appara\u00eetre sans ambigu\u00eft\u00e9 d\u00e8s la premi\u00e8re mention narrative des r\u00e9sultats post-hoc, en nommant l&rsquo;algorithme d&rsquo;ajustement s\u00e9lectionn\u00e9 (par exemple : \u00ab les valeurs <em>p<\/em> bilat\u00e9rales ont fait l&rsquo;objet d&rsquo;un ajustement s\u00e9quentiel selon la m\u00e9thode de Holm-Bonferroni afin de maintenir le taux d&rsquo;erreur par famille \u00e0 <span class=\"arabpsy-math-inline\" data-latex=\"\\alpha = .05\">$\\alpha = .05$<\/span> \u00bb).<\/p>\n<h3>12.2 Conception de tableaux statistiques pr\u00eats pour la publication<\/h3>\n<p>L&rsquo;\u00e9laboration de tableaux r\u00e9capitulatifs selon les canons de l&rsquo;APA exclut cat\u00e9goriquement l&rsquo;usage de lignes de s\u00e9paration verticales. Seules trois bordures horizontales principales composent l&rsquo;ossature du tableau : une bordure sup\u00e9rieure d\u00e9limitant l&rsquo;en-t\u00eate, une bordure inf\u00e9rieure fermant le libell\u00e9 des colonnes, et une bordure terminale fermant le tableau au-dessus des notes m\u00e9thodologiques de bas de page. Le tableau suivant illustre la disposition id\u00e9ale synth\u00e9tisant l&rsquo;analyse compl\u00e8te issue de notre cas clinique d&rsquo;anxi\u00e9t\u00e9 :<\/p>\n<p><strong>Tableau 1<\/strong><br \/>\n<em>Statistiques descriptives, contrastes post-hoc de Dunn et tailles d&rsquo;effet de l&rsquo;inventaire d&rsquo;anxi\u00e9t\u00e9 de Beck (BAI)<\/em><\/p>\n<table style=\"width:100%; border-collapse: collapse; text-align: left; font-size: 0.95em;\">\n<thead>\n<tr style=\"border-top: 2px solid black; border-bottom: 1px solid black;\">\n<th style=\"padding: 8px;\">Comparaison dyadique<\/th>\n<th style=\"padding: 8px;\"><em>n<\/em> combin\u00e9<\/th>\n<th style=\"padding: 8px;\">\u00c9cart de rangs (<span class=\"arabpsy-math-inline\" data-latex=\"\\Delta \\bar{R}\">$\\Delta \\bar{R}$<\/span>)<\/th>\n<th style=\"padding: 8px;\">Statistique <em>z<\/em><\/th>\n<th style=\"padding: 8px;\"><em>p<\/em> brute<\/th>\n<th style=\"padding: 8px;\"><em>p<\/em> ajust\u00e9e (Holm)<\/th>\n<th style=\"padding: 8px;\">Taille d&rsquo;effet <em>r<\/em><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 8px;\">Contr\u00f4le vs Mindfulness<\/td>\n<td style=\"padding: 8px;\">62<\/td>\n<td style=\"padding: 8px;\">19,23<\/td>\n<td style=\"padding: 8px;\">2,87<\/td>\n<td style=\"padding: 8px;\">.0041<\/td>\n<td style=\"padding: 8px;\">.0082<\/td>\n<td style=\"padding: 8px;\">.36 (Mod\u00e9r\u00e9e)<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px;\">Contr\u00f4le vs TCC<\/td>\n<td style=\"padding: 8px;\">58<\/td>\n<td style=\"padding: 8px;\">36,65<\/td>\n<td style=\"padding: 8px;\">5,31<\/td>\n<td style=\"padding: 8px;\">&lt; .0001<\/td>\n<td style=\"padding: 8px;\">&lt; .0001<\/td>\n<td style=\"padding: 8px;\">.70 (Forte)<\/td>\n<\/tr>\n<tr style=\"border-bottom: 2px solid black;\">\n<td style=\"padding: 8px;\">Mindfulness vs TCC<\/td>\n<td style=\"padding: 8px;\">60<\/td>\n<td style=\"padding: 8px;\">17,42<\/td>\n<td style=\"padding: 8px;\">2,54<\/td>\n<td style=\"padding: 8px;\">.0111<\/td>\n<td style=\"padding: 8px;\">.0111<\/td>\n<td style=\"padding: 8px;\">.33 (Mod\u00e9r\u00e9e)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"font-size: 0.85em; margin-top: 5px;\"><em>Note.<\/em> N total = 90 participants. TCC = Th\u00e9rapie Cognitivo-Comportementale. Les valeurs <em>p<\/em> ont \u00e9t\u00e9 ajust\u00e9es selon la proc\u00e9dure descendante de Holm. La taille d&rsquo;effet <em>r<\/em> est calcul\u00e9e selon la formule <span class=\"arabpsy-math-inline\" data-latex=\"r = |z| \/ \\sqrt{n_{paire}}\">$r = |z| \/ \\sqrt{n_{paire}}$<\/span>.<\/p>\n<p>Cette pr\u00e9sentation unifi\u00e9e d\u00e9livre en un coup d&rsquo;\u0153il l&rsquo;ensemble des m\u00e9triques d\u00e9cisionnelles n\u00e9cessaires aux examinateurs de revues scientifiques.<\/p>\n<h3>12.3 Mod\u00e8le textuel r\u00e9utilisable pour la section R\u00e9sultats<\/h3>\n<p>Afin de faciliter la transposition de vos calculs dans vos futurs manuscrits de recherche, le paragraphe ci-dessous propose une r\u00e9daction acad\u00e9mique standardis\u00e9e, mod\u00e9lis\u00e9e selon les canons les plus stricts de la diffusion scientifique universitaire :<\/p>\n<p>\u00ab Une analyse de variance non param\u00e9trique \u00e0 un facteur de Kruskal-Wallis a \u00e9t\u00e9 conduite afin d&rsquo;examiner l&rsquo;impact diff\u00e9rentiel des trois protocoles d&rsquo;intervention clinique (Contr\u00f4le sur liste d&rsquo;attente, M\u00e9ditation de pleine conscience et Th\u00e9rapie cognitivo-comportementale) sur les scores de s\u00e9v\u00e9rit\u00e9 mesur\u00e9s \u00e0 l&rsquo;inventaire d&rsquo;anxi\u00e9t\u00e9 de Beck (BAI). Les analyses descriptives pr\u00e9liminaires indiquent des divergences marqu\u00e9es d&rsquo;asym\u00e9trie distributionnelle entre les groupes : le groupe Contr\u00f4le pr\u00e9sente le niveau d&rsquo;anxi\u00e9t\u00e9 m\u00e9dian le plus \u00e9lev\u00e9 (<span class=\"arabpsy-math-inline\" data-latex=\"Mdn = 27{,}50\">$Mdn = 27{,}50$<\/span> ; <span class=\"arabpsy-math-inline\" data-latex=\"IQR = 8{,}75\">$IQR = 8{,}75$<\/span> ; rang moyen = 63,41), suivi par le groupe de m\u00e9ditation de pleine conscience (<span class=\"arabpsy-math-inline\" data-latex=\"Mdn = 17{,}00\">$Mdn = 17{,}00$<\/span> ; <span class=\"arabpsy-math-inline\" data-latex=\"IQR = 7{,}25\">$IQR = 7{,}25$<\/span> ; rang moyen = 44,18), tandis que les participants ayant b\u00e9n\u00e9fici\u00e9 du protocole de TCC enregistrent les scores de d\u00e9tresse les plus att\u00e9nu\u00e9s (<span class=\"arabpsy-math-inline\" data-latex=\"Mdn = 10{,}00\">$Mdn = 10{,}00$<\/span> ; <span class=\"arabpsy-math-inline\" data-latex=\"IQR = 6{,}00\">$IQR = 6{,}00$<\/span> ; rang moyen = 26,76). L&rsquo;analyse omnibus confirme l&rsquo;existence d&rsquo;une divergence stochastique globale hautement significative entre les trois conditions exp\u00e9rimentales, <span class=\"arabpsy-math-inline\" data-latex=\"H(2) = 31{,}42\">$H(2) = 31{,}42$<\/span>, <span class=\"arabpsy-math-inline\" data-latex=\"p &lt; .001\">$p &lt; .001$<\/span>. \u00bb<\/p>\n<p>\u00ab En raison de la significativit\u00e9 du test omnibus, des comparaisons multiples post-hoc par paires ont \u00e9t\u00e9 ex\u00e9cut\u00e9es au moyen du test de Dunn avec correction s\u00e9quentielle ascendante de Holm-Bonferroni pour contr\u00f4ler le taux d&rsquo;erreur par famille (<span class=\"arabpsy-math-inline\" data-latex=\"\\alpha = .05\">$\\alpha = .05$<\/span>). L&rsquo;analyse r\u00e9v\u00e8le que le groupe TCC pr\u00e9sente une r\u00e9duction statistiquement significative des scores de s\u00e9v\u00e9rit\u00e9 anxieuse comparativement au groupe Contr\u00f4le (<span class=\"arabpsy-math-inline\" data-latex=\"z = 5{,}31\">$z = 5{,}31$<\/span>, <span class=\"arabpsy-math-inline\" data-latex=\"p_{ajustee} &lt; .001\">$p_{ajustee} &lt; .001$<\/span>, <span class=\"arabpsy-math-inline\" data-latex=\"r = .70\">$r = .70$<\/span>), cet \u00e9cart t\u00e9moignant d&rsquo;une taille d&rsquo;effet majeure. De fa\u00e7on analogue, le protocole de pleine conscience s&rsquo;av\u00e8re significativement sup\u00e9rieur \u00e0 la liste d&rsquo;attente (<span class=\"arabpsy-math-inline\" data-latex=\"z = 2{,}87\">$z = 2{,}87$<\/span>, <span class=\"arabpsy-math-inline\" data-latex=\"p_{ajustee} = .008\">$p_{ajustee} = .008$<\/span>, <span class=\"arabpsy-math-inline\" data-latex=\"r = .36\">$r = .36$<\/span>), avec une taille d&rsquo;effet mod\u00e9r\u00e9e. Enfin, la comparaison directe entre les deux approches psychoth\u00e9rapeutiques actives met en \u00e9vidence une dominance stochastique statistiquement significative en faveur de la TCC (<span class=\"arabpsy-math-inline\" data-latex=\"z = 2{,}54\">$z = 2{,}54$<\/span>, <span class=\"arabpsy-math-inline\" data-latex=\"p_{ajustee} = .011\">$p_{ajustee} = .011$<\/span>, <span class=\"arabpsy-math-inline\" data-latex=\"r = .33\">$r = .33$<\/span>), attestant d&rsquo;une efficacit\u00e9 sup\u00e9rieure mod\u00e9r\u00e9e de la restructuration cognitivo-comportementale sur la r\u00e9duction de l&rsquo;anxi\u00e9t\u00e9 g\u00e9n\u00e9ralis\u00e9e comparativement \u00e0 l&rsquo;entra\u00eenement \u00e0 la pleine conscience au sein de cette cohorte. \u00bb<\/p>\n<p>Ce patron r\u00e9dactionnel int\u00e8gre harmonieusement l&rsquo;ensemble des contraintes techniques, statistiques et d\u00e9ontologiques indispensables \u00e0 une validation \u00e9ditoriale imm\u00e9diate.<\/p>\n<h2>R\u00e9f\u00e9rences<\/h2>\n<ul style=\"list-style-type: none; padding-left: 0;\">\n<li style=\"margin-bottom: 15px;\">\n        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>\n    <\/li>\n<li style=\"margin-bottom: 15px;\">\n        Benjamini, Y., &amp; Hochberg, Y. (1995). Controlling the false discovery rate: A practical and powerful approach to multiple testing. <em>Journal of the Royal Statistical Society: Series B (Methodological)<\/em>, 57(1), 289\u2013300. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1111\/j.2517-6161.1995.tb02031.x\">https:\/\/doi.org\/10.1111\/j.2517-6161.1995.tb02031.x<\/a>\n    <\/li>\n<li style=\"margin-bottom: 15px;\">\n        Cohen, J. (1988). <em>Statistical power analysis for the behavioral sciences<\/em> (2nd ed.). Lawrence Erlbaum Associates.\n    <\/li>\n<li style=\"margin-bottom: 15px;\">\n        Conover, W. J., &amp; Iman, R. L. (1981). Rank transformations as a bridge between parametric and nonparametric statistics. <em>The American Statistician<\/em>, 35(3), 124\u2013129. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1080\/00031305.1981.10482810\">https:\/\/doi.org\/10.1080\/00031305.1981.10482810<\/a>\n    <\/li>\n<li style=\"margin-bottom: 15px;\">\n        Dunn, O. J. (1964). Multiple comparisons using rank sums. <em>Technometrics<\/em>, 6(3), 241\u2013252. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1080\/00401706.1964.10490181\">https:\/\/doi.org\/10.1080\/00401706.1964.10490181<\/a>\n    <\/li>\n<li style=\"margin-bottom: 15px;\">\n        Holm, S. (1979). A simple sequentially rejective multiple test procedure. <em>Scandinavian Journal of Statistics<\/em>, 6(2), 65\u201370. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/www.jstor.org\/stable\/4615733\">https:\/\/www.jstor.org\/stable\/4615733<\/a>\n    <\/li>\n<li style=\"margin-bottom: 15px;\">\n        Kruskal, W. H., &amp; Wallis, W. A. (1952). Use of ranks in one-criterion variance analysis. <em>Journal of the American Statistical Association<\/em>, 47(260), 583\u2013621. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1080\/01621459.1952.10483441\">https:\/\/doi.org\/10.1080\/01621459.1952.10483441<\/a>\n    <\/li>\n<li style=\"margin-bottom: 15px;\">\n        Rosenthal, R. (1991). <em>Meta-analytic procedures for social research<\/em> (Rev. ed.). SAGE Publications. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.4135\/9781412984997\">https:\/\/doi.org\/10.4135\/9781412984997<\/a>\n    <\/li>\n<li style=\"margin-bottom: 15px;\">\n        Terpilowski, M. (2019). scikit-posthocs: Pairwise multiple comparison post-hoc tests in Python. <em>Journal of Open Source Software<\/em>, 4(36), 1169. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.21105\/joss.01169\">https:\/\/doi.org\/10.21105\/joss.01169<\/a>\n    <\/li>\n<li style=\"margin-bottom: 15px;\">\n        Virtanen, P., Gommers, R., Oliphant, T. E., Haberland, M., Reddy, T., Cournapeau, D., Burovski, E., Peterson, P., Weckesser, W., Bright, J., van der Walt, S. J., Brett, M., Wilson, J., Millman, K. J., Mayorov, N., Nelson, A. R. J., Jones, E., Kern, R., Larson, E., \u2026 SciPy 1.0 Contributors. (2020). SciPy 1.0: Fundamental algorithms for scientific computing in Python. <em>Nature Methods<\/em>, 17(3), 261\u2013272. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1038\/s41592-019-0686-2\">https:\/\/doi.org\/10.1038\/s41592-019-0686-2<\/a>\n    <\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Guide universitaire pour r\u00e9aliser le test de Dunn en Python avec scikit-posthocs : th\u00e9orie, code, ajustements de p-valeurs et application selon les normes APA.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","categories":[2169,3928,1838],"tags":[2317,2468,6132,2217,6131],"class_list":["post-4155","psych_stat","type-psych_stat","status-publish","hentry","category-psychologie-quantitative","category-python","category-statistiques","tag-kruskal-wallis","tag-python","tag-scikit-posthocs","tag-statistiques-non-parametriques","tag-test-de-dunn"],"_links":{"self":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat\/4155","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=4155"}],"version-history":[{"count":0,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat\/4155\/revisions"}],"wp:attachment":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4155"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4155"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4155"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}