{"id":3392,"date":"2026-10-14T18:01:00","date_gmt":"2026-10-14T18:01:00","guid":{"rendered":"http:\/\/french.arabpsychology.com\/statistics\/comment-creer-une-matrice-de-dispersion-dans-pandas-avec-exemples\/"},"modified":"2026-10-14T18:01:00","modified_gmt":"2026-10-14T18:01:00","slug":"comment-creer-une-matrice-de-dispersion-dans-pandas-avec-exemples","status":"publish","type":"psych_stat","link":"https:\/\/french.arabpsychology.com\/?psych_stat=comment-creer-une-matrice-de-dispersion-dans-pandas-avec-exemples","title":{"rendered":"Comment cr\u00e9er une matrice de dispersion dans Pandas (avec exemples)"},"content":{"rendered":"<p>L&rsquo;analyse exploratoire des donn\u00e9es multidimensionnelles constitue l&rsquo;un des piliers m\u00e9thodologiques fondamentaux de la recherche quantitative contemporaine, particuli\u00e8rement au sein des sciences empiriques, du g\u00e9nie statistique et de la psychom\u00e9trie. Lorsque les chercheurs et les scientifiques des donn\u00e9es se trouvent confront\u00e9s \u00e0 des jeux de donn\u00e9es comportant de multiples covariables m\u00e9triques, la premi\u00e8re \u00e9tape analytique consiste invariablement \u00e0 sonder la morphologie des distributions individuelles ainsi que la nature des interconnexions lin\u00e9aires et non lin\u00e9aires qui s&rsquo;\u00e9tablissent entre chaque paire d&rsquo;indicateurs. Dans ce contexte \u00e9pist\u00e9mologique, la visualisation graphique transcende le simple statut d&rsquo;illustration pour devenir un outil heuristique indispensable de d\u00e9couverte, de contr\u00f4le de validit\u00e9 des postulats statistiques et de d\u00e9tection des anomalies distributionnelles.<\/p>\n<p>Au c\u0153ur de l&rsquo;\u00e9cosyst\u00e8me open-source <a rel=\"noopener noreferrer\" href=\"https:\/\/www.python.org\/\">Python<\/a>, la biblioth\u00e8que <a rel=\"noopener noreferrer\" href=\"https:\/\/pandas.pydata.org\/\">Pandas<\/a> s&rsquo;est impos\u00e9e comme la r\u00e9f\u00e9rence universelle pour la manipulation, la restructuration et l&rsquo;interrogation de donn\u00e9es tabulaires. Si Pandas est principalement r\u00e9put\u00e9e pour ses structures de donn\u00e9es matricielles performantes que sont les s\u00e9ries et les DataFrames, elle int\u00e8gre \u00e9galement un sous-module graphique d&rsquo;une puissance sous-estim\u00e9e, log\u00e9 dans l&rsquo;espace de noms <code>pandas.plotting<\/code>. Parmi les instruments visuels mis \u00e0 disposition des analystes, la fonction <code>scatter_matrix<\/code> repr\u00e9sente l&rsquo;incarnation computationnelle de la matrice de diagrammes de dispersion bivari\u00e9s, offrant une vue synoptique et exhaustive de toutes les combinaisons par paires d&rsquo;un ensemble de variables quantitatives.<\/p>\n<p>Le pr\u00e9sent article propose une exploration acad\u00e9mique, th\u00e9orique et appliqu\u00e9e exhaustive de la matrice de dispersion au sein de l&rsquo;environnement Python. \u00c0 travers un d\u00e9cryptage rigoureux de ses fondements math\u00e9matiques, une mise en contexte appliqu\u00e9e aux protocoles exp\u00e9rimentaux et une manipulation minutieuse de ses param\u00e8tres graphiques et computationnels, nous examinerons comment configurer, affiner, interpr\u00e9ter et int\u00e9grer cette matrice au sein d&rsquo;un pipeline d&rsquo;analyse reproductible. Du choix fondamental entre histogrammes et densit\u00e9s par noyau \u00e0 l&rsquo;ajustement fin des interfaces de bas niveau pilot\u00e9es par <a rel=\"noopener noreferrer\" href=\"https:\/\/matplotlib.org\/\">Matplotlib<\/a>, ce guide dresse le panorama complet des techniques requises pour transformer des nuages de donn\u00e9es brutes en diagnostics statistiques probants.<\/p>\n<h2>1. Introduction aux matrices de dispersion et \u00e0 leur utilit\u00e9 en analyse exploratoire<\/h2>\n<h3>1.1 D\u00e9finition conceptuelle de la matrice de dispersion<\/h3>\n<p>La matrice de dispersion, commun\u00e9ment d\u00e9sign\u00e9e sous le vocable anglo-saxon de <em>scatter matrix<\/em> ou <em>scatterplot matrix<\/em> (SPLOM), se d\u00e9finit formellement comme un agencement g\u00e9om\u00e9trique bidimensionnel r\u00e9gulier compos\u00e9 de sous-graphiques juxtapos\u00e9s sous forme de grille carr\u00e9e de dimension <em>p \u00d7 p<\/em>, o\u00f9 <em>p<\/em> repr\u00e9sente le nombre total de variables quantitatives continues s\u00e9lectionn\u00e9es pour l&rsquo;analyse. Chaque cellule de cette grille matricielle a pour vocation d&rsquo;exposer la relation bivari\u00e9e unissant deux variables sp\u00e9cifiques \u00e0 travers un rep\u00e8re cart\u00e9sien orthogonal, le plan horizontal correspondant \u00e0 l&rsquo;abscisse de la variable de colonne et le plan vertical traduisant l&rsquo;ordonn\u00e9e de la variable de ligne.<\/p>\n<p>Dans le cadre strict de l&rsquo;<a rel=\"noopener noreferrer\" href=\"https:\/\/en.wikipedia.org\/wiki\/Exploratory_data_analysis\">analyse exploratoire des donn\u00e9es<\/a> formalis\u00e9e initialement par John Tukey, la matrice de dispersion remplit une double fonction analytique synchronis\u00e9e. D&rsquo;une part, elle mat\u00e9rialise visuellement les distributions marginales univari\u00e9es de chacune des variables le long de sa diagonale principale, comblant ainsi le vide conceptuel laiss\u00e9 par l&rsquo;auto-croisement d&rsquo;une variable avec elle-m\u00eame. D&rsquo;autre part, elle d\u00e9ploie sur ses zones hors diagonale une cartographie d\u00e9taill\u00e9e des d\u00e9pendances bivari\u00e9es, permettant d&rsquo;appr\u00e9hender instantan\u00e9ment la morphologie des nuages de points, l&rsquo;homog\u00e9n\u00e9it\u00e9 de leur dispersion, ainsi que l&rsquo;orientation directionnelle globale des associations statistiques observ\u00e9es.<\/p>\n<figure class=\"wpt-preserved-image\"><img fetchpriority=\"high\" decoding=\"async\" src=\"http:\/\/french.arabpsychology.com\/wp-content\/uploads\/2026\/09\/scattermatrix1.png\" alt=\"scatter matrix in pandas\" \/><figcaption>scatter matrix in pandas<\/figcaption><\/figure>\n<p>D&rsquo;un point de vue m\u00e9thodologique, cet agencement graphique constitue un vecteur de diagnostic sup\u00e9rieur aux simples r\u00e9ductions scalaires telles que les matrices de coefficients de corr\u00e9lation de Pearson. Alors qu&rsquo;un coefficient num\u00e9rique unitaire r\u00e9sume un lien sous l&rsquo;hypoth\u00e8se restrictive de lin\u00e9arit\u00e9 stricte sans pouvoir d\u00e9celer la pr\u00e9sence de sous-groupes latents, la matrice de dispersion permet d&rsquo;observer directement la convexit\u00e9, la concavit\u00e9, l&rsquo;h\u00e9t\u00e9rosc\u00e9dasticit\u00e9 ou encore les regroupements multimodaux au sein d&rsquo;un espace multidimensionnel compact et standardis\u00e9.<\/p>\n<h3>1.2 Applications empiriques dans la recherche psychologique et comportementale<\/h3>\n<p>Dans le domaine des sciences psychologiques, comportementales et cognitives, les chercheurs manipulent quotidiennement des jeux de donn\u00e9es composites r\u00e9unissant des \u00e9chelles de mesure psychom\u00e9triques, des indices de temps de r\u00e9action, des scores factoriels latents et des param\u00e8tres psychophysiologiques issus de dispositifs de biofeedback ou d&rsquo;imagerie. L&#8217;emploi d&rsquo;une matrice de dispersion s&rsquo;av\u00e8re particuli\u00e8rement f\u00e9cond pour examiner la validit\u00e9 convergente et la validit\u00e9 discriminante lors de l&rsquo;\u00e9talonnage d&rsquo;un instrument de mesure psychologique standardis\u00e9.<\/p>\n<p>\u00c0 titre d&rsquo;exemple, lorsqu&rsquo;une batterie d&rsquo;\u00e9valuations mesure simultan\u00e9ment des sous-\u00e9chelles d&rsquo;anxi\u00e9t\u00e9 \u00e9tat-trait, des niveaux de d\u00e9pression clinique et des indicateurs de r\u00e9silience psychologique, la matrice de dispersion permet de v\u00e9rifier si les sous-dimensions d&rsquo;un m\u00eame construit th\u00e9orique pr\u00e9sentent des covariations lin\u00e9aires denses et positives, tout en s&rsquo;assurant que les construits antagonistes d\u00e9montrent les inversions directionnelles escompt\u00e9es par les mod\u00e8les th\u00e9oriques. Elle garantit ainsi l&rsquo;absence de saturation parasite ou d&rsquo;effets de plancher susceptibles d&rsquo;alt\u00e9rer la validit\u00e9 interne des protocoles d&rsquo;\u00e9valuation clinique.<\/p>\n<p>De surcro\u00eet, lors d&rsquo;exp\u00e9rimentations portant sur la charge cognitive ou l&rsquo;attention s\u00e9lective, la conjonction des donn\u00e9es de latence motrice et de scores d&rsquo;erreurs g\u00e9n\u00e8re souvent des distributions non gaussiennes complexes. L&rsquo;examen des cellules bivari\u00e9es de la matrice permet de d\u00e9tecter sans d\u00e9lai les compromis vitesse-pr\u00e9cision (<em>speed-accuracy trade-off<\/em>), identifiant les sujets qui modifient leur profil de r\u00e9ponse sous contrainte temporelle, ph\u00e9nom\u00e8ne qui \u00e9chapperait totalement \u00e0 une analyse purement descriptive bas\u00e9e sur des moyennes marginales d\u00e9contextualis\u00e9es.<\/p>\n<h3>1.3 Avantages comparatifs face aux visualisations univari\u00e9es isol\u00e9es<\/h3>\n<p>L&rsquo;utilisation de graphiques univari\u00e9s isol\u00e9s, tels qu&rsquo;une s\u00e9rie s\u00e9quentielle d&rsquo;histogrammes ou de diagrammes en bo\u00eete (<em>boxplots<\/em>), souffre d&rsquo;un fractionnement cognitif majeur. L&rsquo;analyste se trouve contraint de m\u00e9moriser les propri\u00e9t\u00e9s morphologiques d&rsquo;une distribution avant de passer \u00e0 l&rsquo;observation d&rsquo;une seconde variable, annihilant toute possibilit\u00e9 d&rsquo;inf\u00e9rence imm\u00e9diate sur la structure conjointe des donn\u00e9es. La matrice de dispersion pallie ce probl\u00e8me d&rsquo;ergonomie cognitive en condensant l&rsquo;int\u00e9gralit\u00e9 du syst\u00e8me relationnel multivari\u00e9 au sein d&rsquo;un tableau d&rsquo;ensemble visuellement unifi\u00e9.<\/p>\n<p>Un autre avantage comparatif d\u00e9terminant r\u00e9side dans l&rsquo;identification pr\u00e9coce de la multicolin\u00e9arit\u00e9 avant l&rsquo;ajustement de mod\u00e8les statistiques avanc\u00e9s, tels que la r\u00e9gression lin\u00e9aire multiple, la mod\u00e9lisation par \u00e9quations structurelles ou l&rsquo;analyse factorielle confirmatoire. La pr\u00e9sence d&rsquo;alignements lin\u00e9aires quasi parfaits au sein de plusieurs cellules hors diagonale avertit imm\u00e9diatement le chercheur du risque d&rsquo;instabilit\u00e9 des estimateurs num\u00e9riques, de l&rsquo;inflation de la variance des erreurs-types et de l&rsquo;ind\u00e9termination potentielle de la matrice d&rsquo;inversion sous-jacente.<\/p>\n<p>Enfin, la condensation matricielle offre une sensibilit\u00e9 sans pareille pour d\u00e9tecter les ruptures de lin\u00e9arit\u00e9, les relations en forme de U invers\u00e9 typiques des lois psychophysiologiques (comme la c\u00e9l\u00e8bre loi de Yerkes-Dodson reliant l&rsquo;\u00e9veil cortical \u00e0 la performance cognitive), et les effets de seuil. Ces motifs dynamiques, absolument ind\u00e9tectables par les statistiques descriptives univari\u00e9es classiques, apparaissent instantan\u00e9ment lors de l&rsquo;inspection optique des cellules bivari\u00e9es juxtapos\u00e9es.<\/p>\n<h2>2. Fondements th\u00e9oriques de la matrice de dispersion (Scatter Matrix)<\/h2>\n<h3>2.1 Topologie de la matrice : cellules hors diagonale et diagonale principale<\/h3>\n<p>L&rsquo;architecture spatiale de la matrice de dispersion repose sur des propri\u00e9t\u00e9s topologiques d&rsquo;une grande rigueur formelle. Soit un ensemble de donn\u00e9es multidimensionnel comportant <em>p<\/em> variables al\u00e9atoires quantitatives continues not\u00e9es <em>X<sub>1<\/sub>, X<sub>2<\/sub>, &#8230;, X<sub>p<\/sub><\/em>. La matrice r\u00e9sultante se structure sous la forme d&rsquo;un tableau d&rsquo;axes cart\u00e9siens ordonn\u00e9s selon une grille carr\u00e9e de dimension <em>p \u00d7 p<\/em>, index\u00e9e par la ligne <em>i<\/em> et la colonne <em>j<\/em>, o\u00f9 les indices <em>i<\/em> et <em>j<\/em> varient de 1 \u00e0 <em>p<\/em>.<\/p>\n<p>Les cellules situ\u00e9es hors de la diagonale principale, d\u00e9finies par la condition d&rsquo;in\u00e9galit\u00e9 des indices <em>i \u2260 j<\/em>, affichent chacune le diagramme de dispersion bivari\u00e9 opposant la variable <em>X<sub>j<\/sub><\/em> positionn\u00e9e en abscisse \u00e0 la variable <em>X<sub>i<\/sub><\/em> assign\u00e9e en ordonn\u00e9e. En vertu de cette convention topologique, la cellule sym\u00e9trique <em>(j, i)<\/em> expose rigoureusement les m\u00eames paires d&rsquo;observations mais selon une permutation orthogonale stricte des axes, o\u00f9 <em>X<sub>i<\/sub><\/em> devient l&rsquo;abscisse et <em>X<sub>j<\/sub><\/em> l&rsquo;ordonn\u00e9e. Cette sym\u00e9trie offre une double perspective analytique facilitant la lecture quel que soit le sens causal hypoth\u00e9tique envisag\u00e9 par l&rsquo;exp\u00e9rimentateur.<\/p>\n<p>La diagonale principale de la matrice, caract\u00e9ris\u00e9e par l&rsquo;\u00e9galit\u00e9 g\u00e9om\u00e9trique <em>i = j<\/em>, correspond th\u00e9oriquement \u00e0 la projection bivari\u00e9e d&rsquo;une variable sur elle-m\u00eame. Si l&rsquo;on appliquait un trac\u00e9 de dispersion standard sur ces cellules diagonales, le r\u00e9sultat se limiterait \u00e0 un segment lin\u00e9aire parfait de pente unitaire, d\u00e9nu\u00e9 de toute valeur informationnelle. Par cons\u00e9quent, les concepteurs de biblioth\u00e8ques statistiques comme Pandas exploitent ing\u00e9nieusement ces emplacements strat\u00e9giques pour projeter l&rsquo;estimateur de la densit\u00e9 univari\u00e9e de la variable correspondante, transformant une redondance g\u00e9om\u00e9trique inutile en une synth\u00e8se distributionnelle fonctionnelle.<\/p>\n<h3>2.2 Principes statistiques sous-jacents : covariance et variance univari\u00e9e<\/h3>\n<p>Sur le plan math\u00e9matique, la matrice de dispersion constitue la transposition graphique directe de la matrice de variance-covariance th\u00e9orique et empirique caract\u00e9risant la population \u00e9chantillonn\u00e9e. Consid\u00e9rons le vecteur al\u00e9atoire <strong>X<\/strong> = [<em>X<sub>1<\/sub>, X<sub>2<\/sub>, &#8230;, X<sub>p<\/sub><\/em>]<sup>T<\/sup>. La matrice de variance-covariance empirique, not\u00e9e <strong>S<\/strong>, est d\u00e9finie par l&rsquo;\u00e9quation matricielle classique :<\/p>\n<p><strong>S<\/strong> = (1 \/ (n &#8211; 1)) \u2211<sub>k=1<\/sub><sup>n<\/sup> (<strong>x<\/strong><sub>k<\/sub> &#8211; <strong>x\u0304<\/strong>)(<strong>x<\/strong><sub>k<\/sub> &#8211; <strong>x\u0304<\/strong>)<sup>T<\/sup><\/p>\n<p>o\u00f9 <em>n<\/em> d\u00e9signe la taille de l&rsquo;\u00e9chantillon, <strong>x<\/strong><sub>k<\/sub> repr\u00e9sente le vecteur d&rsquo;observation du <em>k<\/em>-i\u00e8me individu statistique, et <strong>x\u0304<\/strong> symbolise le vecteur des moyennes empiriques marginales. Les composantes diagonales <em>s<sub>ii<\/sub><\/em> de cette matrice num\u00e9rique correspondent aux variances univari\u00e9es empiriques de chaque variable, lesquelles sont refl\u00e9t\u00e9es par l&rsquo;\u00e9talement horizontal et la largeur des courbes de densit\u00e9 ou des histogrammes trac\u00e9s sur la diagonale principale du graphique.<\/p>\n<p>\u00c0 l&rsquo;inverse, les composantes non diagonales <em>s<sub>ij<\/sub><\/em> quantifient la covariance empirique entre les variables <em>X<sub>i<\/sub><\/em> et <em>X<sub>j<\/sub><\/em>. Au sein de la scatter matrix, cette covariance se traduit par l&rsquo;\u00e9longation, la directionnalit\u00e9 et la compacit\u00e9 du nuage de points. Si la covariance est nulle et les variables ind\u00e9pendantes, le nuage affectera une forme circulaire ou ovo\u00efde parall\u00e8le aux axes cart\u00e9siens. En revanche, sous l&rsquo;effet d&rsquo;une forte covariance positive ou n\u00e9gative, les points se condenseront le long d&rsquo;une trajectoire elliptique oblique dont l&rsquo;orientation refl\u00e8te directement le signe du coefficient de corr\u00e9lation lin\u00e9aire de Pearson.<\/p>\n<h3>2.3 Impact des donn\u00e9es aberrantes et des distributions asym\u00e9triques<\/h3>\n<p>L&rsquo;un des apports critiques de la matrice de dispersion r\u00e9side dans sa r\u00e9activit\u00e9 visuelle imm\u00e9diate face aux d\u00e9viations par rapport aux postulats de normalit\u00e9 bivari\u00e9e. Les valeurs aberrantes, qu&rsquo;elles soient univari\u00e9es (situ\u00e9es aux extr\u00e9mit\u00e9s d&rsquo;une seule distribution) ou multivari\u00e9es (points isol\u00e9s dans l&rsquo;espace conjoint bien que compatibles avec les marges univari\u00e9es), exercent une d\u00e9formation spatiale substantielle sur le trac\u00e9. En imposant des limites d&rsquo;axes englobant ces valeurs extr\u00eames, elles provoquent un tassement dramatique du corps principal des observations au centre de la cellule, r\u00e9duisant la lisibilit\u00e9 des structures sous-jacentes.<\/p>\n<p>De m\u00eame, la pr\u00e9sence d&rsquo;une forte asym\u00e9trie distributionnelle, qu&rsquo;elle soit positive (\u00e9talement vers la droite) ou n\u00e9gative (\u00e9talement vers la gauche), g\u00e9n\u00e8re une forte densit\u00e9 de points agglom\u00e9r\u00e9s dans un coin du sous-graphique, accompagn\u00e9e d&rsquo;une tra\u00een\u00e9e \u00e9parse sur le reste de la surface de trac\u00e9. Ce ph\u00e9nom\u00e8ne signale \u00e0 l&rsquo;exp\u00e9rimentateur que les estimations statistiques lin\u00e9aires subs\u00e9quentes risquent d&rsquo;\u00eatre biais\u00e9es par des violations fondamentales de la normalit\u00e9.<\/p>\n<p>Face \u00e0 de telles manifestations morphologiques, la scatter matrix sert de barom\u00e8tre d\u00e9cisionnel en incitant le statisticien \u00e0 appliquer des transformations pr\u00e9liminaires sur les variables concern\u00e9es. Des transformations logarithmiques, des racines carr\u00e9es ou des transformations de la famille Box-Cox peuvent ainsi \u00eatre s\u00e9lectionn\u00e9es, appliqu\u00e9es aux colonnes du DataFrame Pandas, puis valid\u00e9es par une r\u00e9it\u00e9ration imm\u00e9diate de la matrice de dispersion afin de constater le r\u00e9tablissement de la sym\u00e9trie et de l&rsquo;homosc\u00e9dasticit\u00e9.<\/p>\n<h2>3. Pr\u00e9paration de l&rsquo;environnement Python et configuration des d\u00e9pendances<\/h2>\n<h3>3.1 \u00c9cosyst\u00e8me logiciel : Pandas, NumPy et Matplotlib<\/h3>\n<p>La mise en \u0153uvre pratique d&rsquo;une matrice de dispersion en Python s&rsquo;inscrit au confluent de trois biblioth\u00e8ques fondamentales de l&rsquo;\u00e9cosyst\u00e8me scientifique : Pandas, <a rel=\"noopener noreferrer\" href=\"https:\/\/numpy.org\/\">NumPy<\/a> et Matplotlib. Chacun de ces paquets logiciels assume un r\u00f4le op\u00e9rationnel distinct et compl\u00e9mentaire au sein du pipeline d&rsquo;ex\u00e9cution. Pandas fournit la structure tabulaire optimis\u00e9e (le <code>DataFrame<\/code>) qui h\u00e9berge les variables, g\u00e8re les types de donn\u00e9es, pr\u00e9serve les \u00e9tiquettes de colonnes et encapsule les m\u00e9thodes d&rsquo;acc\u00e8s analytique.<\/p>\n<figure class=\"wpt-preserved-image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/french.arabpsychology.com\/wp-content\/uploads\/2026\/09\/scattermatrix2.png\" alt=\"\" \/><\/figure>\n<p>NumPy intervient en amont comme moteur de calcul vectoris\u00e9 et de manipulation matricielle de bas niveau. Dans le contexte de la mod\u00e9lisation ou de la simulation de donn\u00e9es synth\u00e9tiques, ses g\u00e9n\u00e9rateurs de nombres pseudo-al\u00e9atoires et ses structures de tableaux multidimensionnels (<code>ndarray<\/code>) constituent le substrat computationnel permettant de cr\u00e9er des distributions contr\u00f4l\u00e9es aux propri\u00e9t\u00e9s statistiques v\u00e9rifi\u00e9es.<\/p>\n<p>Matplotlib, quant \u00e0 lui, constitue le moteur graphique fondamental sous-jacent. Bien que l&rsquo;utilisateur n&rsquo;invoque souvent qu&rsquo;une seule fonction de haut niveau au sein de Pandas, c&rsquo;est bien l&rsquo;architecture d&rsquo;objets de Matplotlib \u2014 articul\u00e9e autour des figures (<code>Figure<\/code>) et des syst\u00e8mes de coordonn\u00e9es (<code>Axes<\/code>) \u2014 qui r\u00e9alise le rendu graphique vectoriel ou matriciel. La fonction <code>pd.plotting.scatter_matrix<\/code> agit comme une interface d&rsquo;abstraction \u00e9l\u00e9gante qui orchestre la cr\u00e9ation d&rsquo;une grille complexe d&rsquo;axes Matplotlib tout en appliquant les conventions de dessin requises pour chaque sous-graphique.<\/p>\n<h3>3.2 Configuration du cadre d&rsquo;ex\u00e9cution pour la reproductibilit\u00e9<\/h3>\n<p>Pour garantir la rigueur m\u00e9thodologique et la reproductibilit\u00e9 absolue des analyses num\u00e9riques et des visualisations pr\u00e9sent\u00e9es dans ce guide, il est imp\u00e9ratif de configurer ad\u00e9quatement le cadre d&rsquo;ex\u00e9cution Python. Cela implique la fixation explicite de la graine al\u00e9atoire (<em>seed<\/em>) du g\u00e9n\u00e9rateur stochastique de NumPy afin d&rsquo;assurer que toute simulation synth\u00e9tique produise des r\u00e9sultats strictement identiques quel que soit l&rsquo;environnement h\u00f4te.<\/p>\n<p>Dans le cadre de l&rsquo;utilisation d&rsquo;environnements interactifs tels que les carnets de notes Jupyter ou les interfaces JupyterLab, il convient de d\u00e9clarer la directive d&rsquo;int\u00e9gration graphique appropri\u00e9e pour orchestrer l&rsquo;affichage des figures dans le flux d&rsquo;ex\u00e9cution du document de travail. De surcro\u00eet, la standardisation des param\u00e8tres de style graphique global via le module <code>matplotlib.pyplot<\/code> assure une coh\u00e9rence \u00e9ditoriale indispensable \u00e0 la r\u00e9daction de manuscrits scientifiques conformes aux normes des revues internationales \u00e0 comit\u00e9 de lecture.<\/p>\n<p>Le bloc de code ci-dessous mat\u00e9rialise cette phase pr\u00e9paratoire indispensable. Il importe l&rsquo;ensemble des modules logiciels n\u00e9cessaires, assigne leurs alias conventionnels, initialise la graine stochastique pour neutraliser la d\u00e9rive al\u00e9atoire et calibre les param\u00e8tres de rendu visuel par d\u00e9faut afin d&rsquo;optimiser le confort de lecture :<\/p>\n<p><code>import numpy as np<\/code><br \/>\n<code>import pandas as pd<\/code><br \/>\n<code>import matplotlib.pyplot as plt<\/code><\/p>\n<p><code># Fixation de la graine du g\u00e9n\u00e9rateur pseudo-al\u00e9atoire pour reproductibilit\u00e9<\/code><br \/>\n<code>np.random.seed(42)<\/code><\/p>\n<p><code># Param\u00e9trage esth\u00e9tique global de Matplotlib<\/code><br \/>\n<code>plt.rcParams['font.sans-serif'] = 'DejaVu Sans'<\/code><br \/>\n<code>plt.rcParams['axes.edgecolor'] = '#333333'<\/code><br \/>\n<code>plt.rcParams['axes.linewidth'] = 0.8<\/code><\/p>\n<h2>4. G\u00e9n\u00e9ration et structuration du jeu de donn\u00e9es d&rsquo;exemple<\/h2>\n<h3>4.1 Cr\u00e9ation du DataFrame de r\u00e9f\u00e9rence<\/h3>\n<p>Afin d&rsquo;illustrer la syntaxe, les capacit\u00e9s d&rsquo;ajustement et les modalit\u00e9s d&rsquo;interpr\u00e9tation d&rsquo;une matrice de dispersion sans d\u00e9pendre d&rsquo;une source de donn\u00e9es externe sujette \u00e0 des ruptures de liens, nous proc\u00e9dons \u00e0 la construction m\u00e9thodique d&rsquo;un jeu de donn\u00e9es synth\u00e9tique rigoureusement formalis\u00e9. Ce DataFrame mod\u00e9lisera les performances physiques et biom\u00e9triques d&rsquo;une cohorte d&rsquo;athl\u00e8tes professionnels au travers de trois variables quantitatives continues embl\u00e9matiques : les points marqu\u00e9s (<em>points<\/em>), les passes d\u00e9cisives distribu\u00e9es (<em>assists<\/em>) et les rebonds capt\u00e9s (<em>rebounds<\/em>).<\/p>\n<p>Pour assurer un r\u00e9alisme psychom\u00e9trique et biom\u00e9trique satisfaisant, ces variables sont g\u00e9n\u00e9r\u00e9es au moyen de distributions normales multivari\u00e9es contr\u00f4l\u00e9es \u00e0 l&rsquo;aide de NumPy, simulant des niveaux de dispersion empiriques r\u00e9alistes et standardis\u00e9s. La structure tabulaire est ensuite mat\u00e9rialis\u00e9e au moyen du constructeur standard <code>pd.DataFrame<\/code>, en affectant \u00e0 chaque vecteur un nom explicite qui servira ult\u00e9rieurement d&rsquo;\u00e9tiquetage automatique sur les axes de la visualisation.<\/p>\n<p>L&rsquo;impl\u00e9mentation algorithmique de cette \u00e9tape d&rsquo;instanciation s&rsquo;articule comme suit :<\/p>\n<p><code># D\u00e9finition de la taille de l'\u00e9chantillon d'observations<\/code><br \/>\n<code>n_observations = 250<\/code><\/p>\n<p><code># G\u00e9n\u00e9ration de variables al\u00e9atoires continues avec propri\u00e9t\u00e9s distributionnelles d\u00e9finies<\/code><br \/>\n<code>points = np.random.normal(loc=20.0, scale=5.5, size=n_observations)<\/code><br \/>\n<code>assists = np.random.normal(loc=5.0, scale=2.2, size=n_observations)<\/code><br \/>\n<code>rebounds = np.random.normal(loc=8.0, scale=3.1, size=n_observations)<\/code><\/p>\n<p><code># Encapsulation matricielle au sein d'une structure DataFrame Pandas<\/code><br \/>\n<code>df = pd.DataFrame({<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;'points': points,<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;'assists': assists,<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;'rebounds': rebounds<\/code><br \/>\n<code>})<\/code><\/p>\n<h3>4.2 Inspection pr\u00e9liminaire des donn\u00e9es simul\u00e9es<\/h3>\n<p>Avant d&rsquo;engager toute proc\u00e9dure de restitution graphique multidimensionnelle, une d\u00e9marche analytique rigoureuse exige une v\u00e9rification scrupuleuse de la structure interne des donn\u00e9es simul\u00e9es. Il convient de s&rsquo;assurer de l&rsquo;ad\u00e9quation des dimensions matricielles, de la conformit\u00e9 des types scalaires h\u00e9berg\u00e9s au sein de chaque vecteur (qui doivent imp\u00e9rativement appartenir au domaine num\u00e9rique, sous peine d&rsquo;induire des d\u00e9faillances critiques lors du calcul des projections g\u00e9om\u00e9triques) et de l&rsquo;absence totale de valeurs manquantes (<code>NaN<\/code>) ou de corruptions d&rsquo;encodage.<\/p>\n<p>Cette \u00e9tape d&rsquo;audit exploratoire s&rsquo;ex\u00e9cute traditionnellement au travers des m\u00e9thodes natives de Pandas telles que <code>head()<\/code>, qui extrait les premi\u00e8res observations du jeu de donn\u00e9es pour une validation visuelle rapide de la topologie tabulaire, et <code>describe()<\/code>, qui synth\u00e9tise les moments statistiques fondamentaux de chaque distribution continue, incluant la moyenne arithm\u00e9tique, l&rsquo;\u00e9cart-type, les valeurs extr\u00eames minimale et maximale, ainsi que les quartiles empiriques.<\/p>\n<p>Le code suivant permet de r\u00e9aliser cette v\u00e9rification pr\u00e9liminaire sur notre jeu de donn\u00e9es :<\/p>\n<p><code># Examen des cinq premi\u00e8res lignes du DataFrame<\/code><br \/>\n<code>print(df.head())<\/code><\/p>\n<p><code># Diagnostic synth\u00e9tique des moments statistiques descriptifs<\/code><br \/>\n<code>print(df.describe().round(2))<\/code><\/p>\n<p>L&rsquo;ex\u00e9cution de cette s\u00e9quence permet de confirmer que les vecteurs de notre tableau comportent exactement 250 observations continues de type flottant 64 bits (<code>float64<\/code>), r\u00e9parties selon des distributions aux moyennes empiriques proches des param\u00e8tres th\u00e9oriques inject\u00e9s dans le g\u00e9n\u00e9rateur stochastique, sans aucune rupture de continuit\u00e9 m\u00e9trique.<\/p>\n<h2>5. Syntaxe fondamentale et premier exemple : la matrice de dispersion de base<\/h2>\n<h3>5.1 Impl\u00e9mentation de pd.plotting.scatter_matrix<\/h3>\n<p>L&rsquo;invocation de la matrice de dispersion au sein de l&rsquo;\u00e9cosyst\u00e8me Pandas b\u00e9n\u00e9ficie d&rsquo;une ergonomie syntaxique remarquable. La fonction <code>scatter_matrix<\/code> r\u00e9side directement dans le module <code>pandas.plotting<\/code> et peut \u00eatre appel\u00e9e en lui transmettant simplement le DataFrame cible comme argument principal obligatoire. Dans sa formulation la plus \u00e9pur\u00e9e, aucun param\u00e9trage additionnel n&rsquo;est strictement requis pour produire une visualisation fonctionnelle compl\u00e8te.<\/p>\n<p>Lorsque cette fonction est ex\u00e9cut\u00e9e sans modification de ses options par d\u00e9faut, Pandas inspecte dynamiquement l&rsquo;ensemble des colonnes composant le DataFrame, filtre automatiquement les attributs purement num\u00e9riques en \u00e9cartant les cha\u00eenes de caract\u00e8res ou les types temporels incompatibles, calcule la dimension <em>p<\/em> de la grille r\u00e9sultante et alloue une collection de sous-graphiques interconnect\u00e9s via Matplotlib.<\/p>\n<p>L&rsquo;instruction standard pour g\u00e9n\u00e9rer cette figure initiale se formule comme suit :<\/p>\n<p><code># Appel direct de la fonction scatter_matrix sur le DataFrame<\/code><br \/>\n<code>pd.plotting.scatter_matrix(df)<\/code><br \/>\n<code>plt.show()<\/code><\/p>\n<p>Ce bloc \u00e9l\u00e9mentaire d\u00e9clenche l&rsquo;ex\u00e9cution des routines de trac\u00e9 vectoriel, calculant pour chaque combinaison de paires de colonnes le diagramme de dispersion correspondant et ins\u00e9rant sur chaque segment diagonal un histogramme de distribution discr\u00e9tis\u00e9 en dix classes par d\u00e9faut.<\/p>\n<h3>5.2 D\u00e9composition architecturale de la figure r\u00e9sultante<\/h3>\n<p>La figure g\u00e9n\u00e9r\u00e9e par l&rsquo;appel de base pr\u00e9sente une topologie rigoureusement quadrill\u00e9e de 3 \u00d7 3 sous-graphiques, correspondant fid\u00e8lement aux trois variables de notre jeu de donn\u00e9es (<em>points<\/em>, <em>assists<\/em>, <em>rebounds<\/em>). Chacune des cellules est ench\u00e2ss\u00e9e dans un syst\u00e8me d&rsquo;axes cart\u00e9siens pr\u00e9cis\u00e9ment coordonn\u00e9, garantissant une coh\u00e9rence g\u00e9om\u00e9trique sur l&rsquo;ensemble de la figure.<\/p>\n<p>Le syst\u00e8me de d\u00e9signation textuelle h\u00e9rite directement des \u00e9tiquettes attribu\u00e9es aux colonnes du DataFrame : les noms de variables apparaissent en ordonn\u00e9e le long de la colonne la plus \u00e0 gauche de la grille et en abscisse \u00e0 la base de la rang\u00e9e inf\u00e9rieure. Cette disposition strat\u00e9gique \u00e9limine la redondance textuelle qui r\u00e9sulterait de l&rsquo;affichage syst\u00e9matique des \u00e9tiquettes sur chacune des cellules individuelles, pr\u00e9servant ainsi la puret\u00e9 visuelle globale.<\/p>\n<p>Les six cellules situ\u00e9es en dehors de la diagonale principale exposent les diagrammes de dispersion bivari\u00e9s standard, o\u00f9 chaque point bleu repr\u00e9sente une observation individuelle projet\u00e9e dans le plan bidimensionnel correspondant. Les trois cellules diagonales h\u00e9bergent quant \u00e0 elles des histogrammes discrets de fr\u00e9quences absolues. Bien que cette configuration par d\u00e9faut offre une premi\u00e8re vision exploitable, elle r\u00e9v\u00e8le fr\u00e9quemment des limites graphiques notables : les \u00e9tiquettes d&rsquo;axes peuvent se chevaucher en raison de la compacit\u00e9 de l&rsquo;agencement, et le d\u00e9coupage automatique des histogrammes peut masquer des particularit\u00e9s de densit\u00e9 sous-jacentes.<\/p>\n<h3>5.3 Interpr\u00e9tation initiale des relations observ\u00e9es<\/h3>\n<p>L&rsquo;observation attentive de la matrice de dispersion de base g\u00e9n\u00e9r\u00e9e \u00e0 partir de notre jeu de donn\u00e9es synth\u00e9tique autorise plusieurs inf\u00e9rences statistiques majeures. En premier lieu, l&rsquo;examen des nuages de points dans les cellules hors diagonale montre une absence totale de directionalit\u00e9 lin\u00e9aire marqu\u00e9e. Les observations se d\u00e9ploient de mani\u00e8re sph\u00e9rique et isotrope autour du centre de gravit\u00e9 des coordonn\u00e9es, ce qui atteste visuellement de l&rsquo;ind\u00e9pendance statistique fondamentale des trois variables g\u00e9n\u00e9r\u00e9es de fa\u00e7on stochastiquement disjointe.<\/p>\n<p>En second lieu, l&rsquo;inspection des histogrammes situ\u00e9s le long de la diagonale principale r\u00e9v\u00e8le des profils en cloche caract\u00e9ristiques de la loi normale univari\u00e9e. On note une concentration pr\u00e9pond\u00e9rante des observations autour de la m\u00e9diane et de la moyenne empirique de chaque variable, flanqu\u00e9e d&rsquo;une d\u00e9croissance sym\u00e9trique progressive vers les queues de distribution \u00e0 mesure que l&rsquo;on s&rsquo;\u00e9carte du centre de la distribution.<\/p>\n<p>Enfin, cette premi\u00e8re projection valide l&rsquo;absence de colin\u00e9arit\u00e9 artificielle ou de perturbations m\u00e9thodologiques induites par la simulation. Aucun regroupement discret (<em>clustering<\/em>), aucune discontinuit\u00e9 brutale ni aucune concentration marginale anormale ne vient troubler la r\u00e9gularit\u00e9 du sch\u00e9ma, fournissant ainsi une base neutre id\u00e9ale avant d&rsquo;entreprendre des op\u00e9rations de s\u00e9lection cibl\u00e9e et de customisation esth\u00e9tique pouss\u00e9e.<\/p>\n<h2>6. S\u00e9lection cibl\u00e9e des sous-ensembles de variables via l&rsquo;indexation<\/h2>\n<h3>6.1 Utilisation de l&rsquo;indexeur iloc pour l&rsquo;extraction de variables sp\u00e9cifiques<\/h3>\n<p>Dans les contextes de recherche appliqu\u00e9e impliquant des bases de donn\u00e9es volumineuses comportant des dizaines, voire des centaines d&rsquo;indicateurs num\u00e9riques, projeter l&rsquo;int\u00e9gralit\u00e9 du tableau dans une matrice de dispersion globale s&rsquo;av\u00e8re totalement contre-productif. L&rsquo;analyste se trouve alors confront\u00e9 \u00e0 une micro-grille satur\u00e9e d&rsquo;axes illisibles. Il est par cons\u00e9quent imp\u00e9ratif de cibler l&rsquo;analyse sur des sous-ensembles pr\u00e9cis de variables au moyen des m\u00e9canismes d&rsquo;indexation vectorielle de Pandas.<\/p>\n<p>L&rsquo;indexeur positionnel <code>iloc<\/code> constitue un instrument particuli\u00e8rement robuste pour isoler des sous-matrices par d\u00e9coupage d&rsquo;indices entiers (<em>slicing<\/em>). En sp\u00e9cifiant une plage de positions de colonnes, le chercheur extrait dynamiquement une vue r\u00e9duite du DataFrame d&rsquo;origine avant de la transmettre directement en argument \u00e0 la fonction <code>scatter_matrix<\/code>. Cette m\u00e9thode garantit une rapidit\u00e9 d&rsquo;ex\u00e9cution optimale en \u00e9vitant toute copie superflue de la structure en m\u00e9moire.<\/p>\n<p>Le fragment de code ci-apr\u00e8s d\u00e9montre comment extraire strictement les deux premi\u00e8res variables du tableau (\u00e0 savoir <em>points<\/em> et <em>assists<\/em>) au moyen de l&rsquo;op\u00e9rateur <code>iloc<\/code> afin de concentrer l&rsquo;exploration bivari\u00e9e sur un sous-espace vectoriel de dimension 2 \u00d7 2 :<\/p>\n<p><code># Extraction positionnelle des deux premi\u00e8res colonnes via iloc<\/code><br \/>\n<code>sous_ensemble_positionnel = df.iloc[:, 0:2]<\/code><\/p>\n<p><code># G\u00e9n\u00e9ration de la matrice de dispersion restreinte \u00e0 2x2 sous-graphiques<\/code><br \/>\n<code>pd.plotting.scatter_matrix(sous_ensemble_positionnel)<\/code><br \/>\n<code>plt.show()<\/code><\/p>\n<p>Cette approche permet une inspection granulaire d&rsquo;un bin\u00f4me ou d&rsquo;un trin\u00f4me de variables sans encombrer la m\u00e9moire de travail ni surcharger l&rsquo;espace d&rsquo;affichage de sous-graphiques non pertinents.<\/p>\n<h3>6.2 S\u00e9lection par \u00e9tiquettes avec loc et listes de variables<\/h3>\n<p>Bien que l&rsquo;indexation positionnelle via <code>iloc<\/code> soit fonctionnellement irr\u00e9prochable, elle pr\u00e9sente une vuln\u00e9rabilit\u00e9 inh\u00e9rente aux modifications structurelles ult\u00e9rieures du jeu de donn\u00e9es : si l&rsquo;ordre des colonnes du DataFrame vient \u00e0 \u00eatre modifi\u00e9 lors d&rsquo;une \u00e9tape de pr\u00e9traitement, le d\u00e9coupage positionnel risque de s\u00e9lectionner des variables non souhait\u00e9es. Pour pr\u00e9venir cette fragilit\u00e9 algorithmique et garantir la lisibilit\u00e9 du code, la s\u00e9lection explicite par \u00e9tiquettes textuelles via l&rsquo;indexeur <code>loc<\/code> ou l&rsquo;op\u00e9rateur de sous-ensemble par liste de cha\u00eenes de caract\u00e8res repr\u00e9sente la bonne pratique reconnue.<\/p>\n<p>Cette m\u00e9thodologie d&rsquo;extraction s&rsquo;adapte id\u00e9alement \u00e0 l&rsquo;analyse de questionnaires psychom\u00e9triques complexes comprenant de multiples \u00e9chelles et sous-\u00e9chelles factorielles, au sein desquels l&rsquo;exp\u00e9rimentateur souhaite confronter des dimensions conceptuelles pr\u00e9cis\u00e9ment nomm\u00e9es. La transmission explicite d&rsquo;une liste d&rsquo;identifiants de variables conf\u00e8re au script une parfaite clart\u00e9 s\u00e9mantique et une r\u00e9silience totale aux r\u00e9organisations tabulaires.<\/p>\n<p>Le code suivant illustre l&rsquo;extraction de deux dimensions non adjacentes du DataFrame (<em>points<\/em> et <em>rebounds<\/em>) en utilisant la syntaxe d&rsquo;acc\u00e8s direct par \u00e9tiquettes :<\/p>\n<p><code># D\u00e9finition formelle de la liste des variables d'int\u00e9r\u00eat clinique ou th\u00e9orique<\/code><br \/>\n<code>variables_cibles = ['points', 'rebounds']<\/code><\/p>\n<p><code># Sous-\u00e9chantillonnage explicite par \u00e9tiquettes et restitution matricielle<\/code><br \/>\n<code>pd.plotting.scatter_matrix(df[variables_cibles])<\/code><br \/>\n<code>plt.show()<\/code><\/p>\n<h3>6.3 Optimisation visuelle pour les jeux de donn\u00e9es \u00e0 haute dimension<\/h3>\n<p>Face \u00e0 des jeux de donn\u00e9es dits \u00e0 haute dimension \u2014 caract\u00e9ristiques des approches transcriptomiques en biologie, des enregistrements d&rsquo;\u00e9lectroenc\u00e9phalographie multicanaux ou des batteries d&rsquo;\u00e9valuations cognitives massives \u2014 la construction d&rsquo;une matrice de dispersion compl\u00e8te de dimension 20 \u00d7 20 ou sup\u00e9rieure induit une saturation cognitive absolue. Les cellules individuelles sont r\u00e9duites \u00e0 des dimensions physiques minuscules o\u00f9 les nuages de points se r\u00e9sument \u00e0 des agr\u00e9gats illisibles et o\u00f9 les graduations d&rsquo;axes se t\u00e9lescopent inexorablement.<\/p>\n<p>Pour contourner cet \u00e9cueil ergonomique et statistique, la strat\u00e9gie m\u00e9thodologique pr\u00e9conis\u00e9e consiste \u00e0 partitionner l&rsquo;espace global des variables en blocs conceptuels th\u00e9matiques d&rsquo;ordre hi\u00e9rarchique. L&rsquo;analyste peut ainsi concevoir des matrices modulaires ind\u00e9pendantes regroupant au maximum quatre \u00e0 six indicateurs interconnect\u00e9s par sous-syst\u00e8me th\u00e9orique.<\/p>\n<p>Une d\u00e9marche avanc\u00e9e compl\u00e9mentaire consiste \u00e0 op\u00e9rer une premi\u00e8re s\u00e9lection statistique guid\u00e9e par une matrice de corr\u00e9lation num\u00e9rique pr\u00e9liminaire. En n&rsquo;int\u00e9grant \u00e0 la scatter matrix que les couples de variables affichant des coefficients de d\u00e9pendance significatifs ou sup\u00e9rieurs \u00e0 un seuil critique pr\u00e9d\u00e9termin\u00e9, l&rsquo;analyste d\u00e9ploie l&rsquo;effort de visualisation l\u00e0 o\u00f9 l&rsquo;information structurale est la plus dense, all\u00e9geant significativement la charge computationnelle et cognitive globale.<\/p>\n<h2>7. Personnalisation esth\u00e9tique : couleurs, marqueurs et dimensions de la figure<\/h2>\n<h3>7.1 Gestion des param\u00e8tres de taille avec figsize<\/h3>\n<p>Le param\u00e9trage dimensionnel global de la figure constitue le premier levier d&rsquo;optimisation de la lisibilit\u00e9 d&rsquo;une matrice de dispersion. Par d\u00e9faut, Pandas dimensionne l&rsquo;espace d&rsquo;affichage selon les valeurs standard de Matplotlib (habituellement 6,4 \u00d7 4,8 pouces), ce qui engendre un \u00e9crasement consid\u00e9rable d\u00e8s que le nombre de variables d\u00e9passe trois colonnes. Pour r\u00e9soudre cette contrainte g\u00e9om\u00e9trique, le param\u00e8tre <code>figsize<\/code> accepte un tuple de deux valeurs num\u00e9riques sp\u00e9cifiant respectivement la largeur et la hauteur totale du canevas en pouces.<\/p>\n<p>L&rsquo;attribution judicieuse de proportions carr\u00e9es ou l\u00e9g\u00e8rement rectangulaires \u00e9quilibr\u00e9es (par exemple, <code>figsize=(10, 10)<\/code> ou <code>figsize=(12, 12)<\/code>) permet d&rsquo;octroyer \u00e0 chaque cellule un espace orthogonal suffisant pour que les points puissent se d\u00e9ployer sans tassement artificiel. Cette a\u00e9ration g\u00e9om\u00e9trique assure en outre la pr\u00e9servation de la visibilit\u00e9 des rep\u00e8res de graduation num\u00e9rique (<em>ticks<\/em>) et \u00e9vite le chevauchement des titres de variables sur les marges ext\u00e9rieures de la matrice.<\/p>\n<p>Dans la perspective d&rsquo;une publication dans une revue acad\u00e9mique, le calibrage m\u00e9trique de <code>figsize<\/code> doit s&rsquo;ajuster aux sp\u00e9cifications techniques de mise en page des \u00e9diteurs scientifiques (format une colonne ou deux colonnes, g\u00e9n\u00e9ralement \u00e9quivalent \u00e0 une largeur physique comprise entre 8,5 et 17 centim\u00e8tres), garantissant que la taille relative des polices de caract\u00e8res et des \u00e9l\u00e9ments graphiques demeure parfaitement intelligible apr\u00e8s r\u00e9duction \u00e0 l&rsquo;\u00e9chelle d&rsquo;impression.<\/p>\n<h3>7.2 Attribution chromatique et personnalisation des points<\/h3>\n<p>L&rsquo;apparence visuelle des points individuels au sein des cellules bivari\u00e9es conditionne la finesse de l&rsquo;analyse perceptive. La fonction <code>scatter_matrix<\/code> met \u00e0 disposition trois param\u00e8tres graphiques majeurs pour piloter cette mod\u00e9lisation : <code>color<\/code>, <code>marker<\/code> et <code>alpha<\/code>.<\/p>\n<figure class=\"wpt-preserved-image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/french.arabpsychology.com\/wp-content\/uploads\/2026\/09\/scattermatrix3.png\" alt=\"pandas scatter matrix with custom color\" \/><figcaption>pandas scatter matrix with custom color<\/figcaption><\/figure>\n<p>Le param\u00e8tre <code>color<\/code> permet de substituer \u00e0 la couleur bleue par d\u00e9faut des teintes conformes aux chartes graphiques de publications scientifiques ou aux \u00e9chelles perceptuellement uniformes. Il accepte des codes hexad\u00e9cimaux stricts (ex. <code>'#2b5c8f'<\/code>) ou des identifiants nomm\u00e9s. Le param\u00e8tre <code>marker<\/code> autorise quant \u00e0 lui le remplacement des cercles pleins standards par une grande vari\u00e9t\u00e9 de symboles g\u00e9om\u00e9triques issus de Matplotlib, tels que des croix (<code>'x'<\/code>), des carr\u00e9s (<code>'s'<\/code>) ou des triangles (<code>'^'<\/code>), ce qui peut s&rsquo;av\u00e9rer utile pour pr\u00e9server la distinction visuelle lors de reproductions en niveaux de gris.<\/p>\n<p>Le param\u00e8tre le plus critique pour l&rsquo;analyse statistique demeure sans conteste <code>alpha<\/code>, qui module le coefficient d&rsquo;opacit\u00e9 des marqueurs le long d&rsquo;un intervalle continu s&rsquo;\u00e9tendant de 0 (transparence totale) \u00e0 1 (opacit\u00e9 absolue). En assignant une valeur interm\u00e9diaire (par exemple <code>alpha=0.5<\/code> ou <code>alpha=0.3<\/code>), les points qui se chevauchent dans les zones de forte concentration spatiale intensifient proportionnellement leur teinte locale. Cela fait \u00e9merger de fa\u00e7on quasi topographique la densit\u00e9 probabiliste bivari\u00e9e sous-jacente, \u00e9liminant l&rsquo;illusion d&rsquo;uniformit\u00e9 propre aux nuages de points satur\u00e9s.<\/p>\n<p>Le bloc de code ci-dessous mat\u00e9rialise l&rsquo;int\u00e9gration simultan\u00e9e de ces options de personnalisation esth\u00e9tique avanc\u00e9e :<\/p>\n<p><code># G\u00e9n\u00e9ration d'une matrice hautement personnalis\u00e9e<\/code><br \/>\n<code>pd.plotting.scatter_matrix(<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;df,<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;figsize=(10, 10),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;color='#2b5c8f',<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;marker='o',<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;alpha=0.4<\/code><br \/>\n<code>)<\/code><br \/>\n<code>plt.show()<\/code><\/p>\n<h3>7.3 Harmonisation typographique et gestion de la mise en page<\/h3>\n<p>Une visualisation scientifique n&rsquo;atteint son plein potentiel de communication que si l&rsquo;environnement typographique et l&rsquo;agencement structural respectent les principes de base du design d&rsquo;information. Par d\u00e9faut, la scatter matrix de Pandas peut g\u00e9n\u00e9rer des sous-graphiques dont les textes d&rsquo;axes p\u00e9riph\u00e9riques empi\u00e8tent sur les graduations voisines, compromettant la clart\u00e9 du document final.<\/p>\n<p>Pour rem\u00e9dier \u00e0 ces interf\u00e9rences spatiales, l&rsquo;analyste peut invoquer en amont les param\u00e8tres globaux de Matplotlib via <code>plt.rc()<\/code> ou <code>plt.rcParams<\/code> afin de calibrer uniform\u00e9ment la taille des polices de caract\u00e8res pour les \u00e9tiquettes de variables (<code>axes.labelsize<\/code>) et pour les rep\u00e8res de graduation (<code>xtick.labelsize<\/code>, <code>ytick.labelsize<\/code>). L&rsquo;harmonisation typographique implique \u00e9galement l&rsquo;usage de polices sans empattement hautement lisibles (comme DejaVu Sans, Helvetica ou Arial).<\/p>\n<p>Par ailleurs, l&rsquo;ajustement spatial des marges et des espacements inter-axes peut \u00eatre affin\u00e9 apr\u00e8s l&rsquo;appel de <code>scatter_matrix<\/code> au moyen de la m\u00e9thode <code>plt.tight_layout()<\/code> ou, plus pr\u00e9cis\u00e9ment encore, via la commande <code>plt.subplots_adjust()<\/code>. Cette derni\u00e8re fonction permet de stipuler manuellement les espaces r\u00e9serv\u00e9s horizontaux (<code>wspace<\/code>) et verticaux (<code>hspace<\/code>) s\u00e9parant les cellules de la grille, instaurant une s\u00e9paration nette entre chaque sous-graphique ou, au contraire, \u00e9liminant totalement les espaces pour concevoir une mosa\u00efque continue de haute densit\u00e9 informationnelle.<\/p>\n<h2>8. Configuration des visualisations diagonales : histogrammes et densit\u00e9s par noyau<\/h2>\n<h3>8.1 Param\u00e9trage pr\u00e9cis des histogrammes diagonaux via hist_kwds<\/h3>\n<p>Les repr\u00e9sentations distributionnelles univari\u00e9es d\u00e9ploy\u00e9es le long de la diagonale principale constituent une pi\u00e8ce ma\u00eetresse de l&rsquo;interpr\u00e9tation diagnostique de la matrice. Par d\u00e9faut, Pandas param\u00e8tre ces cellules avec des histogrammes discrets configur\u00e9s avec un nombre standard de dix classes (<em>bins<\/em>). Cette discr\u00e9tisation g\u00e9n\u00e9rique est rarement optimale : selon l&rsquo;effectif total de l&rsquo;\u00e9chantillon, elle peut soit agr\u00e9ger excessivement l&rsquo;information et dissimuler des asym\u00e9tries locales, soit sur-segmenter la distribution et cr\u00e9er une variabilit\u00e9 d&rsquo;\u00e9chantillonnage purement artificielle.<\/p>\n<p>Pour exercer un contr\u00f4le pr\u00e9cis sur le comportement de ces histogrammes, la fonction <code>scatter_matrix<\/code> expose l&rsquo;argument <code>hist_kwds<\/code>. Ce param\u00e8tre accepte un dictionnaire Python regroupant les arguments de bas niveau directement transmis \u00e0 la fonction d&rsquo;histogramme de Matplotlib (<code>plt.hist<\/code>). Gr\u00e2ce \u00e0 ce canal de configuration, l&rsquo;analyste peut ajuster dynamiquement le nombre d&rsquo;intervalles (<code>'bins'<\/code>), sp\u00e9cifier les d\u00e9limitations exactes des classes, modifier la couleur de remplissage ou appliquer une bordure contrast\u00e9e sur chaque barre pour accentuer la nettet\u00e9 visuelle de la d\u00e9coupe.<\/p>\n<p>La r\u00e8gle empirique de Sturges ou la formule plus robuste de Freedman-Diaconis bas\u00e9e sur l&rsquo;\u00e9cart interquartile peuvent ainsi \u00eatre mises \u00e0 profit pour d\u00e9terminer le nombre optimal de classes \u00e0 assigner dans le dictionnaire <code>hist_kwds<\/code>, comme illustr\u00e9 dans l&rsquo;exemple technique suivant :<\/p>\n<p><code># D\u00e9finition du dictionnaire d'ajustement avanc\u00e9 des histogrammes<\/code><br \/>\n<code>parametres_hist = {<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;'bins': 20,<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;'color': '#4a7c59',<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;'edgecolor': '#ffffff',<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;'linewidth': 0.75<\/code><br \/>\n<code>}<\/code><\/p>\n<p><code># G\u00e9n\u00e9ration de la matrice avec histogrammes calibr\u00e9s<\/code><br \/>\n<code>pd.plotting.scatter_matrix(<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;df,<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;figsize=(10, 10),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;diagonal='hist',<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;hist_kwds=parametres_hist<\/code><br \/>\n<code>)<\/code><br \/>\n<code>plt.show()<\/code><\/p>\n<h3>8.2 Substitution des histogrammes par l&rsquo;estimation de densit\u00e9 par noyau (KDE)<\/h3>\n<p>Bien que les histogrammes apportent un rendu direct du comptage des fr\u00e9quences empiriques, ils demeurent intrins\u00e8quement tributaires de deux facteurs arbitraires : le nombre total de classes retenu et l&#8217;emplacement de l&rsquo;origine de discr\u00e9tisation. Pour s&rsquo;affranchir de ces limites m\u00e9thodologiques et acc\u00e9der \u00e0 une mod\u00e9lisation continue et lisse de la loi de probabilit\u00e9 sous-jacente, il est fortement recommand\u00e9 de substituer aux histogrammes une estimation de la densit\u00e9 par noyau, conventionnellement d\u00e9sign\u00e9e par l&rsquo;acronyme KDE (<a rel=\"noopener noreferrer\" href=\"https:\/\/en.wikipedia.org\/wiki\/Kernel_density_estimation\"><em>Kernel Density Estimation<\/em><\/a>).<\/p>\n<figure class=\"wpt-preserved-image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/french.arabpsychology.com\/wp-content\/uploads\/2026\/09\/scattermatrix4.png\" alt=\"\" \/><\/figure>\n<p>Dans la syntaxe de Pandas, cette transition s&rsquo;op\u00e8re instantan\u00e9ment en basculant l&rsquo;argument <code>diagonal<\/code> de sa valeur par d\u00e9faut <code>'hist'<\/code> vers l&rsquo;option <code>'kde'<\/code> (ou son synonyme <code>'density'<\/code>). D\u00e8s lors, le sous-syst\u00e8me de calcul graphique applique un lissage statistique par convolution d&rsquo;un noyau fonctionnel continu (le plus souvent un noyau gaussien standard) centr\u00e9 sur chaque observation individuelle de l&rsquo;\u00e9chantillon. L&rsquo;expression math\u00e9matique de l&rsquo;estimateur par noyau s&rsquo;\u00e9nonce classiquement :<\/p>\n<p><em>f\u0302<sub>h<\/sub>(x)<\/em> = (1 \/ (n h)) \u2211<sub>k=1<\/sub><sup>n<\/sup> K((x &#8211; x<sub>k<\/sub>) \/ h)<\/p>\n<p>o\u00f9 <em>K<\/em> repr\u00e9sente la fonction de noyau sym\u00e9trique int\u00e9grant \u00e0 un, <em>n<\/em> la taille d&rsquo;\u00e9chantillon, et <em>h<\/em> le param\u00e8tre de lissage essentiel d\u00e9sign\u00e9 sous le terme de bande passante (<em>bandwidth<\/em>). Ce calcul, ex\u00e9cut\u00e9 en arri\u00e8re-plan via SciPy et int\u00e9gr\u00e9 par Pandas, permet de restituer une courbe de densit\u00e9 diff\u00e9rentiable continue r\u00e9v\u00e9lant avec une grande puret\u00e9 la morphologie globale, l&rsquo;aplatissement et la sym\u00e9trie de chaque variable.<\/p>\n<h3>8.3 Crit\u00e8res m\u00e9thodologiques de choix entre histogramme et densit\u00e9<\/h3>\n<p>Le choix d\u00e9lib\u00e9r\u00e9 entre histogrammes discrets et trac\u00e9s de densit\u00e9 continus sur la diagonale principale ne rel\u00e8ve pas d&rsquo;une simple pr\u00e9f\u00e9rence esth\u00e9tique, mais proc\u00e8de d&rsquo;une r\u00e9flexion m\u00e9thodologique rigoureuse sur la nature de la distribution et les propri\u00e9t\u00e9s m\u00e9triques des donn\u00e9es \u00e9tudi\u00e9es. L&rsquo;analyste doit \u00e9valuer les compromis statistiques inh\u00e9rents \u00e0 chaque option graphique.<\/p>\n<p>L&rsquo;histogramme s&rsquo;impose comme le choix m\u00e9thodologique le plus transparent lorsque les variables mesur\u00e9es sont intrins\u00e8quement discr\u00e8tes (telles que des scores entiers sur une \u00e9chelle de Likert, des d\u00e9nombrements d&rsquo;\u00e9v\u00e9nements comportementaux ou des fr\u00e9quences d&rsquo;erreurs) ou lorsque l&rsquo;\u00e9chantillon comporte des discontinuit\u00e9s structurelles strictes (intervalles tronqu\u00e9s ou effets de seuil infranchissables). Dans ces conditions, le lissage continu d&rsquo;une courbe KDE risquerait d&rsquo;induire le lecteur en erreur en \u00e9talant de la probabilit\u00e9 hors des limites physiques r\u00e9elles de la variable (par exemple, en sugg\u00e9rant des scores n\u00e9gatifs impossibles pour une \u00e9chelle strictement born\u00e9e \u00e0 z\u00e9ro).<\/p>\n<p>\u00c0 l&rsquo;inverse, l&rsquo;estimation de densit\u00e9 par noyau r\u00e9v\u00e8le toute sa pertinence lorsque les variables sous-jacentes rel\u00e8vent de continuums physiques ou latents th\u00e9oriques (temps de r\u00e9ponse mesur\u00e9s en millisecondes, concentrations biochimiques, scores factoriels composites standardis\u00e9s) et que l&rsquo;\u00e9chantillon pr\u00e9sente une taille interm\u00e9diaire \u00e0 large (<em>n<\/em> &gt; 100). Dans ce cadre, la courbe KDE filtre efficacement le bruit d&rsquo;\u00e9chantillonnage al\u00e9atoire haute fr\u00e9quence et met en exergue la g\u00e9om\u00e9trie fondamentale de la distribution, facilitant la comparaison imm\u00e9diate de la morphologie des diff\u00e9rentes variables marginales.<\/p>\n<h2>9. Param\u00e8tres avanc\u00e9s et ajustement fin via les arguments de Matplotlib<\/h2>\n<h3>9.1 Exploitation du dictionnaire density_kwds pour les courbes KDE<\/h3>\n<p>Tout comme <code>hist_kwds<\/code> gouverne le trac\u00e9 des histogrammes, la fonction <code>scatter_matrix<\/code> fournit le param\u00e8tre <code>density_kwds<\/code> sp\u00e9cifiquement allou\u00e9 au calibrage fin des courbes de densit\u00e9 par noyau lorsque l&rsquo;option <code>diagonal='kde'<\/code> est activ\u00e9e. Ce conteneur dictionnaire permet d&rsquo;ajuster l&rsquo;\u00e9paisseur du trait vectoriel, son trac\u00e9 g\u00e9om\u00e9trique (continu, tiret\u00e9, pointill\u00e9) ou sa coloration sp\u00e9cifique afin de rehausser la distinction graphique par rapport aux nuages de points adjacents.<\/p>\n<p>De plus, pour les analystes souhaitant enrichir le rendu de ces distributions continues, certains attributs graphiques compl\u00e9mentaires peuvent \u00eatre inject\u00e9s pour moduler l&rsquo;aspect visuel de la courbe, garantissant ainsi une conformit\u00e9 stylistique absolue avec les exigences des maquettes de revues savantes.<\/p>\n<p>Le script suivant illustre l&rsquo;ajustement synchronis\u00e9 des param\u00e8tres de dispersion bivari\u00e9e et des options de mod\u00e9lisation continue univari\u00e9e :<\/p>\n<p><code># Configuration du dictionnaire d'options pour l'estimation de densit\u00e9<\/code><br \/>\n<code>parametres_kde = {<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;'color': '#c0392b',<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;'linewidth': 2.2,<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;'linestyle': '-'<\/code><br \/>\n<code>}<\/code><\/p>\n<p><code># G\u00e9n\u00e9ration de la scatter matrix avec configuration univari\u00e9e avanc\u00e9e<\/code><br \/>\n<code>pd.plotting.scatter_matrix(<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;df,<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;figsize=(10, 10),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;diagonal='kde',<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;density_kwds=parametres_kde,<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;color='#2c3e50',<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;alpha=0.5<\/code><br \/>\n<code>)<\/code><br \/>\n<code>plt.show()<\/code><\/p>\n<h3>9.2 Int\u00e9gration d&rsquo;\u00e9l\u00e9ments graphiques compl\u00e9mentaires<\/h3>\n<p>Une caract\u00e9ristique architecturale essentielle de la fonction <code>pd.plotting.scatter_matrix<\/code> r\u00e9side dans le fait qu&rsquo;elle retourne explicitement un tableau NumPy bidimensionnel d&rsquo;objets d&rsquo;axes Matplotlib (<code>numpy.ndarray<\/code> contenant des instances de <code>matplotlib.axes.Axes<\/code>). Cette interface de programmation offre une flexibilit\u00e9 totale : l&rsquo;analyste peut capturer cet objet au moment de l&rsquo;appel pour it\u00e9rer programmatiquement sur chaque cellule individuelle de la matrice et lui appliquer des modifications graphiques sur mesure.<\/p>\n<p>Cette approche d&rsquo;instrumentation fine autorise l&rsquo;int\u00e9gration de rep\u00e8res diagnostiques compl\u00e9mentaires non pr\u00e9vus nativement par Pandas. Par exemple, il est ais\u00e9 d&rsquo;ajouter des lignes de r\u00e9f\u00e9rence orthogonales mat\u00e9rialisant les moyennes empiriques (lignes horizontales et verticales au centre des distributions bivari\u00e9es), d&rsquo;ins\u00e9rer des segments diagonaux d&rsquo;identit\u00e9 (<em>x = y<\/em>) pour v\u00e9rifier des hypoth\u00e8ses de sym\u00e9trie, ou encore de superposer une droite de tendance issue d&rsquo;une r\u00e9gression lin\u00e9aire empirique au moyen de la m\u00e9thode <code>ax.plot()<\/code>.<\/p>\n<p>L&rsquo;impl\u00e9mentation suivante d\u00e9montre comment capturer le tableau d&rsquo;axes g\u00e9n\u00e9r\u00e9 et tracer une ligne de r\u00e9f\u00e9rence horizontale et verticale pointill\u00e9e correspondant aux moyennes respectives de chaque couple de variables sur l&rsquo;ensemble des cellules hors diagonale :<\/p>\n<p><code># Capture du tableau d'axes lors de la g\u00e9n\u00e9ration de la matrice<\/code><br \/>\n<code>axes_matrix = pd.plotting.scatter_matrix(df, figsize=(10, 10), alpha=0.4)<\/code><\/p>\n<p><code># Calcul des moyennes empiriques marginales pour chaque colonne<\/code><br \/>\n<code>moyennes = df.mean()<\/code><\/p>\n<p><code># Parcours it\u00e9ratif de l'ensemble des cellules de la grille<\/code><br \/>\n<code>p = len(df.columns)<\/code><br \/>\n<code>for i in range(p):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;for j in range(p):<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ax = axes_matrix[i, j]<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if i != j:<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Ajout de lignes de r\u00e9f\u00e9rence passant par la moyenne<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ax.axvline(moyennes.iloc[j], color='#7f8c8d', linestyle=':', linewidth=0.8)<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ax.axhline(moyennes.iloc[i], color='#7f8c8d', linestyle=':', linewidth=0.8)<\/code><\/p>\n<p><code>plt.show()<\/code><\/p>\n<h3>9.3 Exportation haute r\u00e9solution pour manuscrits scientifiques<\/h3>\n<p>La production d&rsquo;une figure multidimensionnelle de grande qualit\u00e9 ne s&rsquo;arr\u00eate pas \u00e0 son affichage dynamique \u00e0 l&rsquo;\u00e9cran : elle doit pouvoir \u00eatre export\u00e9e vers le syst\u00e8me de fichiers dans des formats graphiques pr\u00e9servant son int\u00e9grit\u00e9 visuelle lors des processus d&rsquo;\u00e9dition savante. Les \u00e9diteurs acad\u00e9miques imposent syst\u00e9matiquement des standards rigoureux en mati\u00e8re de r\u00e9solution, exigeant g\u00e9n\u00e9ralement une nettet\u00e9 minimale de 300 \u00e0 600 points par pouce (DPI, <em>dots per inch<\/em>) pour les figures matricielles.<\/p>\n<p>L&rsquo;enregistrement d&rsquo;une scatter matrix s&rsquo;op\u00e8re via la fonction globale <code>plt.savefig()<\/code> de Matplotlib, invoqu\u00e9e imp\u00e9rativement avant l&rsquo;appel d&rsquo;affichage final <code>plt.show()<\/code> (qui r\u00e9initialise le canevas en m\u00e9moire). L&rsquo;analyste doit choisir judicieusement entre formats vectoriels purs (tels que le PDF ou le SVG, garantissant un agrandissement infini sans pixelisation et pr\u00e9servant les textes comme des entit\u00e9s vectorielles \u00e9ditables) et formats matriciels compress\u00e9s sans perte (tels que le PNG \u00e0 haut DPI).<\/p>\n<p>L&rsquo;exemple ci-dessous met en lumi\u00e8re la syntaxe d&rsquo;exportation recommand\u00e9e, en incluant l&rsquo;argument <code>bbox_inches='tight'<\/code> qui assure le rognage automatique des marges blanches inutiles et emp\u00eache que les \u00e9tiquettes textuelles situ\u00e9es en bordure de grille ne soient tronqu\u00e9es lors de l&rsquo;encapsulation du fichier :<\/p>\n<p><code># Construction et exportation scientifique haute d\u00e9finition<\/code><br \/>\n<code>pd.plotting.scatter_matrix(df, figsize=(11, 11), alpha=0.5, diagonal='kde')<\/code><\/p>\n<p><code># Exportation au format matriciel haute r\u00e9solution (300 DPI)<\/code><br \/>\n<code>plt.savefig('matrice_dispersion_publication.png', dpi=300, bbox_inches='tight')<\/code><\/p>\n<p><code># Exportation conjointe au format vectoriel pour \u00e9dition typographique<\/code><br \/>\n<code>plt.savefig('matrice_dispersion_vectorielle.pdf', format='pdf', bbox_inches='tight')<\/code><\/p>\n<p><code>plt.close()<\/code><\/p>\n<h2>10. Interpr\u00e9tation statistique et psychom\u00e9trique des visualisations multivari\u00e9es<\/h2>\n<h3>10.1 D\u00e9tection des formes de distribution et des regroupements latents<\/h3>\n<p>L&rsquo;exploitation analytique de la matrice de dispersion d\u00e9passe la simple contemplation esth\u00e9tique pour s&rsquo;\u00e9riger en instrument s\u00e9miotique de diagnostic statistique. L&rsquo;inspection m\u00e9ticuleuse de la diagonale principale permet d&rsquo;\u00e9valuer imm\u00e9diatement la normalit\u00e9 univari\u00e9e de chaque variable. La pr\u00e9sence d&rsquo;un aplatissement marqu\u00e9 (kurtosis n\u00e9gatif) ou d&rsquo;une distribution pointue et leptokurtique avertit le statisticien d&rsquo;\u00e9ventuels risques d&rsquo;instabilit\u00e9 des tests param\u00e9triques standards (tels que l&rsquo;analyse de variance ou les tests <em>t<\/em> de Student).<\/p>\n<p>De surcro\u00eet, la d\u00e9tection d&rsquo;une bimodalit\u00e9 ou d&rsquo;une multimodalit\u00e9 sur la diagonale constitue une information substantielle majeure. Une telle morphologie trahit fr\u00e9quemment l&rsquo;existence de sous-populations h\u00e9t\u00e9rog\u00e8nes non identifi\u00e9es au sein de l&rsquo;\u00e9chantillon global (par exemple, des sous-groupes cliniques distincts, des diff\u00e9rences li\u00e9es au sexe biologique ou des variations de protocoles exp\u00e9rimentaux). Cette bimodalit\u00e9 univari\u00e9e se prolonge visuellement dans les cellules hors diagonale sous forme d&rsquo;amas ou d&rsquo;\u00eelots de dispersion nettement disjoints (<em>clustering<\/em> naturel).<\/p>\n<p>Dans les sciences comportementales, l&rsquo;identification pr\u00e9coce de ces regroupements latents \u00e9vite l&rsquo;\u00e9cueil classique d&rsquo;une interpr\u00e9tation monolithique des r\u00e9sultats. L&rsquo;exp\u00e9rimentateur est imm\u00e9diatement invit\u00e9 \u00e0 introduire une variable cat\u00e9gorielle de stratification afin de partitionner les analyses et de pr\u00e9venir les paradoxes statistiques d&rsquo;agr\u00e9gation, tels que le paradoxe de Simpson.<\/p>\n<h3>10.2 Diagnostic visuel de la colin\u00e9arit\u00e9 et de l&rsquo;h\u00e9t\u00e9rosc\u00e9dasticit\u00e9<\/h3>\n<p>L&rsquo;un des apports majeurs de la matrice de dispersion lors de la phase pr\u00e9paratoire d&rsquo;une r\u00e9gression multiple r\u00e9side dans sa capacit\u00e9 \u00e0 r\u00e9v\u00e9ler simultan\u00e9ment la multicolin\u00e9arit\u00e9 et l&rsquo;h\u00e9t\u00e9rosc\u00e9dasticit\u00e9 entre pr\u00e9dicteurs. La colin\u00e9arit\u00e9 entre deux variables se signale graphiquement par la compression extr\u00eame du nuage de points le long d&rsquo;une droite ou d&rsquo;une ellipse \u00e9troite. Plus le grand axe de l&rsquo;ellipse est allong\u00e9 et son petit axe aminci, plus la d\u00e9pendance lin\u00e9aire est critique, sugg\u00e9rant qu&rsquo;une variable n&rsquo;apporte que peu d&rsquo;information incr\u00e9mentielle par rapport \u00e0 sa conjointe.<\/p>\n<p>L&rsquo;<a rel=\"noopener noreferrer\" href=\"https:\/\/en.wikipedia.org\/wiki\/Heteroscedasticity\">h\u00e9t\u00e9rosc\u00e9dasticit\u00e9<\/a> \u2014 c&rsquo;est-\u00e0-dire la non-constance de la variance conditionnelle d&rsquo;une variable le long de l&rsquo;axe de son corr\u00e9lateur \u2014 se manifeste visuellement par des morphologies de dispersion en forme d&rsquo;entonnoir, de pavillon de trompette ou d&rsquo;\u00e9ventail. Par exemple, si la variabilit\u00e9 des performances aux tests de m\u00e9moire (axe <em>Y<\/em>) s&rsquo;accro\u00eet consid\u00e9rablement \u00e0 mesure que le niveau d&rsquo;anxi\u00e9t\u00e9 (axe <em>X<\/em>) augmente, le nuage de points s&rsquo;ouvrira progressivement de gauche \u00e0 droite.<\/p>\n<p>Ce diagnostic graphique avertit instantan\u00e9ment le mod\u00e9lisateur que l&rsquo;hypoth\u00e8se fondamentale d&rsquo;homosc\u00e9dasticit\u00e9 des r\u00e9sidus n\u00e9cessaires aux moindres carr\u00e9s ordinaires (MCO) sera vraisemblablement viol\u00e9e. Cette observation motive l&#8217;emploi de techniques d&rsquo;inf\u00e9rence robustes, telles que l&rsquo;utilisation d&rsquo;estimateurs de covariance coh\u00e9rents avec l&rsquo;h\u00e9t\u00e9rosc\u00e9dasticit\u00e9 (estimateurs de White ou de Huber-White) ou le recours \u00e0 des mod\u00e8les lin\u00e9aires g\u00e9n\u00e9ralis\u00e9s (GLM).<\/p>\n<h3>10.3 Identification et traitement des points d&rsquo;influence<\/h3>\n<p>La scatter matrix offre une vision in\u00e9gal\u00e9e pour diff\u00e9rencier avec pr\u00e9cision deux types d&rsquo;anomalies observationnelles souvent confondues dans les diagnostics sommaires : les valeurs aberrantes purement univari\u00e9es et les points aberrants bivari\u00e9s ou multivari\u00e9s. Une valeur aberrante univari\u00e9e se rep\u00e8re sans ambigu\u00eft\u00e9 par son isolement extr\u00eame sur la marge d&rsquo;une distribution diagonale, se situant bien au-del\u00e0 de l&rsquo;enveloppe g\u00e9n\u00e9rale de la courbe de densit\u00e9 ou de l&rsquo;histogramme.<\/p>\n<p>\u00c0 l&rsquo;inverse, une anomalie bivari\u00e9e peut fort bien afficher des coordonn\u00e9es parfaitement conformes aux marges univari\u00e9es de chaque axe pris isol\u00e9ment, mais se trouver totalement d\u00e9synchronis\u00e9e de la loi de covariance conjointe. Dans une cellule hors diagonale, un tel point appara\u00eetra isol\u00e9, loin de la trajectoire elliptique principale du nuage d&rsquo;observations. Dans un mod\u00e8le de r\u00e9gression, ce point d&rsquo;observation isol\u00e9e est susceptible d&rsquo;exercer un effet de levier consid\u00e9rable (<em>high leverage point<\/em>), faisant basculer la droite de r\u00e9gression et faussant dramatiquement l&rsquo;estimation des coefficients de pente.<\/p>\n<p>L&rsquo;inspection visuelle de la matrice de dispersion permet d&rsquo;identifier formellement les indices de ces observations influentes, incitant le chercheur \u00e0 proc\u00e9der \u00e0 un examen qualitatif de leur gen\u00e8se (erreur d&rsquo;encodage mat\u00e9riel, perturbation du protocole d&rsquo;acquisition) avant de d\u00e9cider m\u00e9thodologiquement de leur exclusion, d&rsquo;une troncature statistique (winsorisation) ou de l&rsquo;application de m\u00e9thodes de r\u00e9gression robuste fond\u00e9es sur les <em>M<\/em>-estimateurs.<\/p>\n<h2>11. Pi\u00e8ges m\u00e9thodologiques, limites computationnelles et r\u00e9solution des anomalies<\/h2>\n<h3>11.1 Gestion de la surcharge graphique par sur-tra\u00e7age (Overplotting)<\/h3>\n<p>Lorsque la taille de l&rsquo;\u00e9chantillon analys\u00e9 atteint des ordres de grandeur massifs (<em>n<\/em> sup\u00e9rieur \u00e0 plusieurs milliers ou dizaines de milliers d&rsquo;individus), la matrice de dispersion se heurte \u00e0 une limitation graphique majeure d\u00e9sign\u00e9e sous le terme de sur-tra\u00e7age (<em>overplotting<\/em>). Les milliers de marqueurs cart\u00e9siens se superposent massivement les uns aux autres au centre des sous-graphiques, cr\u00e9ant des aplats de couleur opaques et uniformes au sein desquels il devient strictement impossible de percevoir les variations locales de densit\u00e9 ou la structure interne du nuage.<\/p>\n<p>Pour att\u00e9nuer ce ph\u00e9nom\u00e8ne d\u00e9l\u00e9t\u00e8re sans abandonner l&rsquo;usage de la scatter matrix, plusieurs ajustements strat\u00e9giques doivent \u00eatre d\u00e9ploy\u00e9s simultan\u00e9ment. Le premier consiste \u00e0 r\u00e9duire de mani\u00e8re drastique la dimension g\u00e9om\u00e9trique des marqueurs (par exemple en assignant un symbole de pixel minimal via l&rsquo;argument <code>marker=','<\/code> ou en r\u00e9duisant la taille des points) conjugu\u00e9e \u00e0 une diminution agressive du coefficient d&rsquo;opacit\u00e9 (<code>alpha=0.05<\/code> ou <code>alpha=0.01<\/code>).<\/p>\n<p>Si la saturation demeure trop prononc\u00e9e, une strat\u00e9gie alternative robuste r\u00e9side dans l&rsquo;application d&rsquo;un sous-\u00e9chantillonnage al\u00e9atoire pr\u00e9liminaire rigoureusement contr\u00f4l\u00e9 (<em>random subsampling<\/em>) via la m\u00e9thode <code>df.sample()<\/code> de Pandas. En extrayant al\u00e9atoirement une fraction repr\u00e9sentative de 5 \u00e0 10 % des donn\u00e9es globales, on pr\u00e9serve fid\u00e8lement les propri\u00e9t\u00e9s probabilistes de la population tout en restituant la lisibilit\u00e9 graphique de l&rsquo;espace multivari\u00e9.<\/p>\n<h3>11.2 Consid\u00e9rations algorithmiques et performances m\u00e9moire<\/h3>\n<p>L&rsquo;architecture algorithmique sous-jacente \u00e0 la fonction <code>scatter_matrix<\/code> repose sur une instanciation syst\u00e9matique d&rsquo;objets graphiques r\u00e9gie par une complexit\u00e9 quadratique d&rsquo;ordre <em>O(p\u00b2)<\/em>, o\u00f9 <em>p<\/em> repr\u00e9sente le nombre total de variables num\u00e9riques transmises. Pour une s\u00e9lection de 20 variables, le sous-syst\u00e8me de trac\u00e9 doit instancier, configurer et restituer exactement 400 syst\u00e8mes d&rsquo;axes interconnect\u00e9s, chacun devant rendre <em>n<\/em> points ou calculer des convolutions de noyaux num\u00e9riques.<\/p>\n<p>Cette charge computationnelle engendre une explosion de la consommation de m\u00e9moire vive (RAM) et des temps de calcul CPU consid\u00e9rables, pouvant aboutir \u00e0 des blocages purs et simples de l&rsquo;interpr\u00e9teur Python ou \u00e0 des plantages de noyau dans les notebooks Jupyter. Il est donc fondamental de ne jamais appliquer brutalement <code>pd.plotting.scatter_matrix<\/code> sur un DataFrame sans avoir pr\u00e9alablement v\u00e9rifi\u00e9 le nombre effectif de colonnes num\u00e9riques au moyen de l&rsquo;instruction <code>df.select_dtypes(include=[np.number]).shape[1]<\/code>.<\/p>\n<p>Pour optimiser les performances avant le trac\u00e9 graphique, il convient de s&rsquo;assurer que les colonnes num\u00e9riques ne subissent pas de duplications m\u00e9moire inutiles et, le cas \u00e9ch\u00e9ant, de convertir les types flottants 64 bits standards en flottants 32 bits (<code>float32<\/code>) lorsque la pr\u00e9cision le permet, all\u00e9geant significativement l&#8217;empreinte m\u00e9moire vectorielle exploit\u00e9e par les biblioth\u00e8ques d&rsquo;arri\u00e8re-plan.<\/p>\n<h3>11.3 Divergence entre variables qualitatives et m\u00e9triques continues<\/h3>\n<p>Un \u00e9cueil m\u00e9thodologique fr\u00e9quent rencontr\u00e9 lors de l&rsquo;analyse exploratoire r\u00e9side dans l&rsquo;inclusion involontaire de variables cat\u00e9goriques discr\u00e8tes pr\u00e9alablement encod\u00e9es sous forme d&rsquo;entiers num\u00e9riques (comme des codes d&rsquo;appartenance \u00e0 un groupe not\u00e9s 0, 1, 2 ou des \u00e9chelles de type Likert ordinales tr\u00e8s resserr\u00e9es) au sein de la matrice de dispersion. Cette situation produit des motifs bivari\u00e9s caract\u00e9ristiques constitu\u00e9s de bandes de points parall\u00e8les rectilignes parfaitement rigides.<\/p>\n<p>Ces alignements stri\u00e9s constituent une distorsion repr\u00e9sentationnelle qui masque la v\u00e9ritable densit\u00e9 empirique des observations : des centaines de points identiques se retrouvent empil\u00e9s exactement sur les m\u00eames coordonn\u00e9es discr\u00e8tes. D&rsquo;un point de vue statistique, ces projections peuvent conduire l&rsquo;analyste \u00e0 des interpr\u00e9tations erron\u00e9es concernant l&rsquo;existence de suppos\u00e9es corr\u00e9lations ou d&rsquo;effets de seuil qui ne r\u00e9sultent en r\u00e9alit\u00e9 que de la nature discr\u00e8te de l&rsquo;\u00e9chelle d&rsquo;\u00e9valuation.<\/p>\n<p>La r\u00e8gle m\u00e9thodologique fondamentale exige donc d&rsquo;exclure formellement les facteurs nominaux et ordinaux purs de la scatter matrix continue. Si l&rsquo;inclusion d&rsquo;une \u00e9chelle ordinale s&rsquo;av\u00e8re n\u00e9anmoins in\u00e9vitable, il est imp\u00e9ratif d&rsquo;appliquer une technique de micro-dispersion al\u00e9atoire artificielle d\u00e9sign\u00e9e sous le terme de <em>jittering<\/em>. Cette m\u00e9thode consiste \u00e0 additionner \u00e0 chaque modalit\u00e9 un bruit blanc gaussien infinit\u00e9simal centr\u00e9 sur z\u00e9ro afin d&rsquo;\u00e9clater l&rsquo;agr\u00e9gat ponctuel et de mat\u00e9rialiser visuellement le volume r\u00e9el de r\u00e9pondants sur chaque palier de l&rsquo;\u00e9chelle.<\/p>\n<h2>12. Synth\u00e8se comparative et int\u00e9gration dans un flux d&rsquo;analyse de donn\u00e9es<\/h2>\n<h3>12.1 Comparaison entre scatter_matrix de Pandas et pairplot de Seaborn<\/h3>\n<p>Au sein de l&rsquo;\u00e9cosyst\u00e8me analytique Python, la fonction <code>pd.plotting.scatter_matrix<\/code> entre en concurrence directe avec une fonction hautement populaire propos\u00e9e par la biblioth\u00e8que de haut niveau <a rel=\"noopener noreferrer\" href=\"https:\/\/seaborn.pydata.org\/\">Seaborn<\/a> : <code>seaborn.pairplot<\/code>. Bien que ces deux outils poursuivent le m\u00eame objectif g\u00e9n\u00e9ral de restitution visuelle matricielle par paires, ils pr\u00e9sentent des compromis techniques et fonctionnels distincts qu&rsquo;il importe de clarifier.<\/p>\n<p>La fonction <code>scatter_matrix<\/code> de Pandas se distingue par sa l\u00e9g\u00e8ret\u00e9 computationnelle, son absence totale de d\u00e9pendances logicielles additionnelles en dehors des fondations Matplotlib, et sa parfaite int\u00e9gration native avec les structures de donn\u00e9es DataFrame. Son ex\u00e9cution est g\u00e9n\u00e9ralement plus rapide et sa syntaxe plus pr\u00e9visible lorsqu&rsquo;on cherche \u00e0 obtenir un diagnostic exploratoire rapide sans surcharge protocolaire.<\/p>\n<p>En revanche, <code>seaborn.pairplot<\/code> offre des raffinements fonctionnels particuli\u00e8rement avanc\u00e9s, au premier rang desquels figure le param\u00e8tre <code>hue<\/code>. Ce dernier permet de stratifier instantan\u00e9ment l&rsquo;int\u00e9gralit\u00e9 de la matrice selon une variable cat\u00e9gorielle (telle que le groupe exp\u00e9rimental ou le diagnostic clinique) en attribuant des codes couleurs diff\u00e9rentiels aux points et en superposant des estimations de densit\u00e9 distinctes sur la diagonale principale. Seaborn propose \u00e9galement un param\u00e8tre <code>corner=True<\/code> permettant d&rsquo;omettre le triangle sup\u00e9rieur de la matrice pour \u00e9liminer la redondance sym\u00e9trique des cellules hors diagonale. Le choix entre ces deux instruments s&rsquo;op\u00e8re donc selon un arbitrage entre v\u00e9locit\u00e9 d&rsquo;exploration directe (faveur \u00e0 Pandas) et sophistication de stratification multivari\u00e9e (faveur \u00e0 Seaborn).<\/p>\n<h3>12.2 Positionnement au sein du pipeline d&rsquo;analyse quantitative<\/h3>\n<p>Dans la conduite m\u00e9thodique d&rsquo;un projet de recherche quantitative ou de science des donn\u00e9es appliqu\u00e9e, la matrice de dispersion ne doit jamais constituer un acte isol\u00e9 d&rsquo;illustration finale, mais doit s&rsquo;ancrer de mani\u00e8re organique au c\u0153ur d&rsquo;un pipeline d&rsquo;analyse reproductible s\u00e9quentiel. Elle intervient pr\u00e9cis\u00e9ment \u00e0 la jonction entre la phase de nettoyage et d&rsquo;ing\u00e9nierie des donn\u00e9es tabulaires et la phase de mod\u00e9lisation statistique inf\u00e9rentielle ou pr\u00e9dictive.<\/p>\n<p>En amont, la scatter matrix valide le succ\u00e8s des op\u00e9rations d&rsquo;imputation des valeurs manquantes, confirme l&rsquo;absence de valeurs hors normes non corrig\u00e9es et atteste de l&rsquo;efficacit\u00e9 des transformations distributionnelles (stabilisation de la variance par transformation logarithmique). En aval, elle informe directement le mod\u00e9lisateur sur l&rsquo;ad\u00e9quation des hypoth\u00e8ses requises par les algorithmes statistiques envisag\u00e9s, dictant le choix entre estimateurs param\u00e9triques ou non param\u00e9triques, signalant les risques de multicolin\u00e9arit\u00e9 avant une r\u00e9gression et orientant la composition factorielle d&rsquo;un mod\u00e8le structurel.<\/p>\n<p>Enfin, dans le cadre de la science ouverte et de la tra\u00e7abilit\u00e9 de la recherche, l&rsquo;archivage des scripts de g\u00e9n\u00e9ration de matrices de dispersion hautement personnalis\u00e9es \u2014 documentant explicitement les graines al\u00e9atoires, les param\u00e8tres de bandes passantes et les versions de biblioth\u00e8ques utilis\u00e9es \u2014 assure que tout chercheur tiers sera en mesure de reproduire fid\u00e8lement l&rsquo;\u00e9valuation diagnostique visuelle initiale, scellant ainsi les principes de robustesse et de transparence inh\u00e9rents \u00e0 la d\u00e9marche scientifique moderne.<\/p>\n<h2>R\u00e9f\u00e9rences<\/h2>\n<ul>\n<li>Box, G. E. P., &amp; Cox, D. R. (1964). An analysis of transformations. <em>Journal of the Royal Statistical Society: Series B (Methodological)<\/em>, 26(2), 211\u2013243. <a rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1111\/j.2517-6161.1964.tb00553.x\">https:\/\/doi.org\/10.1111\/j.2517-6161.1964.tb00553.x<\/a><\/li>\n<li>Cleveland, W. S. (1993). <em>Visualizing data<\/em>. Hobart Press.<\/li>\n<li>Hunter, J. D. (2007). Matplotlib: A 2D graphics environment. <em>Computing in Science &amp; Engineering<\/em>, 9(3), 90\u201395. <a rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1109\/MCSE.2007.55\">https:\/\/doi.org\/10.1109\/MCSE.2007.55<\/a><\/li>\n<li>McKinney, W. (2010). Data structures for statistical computing in Python. In <em>Proceedings of the 9th Python in Science Conference<\/em> (pp. 56\u201361). <a rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.25080\/Majora-92bf1924-00a\">https:\/\/doi.org\/10.25080\/Majora-92bf1924-00a<\/a><\/li>\n<li>Silverman, B. W. (1986). <em>Density estimation for statistics and data analysis<\/em>. Chapman &amp; Hall\/CRC. <a rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1201\/9781315140919\">https:\/\/doi.org\/10.1201\/9781315140919<\/a><\/li>\n<li>Tukey, J. W. (1977). <em>Exploratory data analysis<\/em>. Addison-Wesley.<\/li>\n<li>Waskom, M. L. (2021). Seaborn: Statistical data visualization. <em>Journal of Open Source Software<\/em>, 6(60), 3021. <a rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.21105\/joss.03021\">https:\/\/doi.org\/10.21105\/joss.03021<\/a><\/li>\n<li>Wickham, H. (2010). A layered grammar of graphics. <em>Journal of Computational and Graphical Statistics<\/em>, 19(1), 3\u201328. <a rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1198\/jcgs.2009.07098\">https:\/\/doi.org\/10.1198\/jcgs.2009.07098<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Guide acad\u00e9mique complet pour cr\u00e9er et interpr\u00e9ter une matrice de dispersion avec Pandas, illustr\u00e9 d&rsquo;exemples de code d\u00e9taill\u00e9s.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","categories":[2465,2464],"tags":[3791,2466,2468,5437,2041],"class_list":["post-3392","psych_stat","type-psych_stat","status-publish","hentry","category-programmation-python","category-science-des-donnees","tag-analyse-multivariee","tag-pandas","tag-python","tag-scatter-matrix","tag-visualisation-de-donnees"],"_links":{"self":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat\/3392","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=3392"}],"version-history":[{"count":1,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat\/3392\/revisions"}],"predecessor-version":[{"id":16488,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat\/3392\/revisions\/16488"}],"wp:attachment":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3392"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3392"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3392"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}