{"id":3837,"date":"2026-10-14T18:01:09","date_gmt":"2026-10-14T18:01:09","guid":{"rendered":"http:\/\/french.arabpsychology.com\/statistics\/how-to-create-a-scatterplot-with-a-regression-line-in-python\/"},"modified":"2026-10-14T18:01:09","modified_gmt":"2026-10-14T18:01:09","slug":"how-to-create-a-scatterplot-with-a-regression-line-in-python","status":"publish","type":"psych_stat","link":"https:\/\/french.arabpsychology.com\/?psych_stat=how-to-create-a-scatterplot-with-a-regression-line-in-python","title":{"rendered":"How to Create a Scatterplot with a Regression Line in Python"},"content":{"rendered":"<p>L&rsquo;analyse empirique contemporaine repose fondamentalement sur la capacit\u00e9 du chercheur et du praticien des donn\u00e9es \u00e0 synth\u00e9tiser visuellement des relations bivari\u00e9es complexes avant d&rsquo;en inf\u00e9rer des lois math\u00e9matiques. Dans le vaste r\u00e9pertoire de la s\u00e9miotique graphique, le nuage de points (scatterplot) combin\u00e9 \u00e0 une droite d&rsquo;ajustement constitue sans conteste l&rsquo;arch\u00e9type fondamental de l&rsquo;exploration statistique. Cette repr\u00e9sentation bivari\u00e9e offre un pont cognitif irrempla\u00e7able entre l&rsquo;observation brute de ph\u00e9nom\u00e8nes stochastiques et l&rsquo;abstraction formelle des mod\u00e8les lin\u00e9aires, mat\u00e9rialisant d&rsquo;un seul regard la dispersion des observations empiriques, la tendance centrale de leur trajectoire conjointe ainsi que la plausibilit\u00e9 des postulats probabilistes sous-jacents.<\/p>\n<p>Au sein de l&rsquo;environnement scientifique contemporain, le langage de programmation Python s&rsquo;est impos\u00e9 comme la lingua franca de l&rsquo;ing\u00e9nierie math\u00e9matique et du traitement analytique des donn\u00e9es. Gr\u00e2ce \u00e0 une architecture modulaire associant le calcul matriciel de haute performance \u00e0 des moteurs de rendu graphique d&rsquo;une flexibilit\u00e9 chirurgicale, Python permet non seulement d&rsquo;automatiser le tra\u00e7age g\u00e9om\u00e9trique, mais surtout de calibrer avec une rigueur statistique absolue chaque composante de la mod\u00e9lisation. Comprendre comment articuler harmonieusement un nuage de points avec une droite de r\u00e9gression dans cet \u00e9cosyst\u00e8me ne rel\u00e8ve pas d&rsquo;une simple habilet\u00e9 syntaxique ; il s&rsquo;agit d&rsquo;une comp\u00e9tence \u00e9pist\u00e9mologique centrale, conditionnant la validit\u00e9 des inf\u00e9rences d\u00e9duites de donn\u00e9es quantitatives en sciences sociales, biom\u00e9dicales ou technologiques.<\/p>\n<p>Ce guide exhaustif a pour vocation de d\u00e9construire m\u00e9thodiquement l&rsquo;ensemble des protocoles th\u00e9oriques, computationnels et esth\u00e9tiques n\u00e9cessaires \u00e0 l&rsquo;\u00e9laboration de graphiques bivari\u00e9s de niveau publication internationale. En parcourant les fondements de l&rsquo;optimisation par les moindres carr\u00e9s, l&rsquo;impl\u00e9mentation algorithmique \u00e9l\u00e9mentaire via NumPy et Matplotlib, l&rsquo;abstraction \u00e9l\u00e9gante offerte par Seaborn, ainsi que la quantification inf\u00e9rentielle rigoureuse procur\u00e9e par Statsmodels, nous dresserons un panorama int\u00e9gral des meilleures pratiques contemporaines. L&rsquo;objectif ultime consiste \u00e0 doter le lecteur d&rsquo;un cadre m\u00e9thodologique p\u00e9renne, garantissant une fid\u00e9lit\u00e9 s\u00e9miotique irr\u00e9prochable et une parfaite conformit\u00e9 aux standards acad\u00e9miques les plus exigeants.<\/p>\n<figure class=\"wpt-preserved-image\"><img fetchpriority=\"high\" decoding=\"async\" src=\"http:\/\/french.arabpsychology.com\/wp-content\/uploads\/2026\/09\/scatterRegressionPython1.png\" alt=\"Scatterplot with regression line in Python\" \/><figcaption>Scatterplot with regression line in Python<\/figcaption><\/figure>\n<h2>1. 1. Introduction \u00e0 la r\u00e9gression lin\u00e9aire et \u00e0 la visualisation bivari\u00e9e en Python<\/h2>\n<h3>1.1 R\u00f4le de la visualisation dans l&rsquo;analyse quantitative exploratoire<\/h3>\n<p>L&rsquo;analyse quantitative exploratoire (Exploratory Data Analysis, ou EDA), th\u00e9oris\u00e9e initialement par le statisticien John Tukey \u00e0 la fin des ann\u00e9es 1970, postule que la compr\u00e9hension intime d&rsquo;une structure de donn\u00e9es pr\u00e9c\u00e8de imp\u00e9rativement toute formalisation math\u00e9matique close. Dans ce cadre \u00e9pist\u00e9mologique, la visualisation graphique n&rsquo;est pas un simple artifice d&rsquo;illustration destin\u00e9 \u00e0 vulgariser des r\u00e9sultats pr\u00e9existants ; elle repr\u00e9sente un instrument d&rsquo;investigation cognitif \u00e0 part enti\u00e8re. Face \u00e0 une matrice de donn\u00e9es bivari\u00e9es, les descripteurs num\u00e9riques conventionnels &mdash; tels que la moyenne arithm\u00e9tique, la variance marginale et m\u00eame le coefficient de corr\u00e9lation lin\u00e9aire de Pearson &mdash; s&rsquo;av\u00e8rent structurellement insuffisants pour capturer la morphologie sous-jacente des distributions observ\u00e9es.<\/p>\n<p>L&rsquo;argument le plus saisissant en faveur de la primaut\u00e9 exploratoire demeure le c\u00e9l\u00e8bre quartet d&rsquo;Anscombe, con\u00e7u en 1973, o\u00f9 quatre ensembles de donn\u00e9es partagent des propri\u00e9t\u00e9s statistiques synth\u00e9tiques rigoureusement identiques (m\u00eames moyennes pour les variables explicative et expliqu\u00e9e, m\u00eames variances, m\u00eame \u00e9quation de r\u00e9gression et m\u00eame coefficient de d\u00e9termination) tout en affichant des structures g\u00e9om\u00e9triques diam\u00e9tralement h\u00e9t\u00e9rog\u00e8nes. Seul le trac\u00e9 du nuage de points coupl\u00e9 \u00e0 la trajectoire d&rsquo;ajustement permet de r\u00e9v\u00e9ler instantan\u00e9ment que le premier ensemble illustre une relation lin\u00e9aire pure, le second une courbure parabolique non lin\u00e9aire, le troisi\u00e8me une droite parfaite corrompue par un point aberrant isol\u00e9, et le quatri\u00e8me une absence totale de covariation coupl\u00e9e \u00e0 une valeur charni\u00e8re artificielle. L&rsquo;inspection visuelle pr\u00e9vient ainsi l&rsquo;analyste contre l&rsquo;application aveugle de calculs d&rsquo;inf\u00e9rence sur des distributions dont les postulats d&rsquo;application sont manifestement viol\u00e9s.<\/p>\n<p>Dans la pratique scientifique moderne, le d\u00e9ploiement d&rsquo;un graphique bivari\u00e9 permet en outre de guider le diagnostic pr\u00e9liminaire d&rsquo;h\u00e9t\u00e9rosc\u00e9dasticit\u00e9, d&rsquo;identifier la pr\u00e9sence de sous-populations masqu\u00e9es au sein de l&rsquo;\u00e9chantillon global et d&rsquo;appr\u00e9cier la pertinence des transformations d&rsquo;\u00e9chelle (telles que les passages au logarithme ou les normalisations par les racines carr\u00e9es). Ainsi, la visualisation bivari\u00e9e agit comme un filtre de validation empirique garantissant que le mod\u00e8le de r\u00e9gression lin\u00e9aire appliqu\u00e9 refl\u00e8te fid\u00e8lement la m\u00e9canique g\u00e9n\u00e9ratrice des donn\u00e9es r\u00e9elles, prot\u00e9geant le chercheur contre les biais de confirmation et les artefacts de mod\u00e9lisation math\u00e9matique h\u00e2tive.<\/p>\n<h3>1.2 Principes fondamentaux du nuage de points en psychom\u00e9trie et sciences empiriques<\/h3>\n<p>Le nuage de points constitue la concr\u00e9tisation graphique du produit cart\u00e9sien de deux variables al\u00e9atoires continues ou pseudo-continues. En psychom\u00e9trie, en \u00e9conom\u00e9trie et dans les sciences du comportement, son \u00e9laboration ob\u00e9it \u00e0 des conventions s\u00e9miotiques immuables destin\u00e9es \u00e0 minimiser la charge cognitive du lecteur tout en maximisant le transfert d&rsquo;information quantitative. Chaque observation individuelle de l&rsquo;\u00e9chantillon d&rsquo;\u00e9tude est projet\u00e9e au sein d&rsquo;un rep\u00e8re orthogonal \u00e0 deux dimensions sous la forme d&rsquo;un glyphe g\u00e9om\u00e9trique ponctuel dont les coordonn\u00e9es spatiales correspondent scrupuleusement aux mesures quantifi\u00e9es des variables analys\u00e9es.<\/p>\n<p>Par convention \u00e9pist\u00e9mologique, l&rsquo;axe des abscisses (l&rsquo;axe horizontal, usuellement not\u00e9 <em>X<\/em>) est r\u00e9serv\u00e9 \u00e0 la variable ind\u00e9pendante, explicative, pr\u00e9dictrice ou exog\u00e8ne. Ce choix directionnel traduit graphiquement l&rsquo;hypoth\u00e8se de causalit\u00e9 ou d&rsquo;ant\u00e9riorit\u00e9 temporelle postul\u00e9e par le chercheur : il mat\u00e9rialise le stimulus, l&rsquo;intervention exp\u00e9rimentale, le trait psychologique latent ou le facteur environnemental dont on cherche \u00e0 \u00e9valuer l&rsquo;impact. Corr\u00e9lativement, l&rsquo;axe des ordonn\u00e9es (l&rsquo;axe vertical, traditionnellement not\u00e9 <em>Y<\/em>) accueille la variable d\u00e9pendante, expliqu\u00e9e ou endog\u00e8ne, repr\u00e9sentant la r\u00e9ponse comportementale, le score de performance cognitive, le sympt\u00f4me clinique ou la grandeur \u00e9conomique cens\u00e9e varier cons\u00e9cutivement aux fluctuations de la variable pr\u00e9dictrice.<\/p>\n<p>La morphologie globale adopt\u00e9e par l&rsquo;agr\u00e9gation de ces points r\u00e9v\u00e8le la nature et l&rsquo;intensit\u00e9 de la d\u00e9pendance stochastique unissant les deux dimensions d&rsquo;analyse. Une dispersion circonscrite le long d&rsquo;une bande diagonale ascendante signale une corr\u00e9lation empirique positive robuste, traduisant une covariation conjointe des grandeurs, tandis qu&rsquo;une orientation descendante manifeste une relation antagoniste. Inversement, une configuration circulaire amorphe ou diffuse d\u00e9nonce une ind\u00e9pendance statistique marginale. En psychom\u00e9trie, o\u00f9 la fid\u00e9lit\u00e9 des instruments de mesure est constamment mise \u00e0 l&rsquo;\u00e9preuve des erreurs d&rsquo;\u00e9chantillonnage et des fluctuations psychologiques non syst\u00e9matiques, le nuage de points permet d&rsquo;appr\u00e9cier imm\u00e9diatement la consistance interne des \u00e9chelles de mesure, la validit\u00e9 convergente entre construits th\u00e9oriques et la pr\u00e9sence \u00e9ventuelle de plafonnements ou d&rsquo;effets de plancher susceptibles de biaiser les estimations param\u00e9triques.<\/p>\n<h3>1.3 Vue d&rsquo;ensemble de l&rsquo;\u00e9cosyst\u00e8me Python pour la science des donn\u00e9es<\/h3>\n<p>L&rsquo;h\u00e9g\u00e9monie contemporaine de Python dans le champ de la statistique computationnelle et de l&rsquo;apprentissage automatique d\u00e9coule de la coh\u00e9sion organique d&rsquo;un ensemble de biblioth\u00e8ques tierces hautement optimis\u00e9es, regroup\u00e9es sous la banni\u00e8re informelle de la suite SciPy. Au c\u0153ur de cette architecture se trouve <a rel=\"noopener noreferrer\" href=\"https:\/\/numpy.org\">NumPy<\/a> (Numerical Python), qui dote le langage d&rsquo;une structure de donn\u00e9es matricielle multidimensionnelle contigu\u00eb en m\u00e9moire (l&rsquo;objet <em>ndarray<\/em>) \u00e9crite en langage C. Cette abstraction vectoris\u00e9e permet d&rsquo;ex\u00e9cuter des calculs d&rsquo;alg\u00e8bre lin\u00e9aire complexes avec une efficacit\u00e9 temporelle sans commune mesure avec les structures it\u00e9ratives natives de Python, fournissant ainsi la base arithm\u00e9tique indispensable \u00e0 l&rsquo;ajustement polynomial et \u00e0 la r\u00e9solution des syst\u00e8mes d&rsquo;\u00e9quations normales.<\/p>\n<p>Au-dessus de cette couche d&rsquo;abstraction purement num\u00e9rique se greffe <a rel=\"noopener noreferrer\" href=\"https:\/\/pandas.pydata.org\">Pandas<\/a>, un cadriciel d\u00e9di\u00e9 \u00e0 la manipulation et \u00e0 l&rsquo;ingestion de donn\u00e9es structur\u00e9es. En introduisant la notion de <em>DataFrame<\/em>, Pandas permet aux chercheurs d&rsquo;indexer, d&rsquo;aligner, de nettoyer et de requ\u00eater des jeux de donn\u00e9es h\u00e9t\u00e9rog\u00e8nes m\u00ealant variables quantitatives continues et m\u00e9tadonn\u00e9es qualitatives cat\u00e9gorielles. C&rsquo;est \u00e0 partir de ces structures tabulaires que les modules graphiques extraient les vecteurs de coordonn\u00e9es destin\u00e9s aux moteurs de rendu. Le socle universel de la visualisation scientifique en Python est incarn\u00e9 par <a rel=\"noopener noreferrer\" href=\"https:\/\/matplotlib.org\">Matplotlib<\/a>, cr\u00e9\u00e9 originellement par John D. Hunter pour \u00e9muler les capacit\u00e9s d&rsquo;affichage de MATLAB. Matplotlib offre un contr\u00f4le atomique et programmatique sur la totalit\u00e9 des \u00e9l\u00e9ments de l&rsquo;espace graphique (axes, graduations, limites, s\u00e9lecteurs d&rsquo;\u00e9chelle, annotations textuelles et moteurs typographiques).<\/p>\n<p>Pour affranchir l&rsquo;utilisateur de la verbosit\u00e9 parfois pesante de Matplotlib tout en int\u00e9grant nativement la formalisation des mod\u00e8les statistiques, la biblioth\u00e8que <a rel=\"noopener noreferrer\" href=\"https:\/\/seaborn.pydata.org\">Seaborn<\/a> op\u00e8re comme une surcouche de haut niveau. Elle encapsule les proc\u00e9dures d&rsquo;\u00e9chantillonnage, le calcul automatis\u00e9 des intervalles de confiance par r\u00e9\u00e9chantillonnage (bootstrapping) et le mappage colorim\u00e9trique selon les principes contemporains de la perception humaine. Enfin, <a rel=\"noopener noreferrer\" href=\"https:\/\/www.statsmodels.org\">Statsmodels<\/a> compl\u00e8te cet ensemble en apportant la rigueur inf\u00e9rentielle traditionnellement associ\u00e9e au langage R : il fournit des r\u00e9sum\u00e9s statistiques exhaustifs, incluant tests d&rsquo;hypoth\u00e8ses, valeurs de probabilit\u00e9 critique (valeurs p), erreurs-types robustes et crit\u00e8res d&rsquo;information. Cet \u00e9cosyst\u00e8me polyvalent et coh\u00e9rent permet au data scientist de naviguer sans discontinuit\u00e9 logique depuis la donn\u00e9e brute jusqu&rsquo;\u00e0 la publication acad\u00e9mique de haut niveau.<\/p>\n<h2>2. Fondements math\u00e9matiques et statistiques de la droite d&rsquo;ajustement<\/h2>\n<h3>2.1 La m\u00e9thode des moindres carr\u00e9s ordinaires (MCO)<\/h3>\n<p>L&rsquo;estimation d&rsquo;une droite de r\u00e9gression repose conceptuellement sur la minimisation formelle d&rsquo;une fonction de perte g\u00e9om\u00e9trique quantifiant l&rsquo;\u00e9cart entre le mod\u00e8le th\u00e9orique et la r\u00e9alit\u00e9 empirique observ\u00e9e. Dans le cas de la r\u00e9gression lin\u00e9aire simple univari\u00e9e, nous postulons que la variable d\u00e9pendante scalaire <em>Y<\/em> est li\u00e9e \u00e0 la variable pr\u00e9dictive <em>X<\/em> par une relation structurelle de la forme : <em>y_i = &beta;_0 + &beta;_1 * x_i + &epsilon;_i<\/em>, o\u00f9 <em>&beta;_0<\/em> repr\u00e9sente la constante (ordonn\u00e9e \u00e0 l&rsquo;origine), <em>&beta;_1<\/em> le coefficient directeur (pente d&rsquo;ajustement), et <em>&epsilon;_i<\/em> une composante d&rsquo;erreur stochastique inobservable. La valeur ajust\u00e9e par le mod\u00e8le pour chaque point s&rsquo;exprime sous la forme <em>y_chapeau_i = b_0 + b_1 * x_i<\/em>, o\u00f9 <em>b_0<\/em> et <em>b_1<\/em> d\u00e9signent les estimateurs d&rsquo;\u00e9chantillon des param\u00e8tres de la population.<\/p>\n<p>Le r\u00e9sidu individuel, not\u00e9 <em>e_i<\/em>, est d\u00e9fini par la diff\u00e9rence alg\u00e9brique stricte entre la mesure observ\u00e9e et la projection th\u00e9orique correspondante : <em>e_i = y_i &#8211; y_chapeau_i = y_i &#8211; (b_0 + b_1 * x_i)<\/em>. La m\u00e9thode des moindres carr\u00e9s ordinaires (MCO, ou OLS pour Ordinary Least Squares) consiste \u00e0 identifier le couple unique d&rsquo;estimateurs <em>(b_0, b_1)<\/em> qui minimise la somme des carr\u00e9s des r\u00e9sidus (SCR, ou Residual Sum of Squares, RSS) :<\/p>\n<p><em>S(b_0, b_1) = &sum; [y_i &#8211; (b_0 + b_1 * x_i)]&sup2;<\/em><\/p>\n<p>L&rsquo;\u00e9l\u00e9vation au carr\u00e9 de chaque \u00e9cart individuel remplit une double mission : d&rsquo;une part, elle emp\u00eache que les r\u00e9sidus positifs et n\u00e9gatifs ne s&rsquo;annulent mutuellement lors de la sommation globale ; d&rsquo;autre part, elle p\u00e9nalise de mani\u00e8re quadratique les \u00e9carts importants, conf\u00e9rant une sensibilit\u00e9 accrue du mod\u00e8le aux observations fortement \u00e9loign\u00e9es du barycentre des donn\u00e9es. En diff\u00e9rentiant partiellement la fonction objective <em>S<\/em> par rapport \u00e0 <em>b_0<\/em> et \u00e0 <em>b_1<\/em>, et en annulant ces d\u00e9riv\u00e9es partielles pour obtenir les conditions du premier ordre, nous obtenons le syst\u00e8me classique des \u00e9quations normales. La r\u00e9solution analytique de ce syst\u00e8me conduit aux estimateurs universels des moindres carr\u00e9s ordinaires :<\/p>\n<p><em>b_1 = Cov(X, Y) \/ Var(X) = [&sum; (x_i &#8211; x_barre)(y_i &#8211; y_barre)] \/ [&sum; (x_i &#8211; x_barre)&sup2;]<\/em><\/p>\n<p><em>b_0 = y_barre &#8211; b_1 * x_barre<\/em><\/p>\n<p>o\u00f9 <em>x_barre<\/em> et <em>y_barre<\/em> repr\u00e9sentent respectivement les moyennes arithm\u00e9tiques empiriques des variables d&rsquo;analyse. Ces formules r\u00e9v\u00e8lent que la pente d&rsquo;ajustement d\u00e9pend directement de la covariance empirique conjointe normalis\u00e9e par la variance observ\u00e9e de la variable ind\u00e9pendante.<\/p>\n<h3>2.2 Interpr\u00e9tation des param\u00e8tres g\u00e9om\u00e9triques et statistiques<\/h3>\n<p>L&rsquo;interpr\u00e9tation des coefficients issus des moindres carr\u00e9s ordinaires doit \u00eatre articul\u00e9e avec une m\u00e9ticulosit\u00e9 extr\u00eame, en distinguant la dimension purement spatiale du graphique de sa signification substantive au sein du domaine scientifique investigu\u00e9. Le coefficient <em>b_1<\/em>, mesurant la pente de la droite de r\u00e9gression, traduit le taux marginal de variation de la variable expliqu\u00e9e <em>Y<\/em> cons\u00e9cutif \u00e0 une augmentation unitaire infinit\u00e9simale de la variable explicative <em>X<\/em>. Sur le plan des unit\u00e9s dimensionnelles, <em>b_1<\/em> s&rsquo;exprime dans le ratio direct des unit\u00e9s de mesure (unit\u00e9s de <em>Y<\/em> par unit\u00e9 de <em>X<\/em>). Un coefficient positif indique une relation directement proportionnelle, alors qu&rsquo;une valeur n\u00e9gative formalise une d\u00e9croissance syst\u00e9matique. Lorsque les variables ont \u00e9t\u00e9 pr\u00e9alablement centr\u00e9es et r\u00e9duites (standardisation en scores Z), la pente de r\u00e9gression simple devient rigoureusement \u00e9quivalente au coefficient de corr\u00e9lation lin\u00e9aire de Bravais-Pearson (not\u00e9 <em>r<\/em>), born\u00e9 conventionnellement entre -1 et +1.<\/p>\n<p>Le param\u00e8tre <em>b_0<\/em>, ou constante de r\u00e9gression, correspond g\u00e9om\u00e9triquement \u00e0 l&rsquo;ordonn\u00e9e du point d&rsquo;intersection pr\u00e9cis entre la droite mod\u00e9lis\u00e9e et l&rsquo;axe vertical d&rsquo;\u00e9quation <em>X = 0<\/em>. Sa port\u00e9e interpr\u00e9tative d\u00e9pend enti\u00e8rement de la plausibilit\u00e9 th\u00e9orique et physique d&rsquo;une valeur nulle pour la variable pr\u00e9dictive au sein du syst\u00e8me \u00e9tudi\u00e9. Si la valeur z\u00e9ro se situe en dehors du domaine de d\u00e9finition exp\u00e9rimental (par exemple, lors de la mod\u00e9lisation du quotient intellectuel, de la pression art\u00e9rielle systolique ou de la temp\u00e9rature corporelle chez l&rsquo;\u00eatre humain), l&rsquo;ordonn\u00e9e \u00e0 l&rsquo;origine constitue un simple ancrage math\u00e9matique d\u00e9pourvu de signification empirique directe, garantissant uniquement que la droite traverse le centre de gravit\u00e9 ou barycentre des observations, d\u00e9fini par le point cart\u00e9sien <em>(x_barre, y_barre)<\/em>.<\/p>\n<p>Sur le plan inf\u00e9rentiel, la qualit\u00e9 d&rsquo;ajustement globale du mod\u00e8le est quantifi\u00e9e par le coefficient de d\u00e9termination, not\u00e9 <em>R&sup2;<\/em>. Math\u00e9matiquement, ce param\u00e8tre correspond au rapport entre la somme des carr\u00e9s expliqu\u00e9e par le mod\u00e8le (SCE) et la somme des carr\u00e9s totale des variations de la variable endog\u00e8ne (SCT) : <em>R&sup2; = SCE \/ SCT = 1 &#8211; (SCR \/ SCT)<\/em>. Dans le cadre univari\u00e9, le coefficient de d\u00e9termination co\u00efncide exactement avec le carr\u00e9 du coefficient de corr\u00e9lation de Pearson (<em>r&sup2;<\/em>). Il quantifie la proportion de la variance totale de la variable de r\u00e9ponse qui se trouve structurellement captur\u00e9e et pr\u00e9dite par la variation lin\u00e9aire de la variable pr\u00e9dictive, fournissant ainsi une m\u00e9trique normalis\u00e9e de l&rsquo;ad\u00e9quation empirique de la droite d&rsquo;ajustement.<\/p>\n<h3>2.3 Conditions d&rsquo;application et postulats de Gauss-Markov<\/h3>\n<p>L&rsquo;optimalit\u00e9 statistique des estimateurs des moindres carr\u00e9s ordinaires repose sur un ensemble de conditions formelles connues sous le nom de th\u00e9or\u00e8me de Gauss-Markov. Ce th\u00e9or\u00e8me stipule que, sous r\u00e9serve de la validation stricte de ces hypoth\u00e8ses fondamentales, les estimateurs <em>b_0<\/em> et <em>b_1<\/em> constituent les meilleurs estimateurs lin\u00e9aires sans biais (Best Linear Unbiased Estimators, ou BLUE), garantissant une variance minimale parmi l&rsquo;ensemble des estimateurs non biais\u00e9s possibles de la classe lin\u00e9aire. La m\u00e9connaissance de ces postulats expose l&rsquo;analyste \u00e0 des inf\u00e9rences totalement erron\u00e9es et \u00e0 une surconfiance injustifi\u00e9e dans les intervalles de pr\u00e9diction g\u00e9n\u00e9r\u00e9s visuellement.<\/p>\n<p>Les postulats de base peuvent \u00eatre formalis\u00e9s synth\u00e9tiquement comme suit :<\/p>\n<ul>\n<li><strong>Lin\u00e9arit\u00e9 des param\u00e8tres :<\/strong> Le mod\u00e8le sous-jacent doit pouvoir s&rsquo;\u00e9crire sous forme lin\u00e9aire par rapport \u00e0 ses coefficients, m\u00eame si les variables ind\u00e9pendantes font l&rsquo;objet de transformations pr\u00e9alables.<\/li>\n<li><strong>Exog\u00e9n\u00e9it\u00e9 stricte :<\/strong> L&rsquo;esp\u00e9rance conditionnelle du terme d&rsquo;erreur stochastique par rapport aux variables explicatives est identiquement nulle, c&rsquo;est-\u00e0-dire <em>E(&epsilon;_i | x_i) = 0<\/em>. Cette condition implique l&rsquo;absence totale de corr\u00e9lation entre les r\u00e9sidus et la variable explicative, excluant l&rsquo;omission de variables confondantes majeures.<\/li>\n<li><strong>Homosc\u00e9dasticit\u00e9 :<\/strong> La variance conditionnelle du terme d&rsquo;erreur demeure rigoureusement constante pour chaque niveau de la variable ind\u00e9pendante : <em>Var(&epsilon;_i | x_i) = &sigma;&sup2;<\/em>. Si la variance des erreurs s&rsquo;accro\u00eet ou d\u00e9cro\u00eet de fa\u00e7on monotone le long de l&rsquo;axe des abscisses, le ph\u00e9nom\u00e8ne d&rsquo;h\u00e9t\u00e9rosc\u00e9dasticit\u00e9 invalide le calcul conventionnel des erreurs-types standards.<\/li>\n<li><strong>Absence d&rsquo;autocorr\u00e9lation :<\/strong> Les termes d&rsquo;erreur associ\u00e9s \u00e0 deux observations distinctes ne pr\u00e9sentent aucune corr\u00e9lation mutuelle : <em>Cov(&epsilon;_i, &epsilon;_j) = 0<\/em> pour tout <em>i &ne; j<\/em>. Cette ind\u00e9pendance stochastique est cruciale lors de l&rsquo;analyse de s\u00e9ries temporelles ou spatiales.<\/li>\n<li><strong>Normalit\u00e9 des erreurs :<\/strong> Pour que les tests de significativit\u00e9 statistique (tests de Student et de Fisher) et les intervalles de confiance soient rigoureusement exacts \u00e0 taille d&rsquo;\u00e9chantillon finie, les perturbations doivent suivre une distribution normale multivari\u00e9e : <em>&epsilon; ~ N(0, &sigma;&sup2; * I)<\/em>.<\/li>\n<\/ul>\n<p>L&rsquo;\u00e9valuation visuelle du nuage de points et de ses r\u00e9sidus constitue le moyen empirique par excellence pour sonder le respect effectif de ces postulats fondamentaux avant d&rsquo;entamer toute communication formelle de r\u00e9sultats de recherche.<\/p>\n<h2>3. Configuration de l&rsquo;environnement Python et structuration des donn\u00e9es<\/h2>\n<h3>3.1 Mise en place de l&rsquo;environnement de travail scientifique<\/h3>\n<p>Pour garantir la reproductibilit\u00e9 int\u00e9grale des analyses computationnelles pr\u00e9sent\u00e9es dans ce guide, la configuration rigoureuse d&rsquo;un environnement de d\u00e9veloppement d\u00e9di\u00e9 est indispensable. Il est fortement recommand\u00e9 d&rsquo;isoler les d\u00e9pendances logicielles au sein d&rsquo;un environnement virtuel standardis\u00e9, \u00e9vitant ainsi tout conflit de versions entre biblioth\u00e8ques tierces. L&rsquo;utilisation d&rsquo;outils tels que <code>venv<\/code>, <code>virtualenv<\/code> ou le gestionnaire multiplateforme <code>conda<\/code> permet d&rsquo;encapsuler pr\u00e9cis\u00e9ment la version de l&rsquo;interpr\u00e9teur Python ainsi que l&rsquo;ensemble des modules math\u00e9matiques requis pour nos protocoles de visualisation bivari\u00e9e.<\/p>\n<p>La s\u00e9quence fondamentale d&rsquo;installation via l&rsquo;utilitaire d&#8217;empaquetage standard de Python implique l&rsquo;ex\u00e9cution des commandes d&rsquo;environnement suivantes au sein de votre terminal :<\/p>\n<p><code>python -m venv env_statistique<\/code><br \/>\n<code>source env_statistique\/bin\/activate<\/code> (ou <code>env_statistiqueScriptsactivate<\/code> sous Windows)<br \/>\n<code>pip install numpy scipy pandas matplotlib seaborn statsmodels<\/code><\/p>\n<p>Cette pile technologique couvre l&rsquo;int\u00e9gralit\u00e9 du spectre analytique : manipulation matricielle avec NumPy, calculs inf\u00e9rentiels avanc\u00e9s avec SciPy, structuration tabulaire via Pandas, rendu graphique vectoriel atomique avec Matplotlib, mod\u00e9lisation statistique \u00e9l\u00e9gante avec Seaborn et validation \u00e9conom\u00e9trique param\u00e9trique pouss\u00e9e via Statsmodels. Une fois l&rsquo;environnement initialis\u00e9, les sessions de programmation interactive peuvent \u00eatre conduites soit au c\u0153ur d&rsquo;un carnet interactif Jupyter (Jupyter Notebook \/ JupyterLab), particuli\u00e8rement adapt\u00e9 \u00e0 la phase exploratoire visuelle, soit au moyen de scripts autonomes destin\u00e9s \u00e0 l&rsquo;int\u00e9gration dans des pipelines d&rsquo;int\u00e9gration continue de production scientifique.<\/p>\n<h3>3.2 Structuration des vecteurs de donn\u00e9es avec NumPy et Pandas<\/h3>\n<p>Une rigueur m\u00e9thodologique absolue s&rsquo;impose quant au formatage et \u00e0 l&rsquo;alignement des collections de donn\u00e9es destin\u00e9es au tra\u00e7age graphique. Les structures de donn\u00e9es primaires exploit\u00e9es pour l&rsquo;ajustement bivari\u00e9 sont les vecteurs unidimensionnels continus. Dans NumPy, ces vecteurs s&rsquo;incarnent sous la forme de tableaux contigus \u00e0 une dimension (<code>numpy.ndarray<\/code>) caract\u00e9ris\u00e9s par un type de donn\u00e9e uniforme, usuellement des nombres \u00e0 virgule flottante en double pr\u00e9cision (<code>float64<\/code>). L&rsquo;homog\u00e9n\u00e9it\u00e9 du type de donn\u00e9e est cruciale pour garantir des op\u00e9rations vectoris\u00e9es instantan\u00e9es lors de la soustraction des moyennes ou du calcul des produits scalaires.<\/p>\n<p>Cependant, dans la majorit\u00e9 des sc\u00e9narios d&rsquo;analyse appliqu\u00e9e, les donn\u00e9es d&rsquo;observation proviennent d&rsquo;enqu\u00eates ou de relev\u00e9s instrumentaux comportant des donn\u00e9es manquantes, des identifiants et des libell\u00e9s de facteurs. L&rsquo;encapsulation de ces vecteurs au sein d&rsquo;un DataFrame de Pandas offre une flexibilit\u00e9 indispensable. Les s\u00e9ries Pandas (<code>pandas.Series<\/code>) g\u00e8rent de mani\u00e8re coh\u00e9rente l&rsquo;indexation temporelle ou individuelle ainsi que les valeurs manquantes (repr\u00e9sent\u00e9es par le marqueur <code>numpy.nan<\/code>). Avant d&rsquo;ex\u00e9cuter la moindre routine graphique ou d&rsquo;ajustement lin\u00e9aire, il est imp\u00e9ratif d&rsquo;assainir structurellement les vecteurs en v\u00e9rifiant leur parfaite concordance de longueur et en \u00e9liminant explicitement les paires d&rsquo;observations incompl\u00e8tes au moyen des m\u00e9thodes de filtrage vectoris\u00e9 telles que <code>dropna()<\/code>.<\/p>\n<p>La structuration rigoureuse implique \u00e9galement l&rsquo;assignation explicite des types : une colonne quantitative destin\u00e9e \u00e0 figurer sur les axes cart\u00e9siens ne doit en aucun cas \u00eatre interpr\u00e9t\u00e9e comme une cha\u00eene de caract\u00e8res ou un type g\u00e9n\u00e9rique (<code>object<\/code>), sous peine de fausser l&rsquo;\u00e9chelle continue du graphique au profit d&rsquo;un espacement cat\u00e9goriel arbitraire. Cette discipline de typage strict pr\u00e9vient les anomalies de rendu spatial o\u00f9 les intervalles entre valeurs mesur\u00e9es ne respectent pas la distance euclidienne r\u00e9elle du ph\u00e9nom\u00e8ne observ\u00e9.<\/p>\n<h3>3.3 G\u00e9n\u00e9ration d&rsquo;un jeu de donn\u00e9es exp\u00e9rimental \u00e9talon<\/h3>\n<p>Afin d&rsquo;illustrer de mani\u00e8re transparente et reproductible les diff\u00e9rentes approches m\u00e9thodologiques sans d\u00e9pendre de fichiers de donn\u00e9es externes potentiellement volatils, nous concevons un g\u00e9n\u00e9rateur synth\u00e9tique de donn\u00e9es contr\u00f4l\u00e9es. Cette strat\u00e9gie permet de fixer d\u00e9lib\u00e9r\u00e9ment les param\u00e8tres de la population th\u00e9orique (la pente r\u00e9elle, la constante et l&rsquo;\u00e9cart-type de l&rsquo;erreur) afin de confronter directement les estimations graphiques et computationnelles \u00e0 la v\u00e9rit\u00e9 terrain du mod\u00e8le g\u00e9n\u00e9ratif stochastique.<\/p>\n<p>Consid\u00e9rons une situation exp\u00e9rimentale en psychologie cognitive \u00e9valuant la relation entre le nombre d&rsquo;heures d&rsquo;entra\u00eenement sur un simulateur perceptif (variable ind\u00e9pendante <em>X<\/em>) et le score de pr\u00e9cision obtenu lors d&rsquo;une t\u00e2che d&rsquo;attention divis\u00e9e (variable d\u00e9pendante <em>Y<\/em>). Nous fixons arbitrairement la taille de l&rsquo;\u00e9chantillon \u00e0 <em>N = 100<\/em> observations. Nous initialisons la graine du g\u00e9n\u00e9rateur de nombres pseudo-al\u00e9atoires de NumPy (<code>np.random.seed(42)<\/code>) afin de garantir la constance stochastique absolue des trac\u00e9s g\u00e9n\u00e9r\u00e9s au cours des sections suivantes.<\/p>\n<p>Le protocole de simulation math\u00e9matique s&rsquo;\u00e9tablit ainsi :<\/p>\n<ul>\n<li>La variable pr\u00e9dictive <em>X<\/em> est \u00e9chantillonn\u00e9e selon une loi uniforme continue comprise entre 2 et 20 heures d&rsquo;apprentissage : <em>X ~ U(2, 20)<\/em>.<\/li>\n<li>Le bruit exp\u00e9rimental stochastique <em>&epsilon;<\/em> est tir\u00e9 d&rsquo;une distribution normale gaussienne de moyenne nulle et d&rsquo;\u00e9cart-type \u00e9gal \u00e0 4 unit\u00e9s : <em>&epsilon; ~ N(0, 16)<\/em>.<\/li>\n<li>La relation th\u00e9orique sous-jacente est calibr\u00e9e selon l&rsquo;\u00e9quation de population : <em>Y = 15.0 + 2.5 * X + &epsilon;<\/em>, conf\u00e9rant une pente th\u00e9orique <em>&beta;_1 = 2.5<\/em> et une ordonn\u00e9e d&rsquo;origine <em>&beta;_0 = 15.0<\/em>.<\/li>\n<\/ul>\n<p>Cette formalisation algorithmique produit un jeu de donn\u00e9es bivari\u00e9 id\u00e9al : il exhibe une tendance lin\u00e9aire pr\u00e9pond\u00e9rante tout en conservant une variabilit\u00e9 al\u00e9atoire r\u00e9aliste, autorisant ainsi une d\u00e9monstration exhaustive de l&rsquo;ensemble des techniques de visualisation et d&rsquo;inf\u00e9rence statistique disponibles sous Python.<\/p>\n<h2>4. M\u00e9thode 1 : Construction pas \u00e0 pas avec Matplotlib et NumPy<\/h2>\n<h3>4.1 Trac\u00e9 du nuage de points primaire avec plt.plot et plt.scatter<\/h3>\n<p>La d\u00e9composition programmatique de l&rsquo;affichage commence par la cr\u00e9ation de l&rsquo;ossature g\u00e9om\u00e9trique \u00e9l\u00e9mentaire \u00e0 l&rsquo;aide de l&rsquo;API orient\u00e9e objet de Matplotlib. Bien que l&rsquo;interface proc\u00e9durale bas\u00e9e sur <code>matplotlib.pyplot<\/code> offre une grande accessibilit\u00e9 pour des op\u00e9rations rapides, l&rsquo;approche professionnelle exige l&rsquo;instanciation explicite des objets <code>Figure<\/code> et <code>Axes<\/code> (au moyen de la fabrique <code>plt.subplots()<\/code>). Cette m\u00e9thode garantit une gouvernance totale sur chaque \u00e9l\u00e9ment du canevas, condition indispensable \u00e0 l&rsquo;\u00e9laboration de figures destin\u00e9es \u00e0 l&rsquo;\u00e9dition scientifique.<\/p>\n<p>Deux fonctions distinctes permettent de g\u00e9n\u00e9rer un nuage de points sous Matplotlib : <code>Axes.plot()<\/code> et <code>Axes.scatter()<\/code>. Bien qu&rsquo;elles puissent sembler redondantes en premi\u00e8re approche, elles r\u00e9pondent \u00e0 des paradigmes computationnels fonci\u00e8rement diff\u00e9rents. La m\u00e9thode <code>Axes.plot()<\/code>, lorsqu&rsquo;on lui passe un format de marqueur sans trait de liaison (par exemple <code>marker='o', linestyle=''<\/code>), trace des points identiques \u00e0 tr\u00e8s haute performance. Elle traite l&rsquo;ensemble des marqueurs comme un trac\u00e9 graphique unique, ce qui la rend consid\u00e9rablement plus v\u00e9loce pour manipuler des \u00e9chantillons denses exc\u00e9dant plusieurs dizaines de milliers d&rsquo;observations.<\/p>\n<p>\u00c0 l&rsquo;oppos\u00e9, la m\u00e9thode <code>Axes.scatter()<\/code> instancie une collection g\u00e9om\u00e9trique compl\u00e8te (une <code>PathCollection<\/code>). Cette architecture plus lourde offre une flexibilit\u00e9 incomparable : elle permet de faire varier individuellement la taille des points, leur couleur de remplissage, la teinte de leur bordure ou leur degr\u00e9 d&rsquo;opacit\u00e9 en fonction de vecteurs d&rsquo;observations tiers. Dans notre contexte d&rsquo;analyse bivari\u00e9e standard, <code>Axes.scatter()<\/code> constitue l&rsquo;outil privil\u00e9gi\u00e9 en permettant de moduler l&rsquo;opacit\u00e9 (param\u00e8tre <code>alpha<\/code>) afin de d\u00e9samorcer l&rsquo;occultation visuelle en cas de chevauchement dense des coordonn\u00e9es cart\u00e9siennes.<\/p>\n<figure class=\"wpt-preserved-image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/french.arabpsychology.com\/wp-content\/uploads\/2026\/09\/scatterRegressionPython2.png\" alt=\"Scatterplot with regression line in numpy\" \/><figcaption>Scatterplot with regression line in numpy<\/figcaption><\/figure>\n<h3>4.2 Calcul des coefficients d&rsquo;ajustement avec numpy.polyfit<\/h3>\n<p>Une fois le nuage d&rsquo;observations empiriques projet\u00e9 sur la grille orthogonale, l&rsquo;\u00e9tape subs\u00e9quente consiste \u00e0 d\u00e9river les param\u00e8tres math\u00e9matiques de la droite d&rsquo;ajustement sans recourir \u00e0 un moteur d&rsquo;inf\u00e9rence lourd. La biblioth\u00e8que NumPy fournit pour cet usage une routine d&rsquo;ajustement polynomial particuli\u00e8rement robuste et universelle : la fonction <code>numpy.polyfit()<\/code>. Cette m\u00e9thode impl\u00e9mente la r\u00e9solution des moindres carr\u00e9s ordinaires par l&rsquo;interm\u00e9diaire d&rsquo;une factorisation en valeurs singuli\u00e8res (SVD) de la matrice de Vandermonde associ\u00e9e aux observations, garantissant une remarquable stabilit\u00e9 num\u00e9rique m\u00eame en pr\u00e9sence de matrices mal conditionn\u00e9es.<\/p>\n<p>Pour ajuster un mod\u00e8le lin\u00e9aire du premier ordre, la fonction prend comme arguments les vecteurs coordonn\u00e9s des abscisses et des ordonn\u00e9es, ainsi que le degr\u00e9 polynomial cible fix\u00e9 \u00e0 <em>deg=1<\/em>. L&rsquo;appel fonctionnel s&rsquo;articule comme suit :<\/p>\n<p><code>pente, intercept = np.polyfit(x, y, deg=1)<\/code><\/p>\n<p>La fonction retourne un tableau de scalaires correspondant aux coefficients du polyn\u00f4me ordonn\u00e9s par puissances d\u00e9croissantes, isolant ainsi la pente empirique <em>b_1<\/em> en premier \u00e9l\u00e9ment et la constante <em>b_0<\/em> en second. NumPy propose \u00e9galement le module modernis\u00e9 <code>numpy.polynomial.polynomial<\/code> dont la classe <code>Polynomial.fit()<\/code> \u00e9vite les instabilit\u00e9s li\u00e9es \u00e0 l&rsquo;ordre des param\u00e8tres en adaptant dynamiquement l&rsquo;\u00e9chelle du domaine. Ces coefficients permettent de d\u00e9river imm\u00e9diatement l&rsquo;expression analytique de la trajectoire d&rsquo;ajustement.<\/p>\n<p>Il importe de souligner que <code>numpy.polyfit()<\/code> op\u00e8re purement sur le plan g\u00e9om\u00e9trique et d\u00e9terministe : il ne calcule pas intrins\u00e8quement les erreurs-types des estimateurs, ni les valeurs p de significativit\u00e9 statistique associ\u00e9es aux coefficients, ni les r\u00e9sidus standardis\u00e9s. Son utilit\u00e9 r\u00e9side dans sa vitesse d&rsquo;ex\u00e9cution chirurgicale et son absence de d\u00e9pendance envers des biblioth\u00e8ques externes complexes, en faisant la m\u00e9thode de pr\u00e9dilection pour l&rsquo;affichage visuel direct au sein d&rsquo;environnements computationnels contraints.<\/p>\n<h3>4.3 Superposition de la droite de r\u00e9gression sur le graphique<\/h3>\n<p>L&rsquo;int\u00e9gration graphique de la droite d&rsquo;ajustement calcul\u00e9e sur le nuage de points pr\u00e9existant s&rsquo;op\u00e8re par la superposition ordonn\u00e9e d&rsquo;un trac\u00e9 vectoriel continu au moyen de la m\u00e9thode <code>Axes.plot()<\/code>. Il convient de pr\u00eater une attention rigoureuse \u00e0 la discr\u00e9tisation spatiale de la variable ind\u00e9pendante pour g\u00e9n\u00e9rer ce trac\u00e9. Une erreur fr\u00e9quente consiste \u00e0 injecter directement le vecteur <em>x<\/em> d&rsquo;origine non tri\u00e9 dans le calcul de projection, ce qui, dans le cas d&rsquo;ajustements d&rsquo;ordre sup\u00e9rieur, produit des trac\u00e9s en dents de scie d\u00e9sordonn\u00e9s en raison de l&rsquo;interconnexion lin\u00e9aire des points dans leur ordre s\u00e9quentiel d&rsquo;apparition.<\/p>\n<p>La bonne pratique acad\u00e9mique impose la construction d&rsquo;un vecteur synth\u00e9tique \u00e9qui-r\u00e9parti s&rsquo;\u00e9tendant exactement entre les valeurs minimale et maximale du domaine observ\u00e9 au moyen de la fonction <code>numpy.linspace()<\/code>. Par exemple :<\/p>\n<p><code>x_modele = np.linspace(x.min(), x.max(), 200)<\/code><br \/>\n<code>y_modele = pente * x_modele + intercept<\/code><\/p>\n<p>Ce vecteur synth\u00e9tique de 200 points garantit une r\u00e9gularit\u00e9 de trac\u00e9 parfaite sans aucune rupture de pente perceptible. La projection de cette droite sur l&rsquo;axe s&rsquo;ex\u00e9cute ensuite en sp\u00e9cifiant des param\u00e8tres graphiques explicites : une largeur de ligne substantielle (<code>linewidth=2<\/code>), une couleur contrastant franchement avec la teinte des points (comme un rouge cramoisi oppos\u00e9 \u00e0 un bleu ardoise), ainsi qu&rsquo;un label informatif au sein de la l\u00e9gende reportant l&rsquo;\u00e9quation math\u00e9matique du mod\u00e8le et le coefficient de d\u00e9termination <em>R&sup2;<\/em> pr\u00e9alablement calcul\u00e9.<\/p>\n<p>Cette construction manuelle pas \u00e0 pas Matplotlib\/NumPy assure une ma\u00eetrise architecturale totale : le praticien contr\u00f4le pr\u00e9cis\u00e9ment la hi\u00e9rarchie visuelle, l&rsquo;ordre d&#8217;empilement spatial des calques de rendu via le param\u00e8tre <code>zorder<\/code> (garantissant que la droite se situe au-dessus des marqueurs ou inversement), ainsi que l&rsquo;ancrage spatial exact des m\u00e9tadonn\u00e9es analytiques.<\/p>\n<h2>5. M\u00e9thode 2 : Approche automatis\u00e9e et statistique avec Seaborn<\/h2>\n<h3>5.1 Utilisation de seaborn.regplot pour une impl\u00e9mentation rapide<\/h3>\n<p>Pour les analyses exploratoires rapides et l&rsquo;\u00e9laboration de visualisations statistiques pr\u00eates pour la communication de r\u00e9sultats, la biblioth\u00e8que Seaborn offre des abstractions de tr\u00e8s haut niveau qui automatisent la totalit\u00e9 du flux de travail arithm\u00e9tique et graphique. Au centre de ce dispositif d&rsquo;analyse bivari\u00e9e se trouve la fonction <code>seaborn.regplot()<\/code>. Con\u00e7ue sp\u00e9cifiquement pour fusionner le nuage de points et la mod\u00e9lisation lin\u00e9aire en un appel fonctionnel unique et compact, cette fonction encapsule l&rsquo;ajustement num\u00e9rique, l&rsquo;inf\u00e9rence des marges d&rsquo;erreur et le rendu graphique au sein d&rsquo;une interface syntaxique fluide.<\/p>\n<p>La commande fondamentale s&rsquo;exprime sous la forme paradigmatique suivante :<\/p>\n<p><code>sns.regplot(x='heures_apprentissage', y='score_precision', data=df, ax=ax, scatter_kws={'alpha':0.6}, line_kws={'color':'firebrick'})<\/code><\/p>\n<p>En acceptant directement un objet DataFrame de Pandas conjointement avec les identifiants textuels de colonnes, <code>regplot()<\/code> d\u00e9charge le programmeur de toute extraction vectorielle pr\u00e9liminaire. La fonction prend en charge automatiquement le filtrage des valeurs manquantes par paire (pairwise deletion), garantissant qu&rsquo;aucune anomalie de calcul ne vienne corrompre l&rsquo;inf\u00e9rence des moindres carr\u00e9s ordinaires.<\/p>\n<p>Par ailleurs, la fonction offre une s\u00e9paration \u00e9l\u00e9gante entre la personnalisation esth\u00e9tique du nuage de points primaire et celle de la trajectoire lin\u00e9aire mod\u00e9lis\u00e9e gr\u00e2ce aux dictionnaires d&rsquo;arguments <code>scatter_kws<\/code> et <code>line_kws<\/code>. Cette souplesse permet de modifier simultan\u00e9ment la morphologie g\u00e9om\u00e9trique des marqueurs (taille, couleur de bordure, transparence) et la signature visuelle de la droite d&rsquo;ajustement (\u00e9paisseur du trait, motif pointill\u00e9, teinte colorim\u00e9trique), pr\u00e9servant la compatibilit\u00e9 int\u00e9grale avec l&rsquo;\u00e9cosyst\u00e8me de styles de Matplotlib sur lequel repose le moteur de rendu interne de Seaborn.<\/p>\n<figure class=\"wpt-preserved-image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/french.arabpsychology.com\/wp-content\/uploads\/2026\/09\/scatterRegressionPython3.png\" alt=\"Scatterplot with regression line in seaborn Python\" \/><figcaption>Scatterplot with regression line in seaborn Python<\/figcaption><\/figure>\n<h3>5.2 Trac\u00e9 et interpr\u00e9tation de l&rsquo;intervalle de confiance<\/h3>\n<p>L&rsquo;apport m\u00e9thodologique majeur de Seaborn r\u00e9side dans sa capacit\u00e9 \u00e0 enrichir imm\u00e9diatement la droite d&rsquo;ajustement d&rsquo;un intervalle de confiance statistique, repr\u00e9sent\u00e9 graphiquement sous la forme d&rsquo;un ruban translucide englobant la trajectoire de r\u00e9gression. Par d\u00e9faut, <code>seaborn.regplot()<\/code> param\u00e8tre cet intervalle \u00e0 un niveau de confiance de 95 % (argument <code>ci=95<\/code>). Il est crucial de comprendre que ce ruban ombr\u00e9 ne refl\u00e8te pas l&rsquo;intervalle de pr\u00e9diction individuel des futures observations empiriques, mais bien l&rsquo;intervalle de confiance encadrant la valeur attendue de la moyenne conditionnelle de la population (l&rsquo;esp\u00e9rance math\u00e9matique conditionnelle <em>E(Y|X)<\/em>).<\/p>\n<p>Sur le plan algorithmique, Seaborn calcule cet intervalle au moyen d&rsquo;un r\u00e9\u00e9chantillonnage avec remise (bootstrap non param\u00e9trique). Cette approche empirique pr\u00e9sente l&rsquo;immense avantage th\u00e9orique de ne pas reposer sur l&rsquo;hypoth\u00e8se stricte de normalit\u00e9 gaussienne des r\u00e9sidus d&rsquo;\u00e9chantillonnage : le jeu de donn\u00e9es est r\u00e9\u00e9chantillonn\u00e9 de multiples fois (typiquement 1 000 it\u00e9rations) afin de g\u00e9n\u00e9rer une distribution empirique des pentes et des ordonn\u00e9es \u00e0 l&rsquo;origine possibles, d\u00e9limitant ainsi les percentiles sup\u00e9rieur (97,5 %) et inf\u00e9rieur (2,5 %) de la droite estim\u00e9e.<\/p>\n<p>Morphologiquement, ce ruban adopte une silhouette caract\u00e9ristique en diabolo ou en sablier, manifestant un \u00e9tranglement prononc\u00e9 au niveau du barycentre des coordonn\u00e9es <em>(x_barre, y_barre)<\/em> et un \u00e9vasement progressif \u00e0 mesure que l&rsquo;on s&rsquo;\u00e9carte vers les extr\u00e9mit\u00e9s de la distribution observ\u00e9e. Cette g\u00e9om\u00e9trie traduit directement l&rsquo;incertitude \u00e9pist\u00e9mique inh\u00e9rente \u00e0 l&rsquo;\u00e9chantillonnage : l&rsquo;estimation de la moyenne conditionnelle b\u00e9n\u00e9ficie d&rsquo;une densit\u00e9 d&rsquo;information maximale au c\u0153ur du nuage de donn\u00e9es, tandis que la trajectoire des pentes plausibles diverge structurellement aux marges de l&rsquo;espace empirique.<\/p>\n<h3>5.3 Comparaison fonctionnelle entre regplot et lmplot<\/h3>\n<p>Au sein de la biblioth\u00e8que Seaborn, il existe une dualit\u00e9 architecturale fondamentale entre les fonctions d&rsquo;ajustement <code>regplot()<\/code> et <code>lmplot()<\/code>, source fr\u00e9quente de confusion pour les utilisateurs interm\u00e9diaires. Bien que ces deux proc\u00e9dures partagent le m\u00eame moteur computationnel sous-jacent pour l&rsquo;ajustement lin\u00e9aire et le r\u00e9\u00e9chantillonnage des intervalles de confiance, elles occupent des niveaux d&rsquo;abstraction diam\u00e9tralement distincts au sein de la hi\u00e9rarchie logicielle.<\/p>\n<p>La fonction <code>seaborn.regplot()<\/code> est une fonction dite de niveau axe (axes-level function). Cela signifie qu&rsquo;elle dessine exclusivement au sein de l&rsquo;objet <code>matplotlib.axes.Axes<\/code> qui lui est explicitement allou\u00e9 via le param\u00e8tre <code>ax<\/code>. En cons\u00e9quence, <code>regplot()<\/code> s&rsquo;int\u00e8gre avec une flexibilit\u00e9 totale dans des configurations matricielles complexes g\u00e9n\u00e9r\u00e9es manuellement par <code>plt.subplots()<\/code>, permettant de juxtaposer au sein d&rsquo;une m\u00eame figure globale un nuage de points de r\u00e9gression, un histogramme marginal et une bo\u00eete \u00e0 moustaches.<\/p>\n<p>\u00c0 l&rsquo;inverse, <code>seaborn.lmplot()<\/code> est une fonction de niveau figure (figure-level function), b\u00e2tie au sommet de la classe <code>FacetGrid<\/code>. L&rsquo;invocation de <code>lmplot()<\/code> instancie et gouverne de mani\u00e8re autonome sa propre structure de fen\u00eatrage multi-axes. La finalit\u00e9 prioritaire de <code>lmplot()<\/code> r\u00e9side dans la stratification multidimensionnelle des donn\u00e9es : en utilisant des arguments de partitionnement s\u00e9mantique tels que <code>hue<\/code>, <code>col<\/code> et <code>row<\/code>, <code>lmplot()<\/code> d\u00e9ploie instantan\u00e9ment un r\u00e9seau orthogonal de sous-graphiques bivari\u00e9s distincts conditionn\u00e9s par les modalit\u00e9s de variables qualitatives cat\u00e9gorielles d&rsquo;int\u00e9r\u00eat. Pour des trac\u00e9s bivari\u00e9s isol\u00e9s n\u00e9cessitant une int\u00e9gration fine dans des sous-figures Matplotlib complexes, <code>regplot()<\/code> est le choix architectural ad\u00e9quat ; pour une exploration multivari\u00e9e stratifi\u00e9e par facteurs, <code>lmplot()<\/code> s&rsquo;av\u00e8re consid\u00e9rablement plus puissant et direct.<\/p>\n<h2>6. M\u00e9thode 3 : Mod\u00e9lisation formelle et inf\u00e9rentielle avec Statsmodels<\/h2>\n<h3>6.1 Estimation rigoureuse du mod\u00e8le OLS (Ordinary Least Squares)<\/h3>\n<p>Lorsque la finalit\u00e9 de l&rsquo;\u00e9tude analytique d\u00e9passe la simple exploration graphique pour s&rsquo;inscrire dans le cadre formel de la validation d&rsquo;hypoth\u00e8ses statistiques et de l&rsquo;\u00e9conom\u00e9trie appliqu\u00e9e, la biblioth\u00e8que Statsmodels constitue le standard de rigueur m\u00e9thodologique. Contrairement \u00e0 Matplotlib ou Seaborn, dont la vocation principale demeure visuelle, Statsmodels se concentre sur l&rsquo;estimation math\u00e9matique int\u00e9grale des matrices de covariance, le calcul de la statistique de Student, des p-valeurs exactes, des crit\u00e8res d&rsquo;information (AIC, BIC) et des diagnostics d&rsquo;h\u00e9t\u00e9rosc\u00e9dasticit\u00e9.<\/p>\n<p>L&rsquo;estimation formelle d&rsquo;un mod\u00e8le de moindres carr\u00e9s ordinaires sous Statsmodels s&rsquo;op\u00e8re usuellement via le module <code>statsmodels.api<\/code>. Un imp\u00e9ratif structurel propre \u00e0 cette approche r\u00e9side dans l&rsquo;adjonction explicite du terme constant. En effet, par convention d&rsquo;alg\u00e8bre matricielle, Statsmodels ne postule pas a priori l&rsquo;existence d&rsquo;une ordonn\u00e9e \u00e0 l&rsquo;origine afin de pr\u00e9server la possibilit\u00e9 d&rsquo;ajuster des mod\u00e8les contraints passant rigoureusement par le point d&rsquo;origine cart\u00e9sien. Il est donc obligatoire de transformer le vecteur ind\u00e9pendant <em>x<\/em> en une matrice d&rsquo;exp\u00e9rience \u00e0 deux colonnes incorporant un vecteur unitaire via la fonction <code>sm.add_constant()<\/code> :<\/p>\n<p><code>X_avec_constante = sm.add_constant(x)<\/code><br \/>\n<code>modele = sm.OLS(y, X_avec_constante)<\/code><br \/>\n<code>resultats = modele.fit()<\/code><\/p>\n<p>L&rsquo;invocation de la m\u00e9thode <code>summary()<\/code> sur l&rsquo;objet de r\u00e9sultats g\u00e9n\u00e8re alors une table acad\u00e9mique standardis\u00e9e consignant l&rsquo;ensemble des grandeurs statistiques du mod\u00e8le : coefficients estim\u00e9s (<em>coef<\/em>), erreurs-types associ\u00e9es (<em>std err<\/em>), statistiques de Student (<em>t<\/em>), probabilit\u00e9s critiques bilat\u00e9rales (<em>P&gt;|t|<\/em>), intervalles de confiance param\u00e9triques \u00e0 95 %, ainsi que les statistiques globales du mod\u00e8le telles que le <em>F-statistic<\/em> et les diagnostics d&rsquo;asym\u00e9trie (Skewness) et d&rsquo;aplatissement (Kurtosis) des r\u00e9sidus.<\/p>\n<h3>6.2 Visualisation graphique int\u00e9grant les intervalles de pr\u00e9diction<\/h3>\n<p>L&rsquo;un des avantages fondamentaux de l&rsquo;estimation formelle via Statsmodels r\u00e9side dans la dissociation math\u00e9matique rigoureuse entre l&rsquo;intervalle de confiance de la droite de r\u00e9gression et l&rsquo;intervalle de pr\u00e9diction des observations individuelles. Tandis que l&rsquo;intervalle de confiance quantifie l&rsquo;incertitude relative \u00e0 la position moyenne de la droite th\u00e9orique dans la population, l&rsquo;intervalle de pr\u00e9diction incorpore simultan\u00e9ment cette incertitude param\u00e9trique et la variance stochastique inh\u00e9rente au ph\u00e9nom\u00e8ne al\u00e9atoire (l&rsquo;al\u00e9a <em>&sigma;&sup2;<\/em> des r\u00e9sidus individuels). En cons\u00e9quence, l&rsquo;intervalle de pr\u00e9diction est structurellement beaucoup plus large que l&rsquo;intervalle de confiance moyen.<\/p>\n<p>Pour calculer et repr\u00e9senter graphiquement ces deux faisceaux probabilistes distincts, on recourt \u00e0 la m\u00e9thode <code>get_prediction()<\/code> appliqu\u00e9e \u00e0 une grille dense de valeurs ind\u00e9pendantes :<\/p>\n<p><code>predictions = resultats.get_prediction(X_grille)<\/code><br \/>\n<code>cadre_predictions = predictions.summary_frame(alpha=0.05)<\/code><\/p>\n<p>Le DataFrame r\u00e9sultant fournit directement les bornes analytiques n\u00e9cessaires :<\/p>\n<ul>\n<li><code>mean<\/code> : la valeur attendue ponctuelle (trajectoire centrale de la droite d&rsquo;ajustement).<\/li>\n<li><code>mean_ci_lower<\/code> et <code>mean_ci_upper<\/code> : les bornes inf\u00e9rieure et sup\u00e9rieure de l&rsquo;intervalle de confiance \u00e0 95 % de la moyenne conditionnelle.<\/li>\n<li><code>obs_ci_lower<\/code> et <code>obs_ci_upper<\/code> : les bornes inf\u00e9rieure et sup\u00e9rieure de l&rsquo;intervalle de pr\u00e9diction \u00e0 95 % pour une observation individuelle future.<\/li>\n<\/ul>\n<p>Sur le canevas graphique de Matplotlib, ces grandeurs sont superpos\u00e9es au nuage de points d&rsquo;origine au moyen de la m\u00e9thode <code>Axes.fill_between()<\/code>. L&rsquo;analyste projette d&rsquo;abord le faisceau de confiance moyen sous une opacit\u00e9 mod\u00e9r\u00e9e, puis englobe l&rsquo;ensemble dans le ruban de pr\u00e9diction individuel sous une opacit\u00e9 plus faible ou d\u00e9limit\u00e9 par des lignes discontinues. Cette double stratification s\u00e9miotique offre au lecteur une compr\u00e9hension instantan\u00e9e et exhaustive de la pr\u00e9cision du mod\u00e8le : environ 95 % des observations r\u00e9elles doivent s&rsquo;inscrire \u00e0 l&rsquo;int\u00e9rieur du fuseau de pr\u00e9diction externe, tandis que l&rsquo;\u00e9troitesse du fuseau interne renseigne sur la solidit\u00e9 de l&rsquo;estimation de la pente globale.<\/p>\n<h3>6.3 Incorporation des m\u00e9triques statistiques sur le graphique<\/h3>\n<p>La valeur d\u00e9monstrative d&rsquo;une visualisation acad\u00e9mique est consid\u00e9rablement renforc\u00e9e lorsque les m\u00e9triques inf\u00e9rentielles fondamentales sont incrust\u00e9es directement dans le champ graphique, \u00e9vitant ainsi au lecteur d&rsquo;avoir \u00e0 rechercher ces valeurs critiques au sein du texte narratif ou des tableaux annexes. L&rsquo;incorporation programmatique de ces indices requiert l&rsquo;extraction s\u00e9lective des valeurs num\u00e9riques stock\u00e9es dans l&rsquo;objet de r\u00e9sultats de Statsmodels, suivie de leur formatage typographique au sein d&rsquo;une bo\u00eete d&rsquo;annotation textuelle.<\/p>\n<p>Les m\u00e9triques indispensables \u00e0 faire figurer dans ce cadre contextuel sont le coefficient de d\u00e9termination <em>R&sup2;<\/em> (ou le <em>R&sup2; ajust\u00e9<\/em>), la statistique de significativit\u00e9 globale <em>F<\/em> associ\u00e9e \u00e0 sa p-valeur correspondante, ainsi que la valeur estim\u00e9e de la pente accompagn\u00e9e de son erreur-type standard. Le formatage de ces cha\u00eenes de caract\u00e8res ob\u00e9it aux normes de pr\u00e9cision de la discipline (usuellement trois d\u00e9cimales significatives pour les coefficients et notation exponentielle ou seuil standardis\u00e9 tel que <em>p &lt; 0.001<\/em> pour les probabilit\u00e9s infimes).<\/p>\n<p>L&rsquo;affichage s&rsquo;ex\u00e9cute \u00e0 l&rsquo;aide de la m\u00e9thode <code>Axes.text()<\/code> de Matplotlib, en privil\u00e9giant l&rsquo;utilisation des coordonn\u00e9es relatives aux axes plut\u00f4t que des coordonn\u00e9es brutes des donn\u00e9es :<\/p>\n<p><code>ax.text(0.05, 0.95, texte_statistiques, transform=ax.transAxes, verticalalignment='top', bbox=dict(boxstyle='round,pad=0.5', facecolor='white', alpha=0.8, edgecolor='gray'))<\/code><\/p>\n<p>L&rsquo;utilisation de <code>transform=ax.transAxes<\/code> lie l&rsquo;ancrage spatial du bloc textuel aux limites relatives du panneau de tra\u00e7age (le point <em>(0, 0)<\/em> repr\u00e9sentant le coin inf\u00e9rieur gauche et <em>(1, 1)<\/em> le coin sup\u00e9rieur droit), assurant que l&rsquo;encadr\u00e9 d&rsquo;information demeure parfaitement positionn\u00e9 quelles que soient les modifications ult\u00e9rieures apport\u00e9es aux \u00e9chelles ou aux bornes des axes empiriques.<\/p>\n<h2>7. Personnalisation esth\u00e9tique et s\u00e9miotique pour les revues acad\u00e9miques<\/h2>\n<h3>7.1 Typographie, \u00e9tiquetage pr\u00e9cis et normes \u00e9ditoriales (APA)<\/h3>\n<p>La conversion d&rsquo;une \u00e9bauche graphique exploratoire en une figure digne des plus prestigieuses revues scientifiques internationales (telles que les publications de l&rsquo;American Psychological Association, ou APA) ob\u00e9it \u00e0 des r\u00e8gles \u00e9ditoriales rigides de clart\u00e9, de sobri\u00e9t\u00e9 et de typographie. Le postulat fondamental de ces normes prescrit l&rsquo;\u00e9limination scrupuleuse de tout bruit visuel parasite (chartjunk), au profit d&rsquo;un ratio donn\u00e9es\/encre maximal, th\u00e9oris\u00e9 par Edward Tufte. Chaque marque typographique, chaque graduation et chaque ligne directrice doivent apporter une valeur informative irrempla\u00e7able.<\/p>\n<p>Sur le plan typographique, les normes acad\u00e9miques proscrivent l&rsquo;usage de polices d\u00e9coratives ou fantaisistes, pr\u00e9conisant l&#8217;emploi strict de polices sans empattement hautement lisibles \u00e0 petite \u00e9chelle (comme Arial, Helvetica ou Computer Modern Sans Serif) ou de polices \u00e0 empattement canoniques pour les manuscrits de sciences humaines (Times New Roman). L&rsquo;impl\u00e9mentation sous Matplotlib s&rsquo;effectue globalement via la modification des param\u00e8tres d&rsquo;ex\u00e9cution runtime (<code>matplotlib.rcParams<\/code>) :<\/p>\n<p><code>plt.rcParams['font.sans-serif'] = 'Helvetica'<\/code><br \/>\n<code>plt.rcParams['font.family'] = 'sans-serif'<\/code><br \/>\n<code>plt.rcParams['font.size'] = 10<\/code><\/p>\n<p>L&rsquo;\u00e9tiquetage des axes cart\u00e9siens doit \u00eatre d&rsquo;une pr\u00e9cision chirurgicale. Il est imp\u00e9ratif de stipuler explicitement le nom complet de la variable conceptuelle, accompagn\u00e9 imp\u00e9rativement entre parenth\u00e8ses de son unit\u00e9 de mesure dimensionnelle standardis\u00e9e (par exemple : <em>Temps de r\u00e9ponse perceptif (ms)<\/em> et non simplement <em>TR<\/em>). L&rsquo;orientation typographique du label de l&rsquo;axe vertical doit \u00eatre maintenue horizontale ou pivoter selon un angle rigoureux de 90 degr\u00e9s pour faciliter la lecture. Conform\u00e9ment aux directives APA (7e \u00e9dition), les figures ne doivent pas comporter de titre graphique redondant massif incrust\u00e9 au sommet du canevas ; la d\u00e9signation ordonn\u00e9e de la figure ainsi que son titre descriptif en italique doivent \u00eatre d\u00e9port\u00e9s dans la l\u00e9gende textuelle du manuscrit sous-jacent.<\/p>\n<h3>7.2 Choix des palettes de couleurs et accessibilit\u00e9 visuelle<\/h3>\n<p>La conception s\u00e9miotique moderne impose une vigilance accrue envers l&rsquo;accessibilit\u00e9 visuelle des productions scientifiques. Une proportion substantielle de la population scientifique &mdash; notamment masculine &mdash; pr\u00e9sente des anomalies de la vision trichromatique (daltonisme, deut\u00e9ranopie, protanopie). En outre, nombre de tirages acad\u00e9miques continuent d&rsquo;\u00eatre reproduits ou imprim\u00e9s en nuances de gris physiques. L&rsquo;utilisation na\u00efve de combinaisons chromatiques binaires traditionnelles (telles que le vert et le rouge pour signaler des contrastes directionnels) constitue un manquement m\u00e9thodologique disqualifiant.<\/p>\n<p>L&rsquo;analyste veillera \u00e0 adopter des \u00e9chelles de couleurs perceptuellement uniformes d\u00e9velopp\u00e9es scientifiquement pour pallier ces d\u00e9ficiences, telles que les palettes <em>Viridis<\/em>, <em>Cividis<\/em> ou les d\u00e9grad\u00e9s s\u00e9lectifs de <em>ColorBrewer<\/em>. Pour la superposition d&rsquo;un nuage univari\u00e9 et de sa r\u00e9gression, l&rsquo;usage d&rsquo;une teinte neutre \u00e0 saturation mod\u00e9r\u00e9e pour les observations empiriques (comme un gris ardoise ou un bleu marine att\u00e9nu\u00e9) contrast\u00e9e par une couleur vive univoque pour la droite d&rsquo;ajustement (telle qu&rsquo;une nuance vermillon ou ambre fonc\u00e9) garantit une lisibilit\u00e9 maximale.<\/p>\n<p>Cette distinction chromatique doit s&rsquo;accompagner d&rsquo;une redondance s\u00e9miotique par la g\u00e9om\u00e9trie et la texture :<\/p>\n<ul>\n<li>Diff\u00e9renciation de la trajectoire centrale par un trac\u00e9 plein contrastant avec les intervalles de confiance d\u00e9limit\u00e9s par des traits tiret\u00e9s ou des hachures vectorielles.<\/li>\n<li>Application d&rsquo;un l\u00e9ger contour sombre ou blanc (param\u00e8tre <code>edgecolor<\/code>) autour des marqueurs ponctuels du nuage de points pour pr\u00e9server leur intelligibilit\u00e9 g\u00e9om\u00e9trique individuelle m\u00eame en pr\u00e9sence d&rsquo;agr\u00e9gations locales denses.<\/li>\n<li>Calibration minutieuse de la transparence alpha (comprise usuellement entre 0.4 et 0.7) afin que la superposition spatiale des points ne masque pas la trajectoire de la droite de r\u00e9gression sous-jacente.<\/li>\n<\/ul>\n<h3>7.3 Structuration fine des axes, graduations et grilles<\/h3>\n<p>L&rsquo;architecture spatiale du cadre de r\u00e9f\u00e9rence (les axes et leurs graduations) conditionne la perception quantitative du lecteur. Un graphique acad\u00e9mique ne doit jamais laisser ses limites de projection s&rsquo;ajuster de mani\u00e8re aveugle aux bornes extr\u00eames des donn\u00e9es brutes, au risque d&rsquo;\u00e9craser des marqueurs contre les bordures ext\u00e9rieures du cadre. Il convient d&rsquo;introduire un espace respiratoire contr\u00f4l\u00e9 &mdash; typiquement une marge de 5 \u00e0 10 % au-del\u00e0 des observations extr\u00eames &mdash; en calibrant manuellement les m\u00e9thodes <code>set_xlim()<\/code> et <code>set_ylim()<\/code>.<\/p>\n<p>La standardisation contemporaine recommande la suppression des bordures sup\u00e9rieures et droites superflues (appel\u00e9es \u00ab\u00a0spines\u00a0\u00bb dans Matplotlib), qui enferment inutilement la figure dans un cadre \u00e9touffant sans v\u00e9hiculer la moindre graduation informationnelle. Cette d\u00e9sactivation s&rsquo;op\u00e8re \u00e9l\u00e9gamment via la commande <code>sns.despine()<\/code> ou manuellement par la d\u00e9sactivation de la visibilit\u00e9 des bordures correspondantes :<\/p>\n<p><code>ax.spines['top'].set_visible(False)<\/code><br \/>\n<code>ax.spines['right'].set_visible(False)<\/code><\/p>\n<p>Les graduations principales (major ticks) doivent \u00eatre dirig\u00e9es vers l&rsquo;ext\u00e9rieur de l&rsquo;axe (<code>tick_params(direction='out')<\/code>) afin d&rsquo;\u00e9viter qu&rsquo;elles n&#8217;empi\u00e8tent sur les points situ\u00e9s \u00e0 proximit\u00e9 imm\u00e9diate des lignes d&rsquo;axes. Concernant l&rsquo;int\u00e9gration d&rsquo;une grille cart\u00e9sienne d&rsquo;arri\u00e8re-plan, la parcimonie est de rigueur : si une grille s&rsquo;av\u00e8re indispensable pour faciliter l&rsquo;interpolation mentale des coordonn\u00e9es de points sp\u00e9cifiques, elle doit \u00eatre rel\u00e9gu\u00e9e au second plan s\u00e9miotique au moyen d&rsquo;un trac\u00e9 tr\u00e8s discret (couleur gris tr\u00e8s clair, motif pointill\u00e9 fin et indice <code>zorder=0<\/code> pla\u00e7ant la grille en dessous de l&rsquo;ensemble des \u00e9l\u00e9ments de donn\u00e9es).<\/p>\n<h2>8. Diagnostic visuel et analyse des r\u00e9sidus associ\u00e9s au mod\u00e8le<\/h2>\n<h3>8.1 Visualisation des distances r\u00e9siduelles individuelles<\/h3>\n<p>Bien que la droite d&rsquo;ajustement mat\u00e9rialise la tendance centrale du mod\u00e8le, la validit\u00e9 interne de la r\u00e9gression lin\u00e9aire se jauge avant tout \u00e0 travers l&rsquo;inspection des \u00e9carts qui s\u00e9parent chaque observation empirique de sa projection th\u00e9orique. Pour rendre palpable la notion g\u00e9om\u00e9trique fondamentale de minimisation des moindres carr\u00e9s, il est particuli\u00e8rement instructif de tracer visuellement les segments de r\u00e9sidus reliant directement les coordonn\u00e9es r\u00e9elles <em>(x_i, y_i)<\/em> \u00e0 leurs coordonn\u00e9es pr\u00e9dites correspondantes <em>(x_i, y_chapeau_i)<\/em>.<\/p>\n<p>Dans Matplotlib, cette visualisation s&rsquo;\u00e9labore \u00e0 l&rsquo;aide de la m\u00e9thode <code>Axes.vlines()<\/code> (vertical lines) :<\/p>\n<p><code>ax.vlines(x, y, y_ajuste, color='gray', linestyle=':', alpha=0.6, linewidth=1)<\/code><\/p>\n<p>Ce proc\u00e9d\u00e9 graphique trace instantan\u00e9ment l&rsquo;ensemble des tiges d&rsquo;\u00e9cart vertical. L&rsquo;impact didactique et analytique de cette repr\u00e9sentation est imm\u00e9diat : elle concr\u00e9tise visuellement la fonction objective des moindres carr\u00e9s &mdash; c&rsquo;est la somme des carr\u00e9s de la longueur de l&rsquo;ensemble de ces micro-segments verticaux que l&rsquo;algorithme a minimis\u00e9e de mani\u00e8re absolue. Cette vue permet d&rsquo;isoler au premier coup d&rsquo;\u0153il les observations pour lesquelles l&rsquo;erreur d&rsquo;ajustement est disproportionn\u00e9e, offrant un point de d\u00e9part qualitatif pour l&rsquo;inspection des points atypiques.<\/p>\n<figure class=\"wpt-preserved-image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/french.arabpsychology.com\/wp-content\/uploads\/2026\/09\/scatterRegressionPython4.png\" alt=\"\" \/><\/figure>\n<h3>8.2 Trac\u00e9 du graphique des r\u00e9sidus par rapport aux valeurs ajust\u00e9es<\/h3>\n<p>L&rsquo;outil diagnostique le plus important dans l&rsquo;arsenal de l&rsquo;analyste demeure sans conteste le graphique des r\u00e9sidus en fonction des valeurs ajust\u00e9es (Residuals vs Fitted plot). La projection du nuage de points brut peut fr\u00e9quemment masquer des violations insidieuses des postulats de Gauss-Markov, car l&rsquo;\u0153il humain a tendance \u00e0 se focaliser sur l&rsquo;inclinaison dominante de la droite plut\u00f4t que sur la structure fine de la dispersion orthogonale. En op\u00e9rant une rotation de l&rsquo;espace pour projeter les r\u00e9sidus <em>e_i<\/em> sur l&rsquo;axe vertical en fonction des valeurs pr\u00e9dites <em>y_chapeau_i<\/em> sur l&rsquo;axe horizontal, on \u00e9limine la pente globale pour examiner exclusivement le signal d&rsquo;erreur stochastique.<\/p>\n<p>Dans un mod\u00e8le parfaitement sp\u00e9cifi\u00e9 et validant l&rsquo;ensemble des hypoth\u00e8ses statistiques fondamentales, le nuage des r\u00e9sidus doit adopter l&rsquo;apparence d&rsquo;une \u00ab\u00a0bande horizontale amorphe\u00a0\u00bb exempte de toute configuration discernable, uniform\u00e9ment distribu\u00e9e de part et d&rsquo;autre de la ligne d&rsquo;ordonn\u00e9e z\u00e9ro (<em>e = 0<\/em>). Deux pathologies classiques se d\u00e9tectent imm\u00e9diatement sur ce trac\u00e9 :<\/p>\n<ul>\n<li><strong>Pr\u00e9sence d&rsquo;une non-lin\u00e9arit\u00e9 :<\/strong> Si le nuage des r\u00e9sidus dessine une courbure syst\u00e9matique (en forme de parabole concave ou convexe), la relation sous-jacente entre les variables est structurellement curviligne et l&rsquo;ajustement lin\u00e9aire du premier ordre constitue une sous-sp\u00e9cification du mod\u00e8le th\u00e9orique.<\/li>\n<li><strong>H\u00e9t\u00e9rosc\u00e9dasticit\u00e9 caract\u00e9ris\u00e9e :<\/strong> Si la dispersion verticale des r\u00e9sidus s&rsquo;\u00e9vase ou se resserre le long de l&rsquo;axe des valeurs ajust\u00e9es, dessinant une silhouette d&rsquo;entonnoir (funnel shape) ou de m\u00e9gaphone, le postulat d&rsquo;homosc\u00e9dasticit\u00e9 est formellement r\u00e9fut\u00e9, indiquant que l&rsquo;incertitude du mod\u00e8le n&rsquo;est pas stationnaire.<\/li>\n<\/ul>\n<p>L&rsquo;ajout d&rsquo;une ligne de lissage non param\u00e9trique de type LOESS (Locally Estimated Scatterplot Smoothing) en surimpression sur ce graphique diagnostique constitue un moyen extr\u00eamement efficace de mat\u00e9rialiser visuellement toute d\u00e9viation de l&rsquo;esp\u00e9rance locale r\u00e9siduelle par rapport au z\u00e9ro th\u00e9orique.<\/p>\n<h3>8.3 Repr\u00e9sentation combin\u00e9e : nuage principal et panneau diagnostique<\/h3>\n<p>Pour atteindre un niveau de synth\u00e8se \u00e9ditoriale optimal, il est hautement recommand\u00e9 d&rsquo;assembler, au sein d&rsquo;une figure multi-panneaux int\u00e9gr\u00e9e, le graphique bivari\u00e9 d&rsquo;origine et son panneau diagnostique de r\u00e9sidus associ\u00e9. Cette disposition synoptique permet \u00e0 l&rsquo;examinateur ou au relecteur acad\u00e9mique de confronter instantan\u00e9ment la trajectoire d&rsquo;ajustement brute \u00e0 l&rsquo;examen critique de ses perturbations.<\/p>\n<p>La structuration g\u00e9om\u00e9trique de cette figure composite se r\u00e9alise avec pr\u00e9cision via le gestionnaire de disposition <code>GridSpec<\/code> de Matplotlib :<\/p>\n<p><code>fig = plt.figure(figsize=(10, 8))<\/code><br \/>\n<code>gs = fig.add_gridspec(2, 1, height_ratios=[3, 1], hspace=0.15)<\/code><br \/>\n<code>ax_primaire = fig.add_subplot(gs[0])<\/code><br \/>\n<code>ax_residus = fig.add_subplot(gs[1], sharex=ax_primaire)<\/code><\/p>\n<p>Cette articulation technique offre des avantages ergonomiques consid\u00e9rables : en assignant un ratio de hauteur dissym\u00e9trique (par exemple 3 pour 1), le panneau sup\u00e9rieur conserve la pr\u00e9pond\u00e9rance visuelle consacr\u00e9e aux donn\u00e9es empiriques brutes et \u00e0 la droite de r\u00e9gression formelle. Le panneau inf\u00e9rieur, de dimensions plus resserr\u00e9es, accueille le trac\u00e9 des r\u00e9sidus individuels projet\u00e9s le long du m\u00eame axe d&rsquo;abscisse gr\u00e2ce au param\u00e8tre <code>sharex=ax_primaire<\/code>. Ainsi, chaque point du graphique d&rsquo;origine se trouve rigoureusement align\u00e9 verticalement avec son r\u00e9sidu d&rsquo;ajustement correspondant, facilitant une inspection visuelle directe et chirurgicale de la fid\u00e9lit\u00e9 locale du mod\u00e8le.<\/p>\n<h2>9. Gestion des cas complexes : non-lin\u00e9arit\u00e9, h\u00e9t\u00e9rosc\u00e9dasticit\u00e9 et aberrations<\/h2>\n<h3>9.1 D\u00e9tection et pond\u00e9ration des points aberrants et influents<\/h3>\n<p>La vuln\u00e9rabilit\u00e9 majeure de la m\u00e9thode des moindres carr\u00e9s ordinaires d\u00e9coule directement de sa fonction objective quadratique : un unique point d&rsquo;observation anormalement d\u00e9port\u00e9 peut \u00e0 lui seul faire pivoter artificiellement la droite de r\u00e9gression, d\u00e9gradant l&rsquo;exactitude du mod\u00e8le pour l&rsquo;ensemble des donn\u00e9es l\u00e9gitimes. Il convient toutefois de distinguer rigoureusement sur le plan conceptuel un point aberrant d&rsquo;un point influent.<\/p>\n<p>Un point aberrant (outlier) correspond \u00e0 une observation dont l&rsquo;ordonn\u00e9e empirique <em>y_i<\/em> s&rsquo;\u00e9carte radicalement de la valeur pr\u00e9dite par le mod\u00e8le, g\u00e9n\u00e9rant un r\u00e9sidu standardis\u00e9 exceptionnellement \u00e9lev\u00e9 en valeur absolue (usuellement sup\u00e9rieur \u00e0 3 \u00e9carts-types). Un point \u00e0 fort levier (high leverage point), quant \u00e0 lui, est caract\u00e9ris\u00e9 par une valeur extr\u00eame sur la variable ind\u00e9pendante <em>x_i<\/em>, se situant tr\u00e8s loin du barycentre des pr\u00e9dicteurs. Une observation ne devient formellement influente que si elle combine un r\u00e9sidu non nul avec un levier substantiel, alt\u00e9rant significativement la valeur des param\u00e8tres estim\u00e9s lorsqu&rsquo;on l&rsquo;omet du processus d&rsquo;ajustement.<\/p>\n<p>La quantification de cette influence s&rsquo;op\u00e8re au moyen de la <em>Distance de Cook<\/em>. Sous Python, cette distance d&rsquo;influence peut \u00eatre extraite directement via l&rsquo;objet <code>OLSInfluence<\/code> de Statsmodels :<\/p>\n<p><code>influence = resultats.get_influence()<\/code><br \/>\n<code>distances_cook = influence.cooks_distance[0]<\/code><\/p>\n<p>Pour repr\u00e9senter graphiquement cette dimension au sein du nuage de points, une technique s\u00e9miotique \u00e9l\u00e9gante consiste \u00e0 moduler la surface des marqueurs g\u00e9om\u00e9triques proportionnellement \u00e0 leur distance de Cook respective (param\u00e8tre <code>s=distances_cook * facteur_echelle<\/code> dans <code>Axes.scatter()<\/code>). Les observations exer\u00e7ant une traction disproportionn\u00e9e sur la droite d&rsquo;ajustement apparaissent alors sous forme de cercles dilat\u00e9s, alertant imm\u00e9diatement l&rsquo;analyste sur la n\u00e9cessit\u00e9 d&rsquo;enqu\u00eater sur l&rsquo;int\u00e9grit\u00e9 de ces mesures ou d&rsquo;opter pour des m\u00e9thodes d&rsquo;ajustement robustes (telles que la r\u00e9gression de Huber ou les M-estimateurs de RLM dans Statsmodels).<\/p>\n<h3>9.2 Mod\u00e9lisation et visualisation des relations curvilignes<\/h3>\n<p>Lorsque le diagnostic des r\u00e9sidus d\u00e9montre sans ambigu\u00eft\u00e9 une trajectoire non lin\u00e9aire, contraindre les donn\u00e9es dans le carcan d&rsquo;une droite de r\u00e9gression du premier degr\u00e9 constitue une faute m\u00e9thodologique grave. Le mod\u00e8le lin\u00e9aire peut \u00eatre ais\u00e9ment \u00e9tendu pour capturer des relations curvilin\u00e9aires en incorporant des puissances polynomiales de la variable explicative tout en demeurant strictement lin\u00e9aire par rapport \u00e0 ses param\u00e8tres.<\/p>\n<p>Sous Seaborn, l&rsquo;exploration d&rsquo;un ajustement polynomial d&rsquo;ordre sup\u00e9rieur s&rsquo;ex\u00e9cute de mani\u00e8re totalement transparente au moyen de l&rsquo;argument <code>order<\/code> au sein de <code>seaborn.regplot()<\/code> :<\/p>\n<p><code>sns.regplot(x='x', y='y', data=df, order=2, ax=ax, scatter_kws={'alpha':0.5})<\/code><\/p>\n<p>En fixant <code>order=2<\/code>, la fonction proc\u00e8de automatiquement \u00e0 l&rsquo;estimation d&rsquo;une parabole quadratique de type <em>y = b_0 + b_1 * x + b_2 * x&sup2;<\/em> et recalcule le ruban d&rsquo;intervalle de confiance bootstrapp\u00e9 autour de cette trajectoire curviligne continue. Si le ph\u00e9nom\u00e8ne sugg\u00e8re une saturation progressive plut\u00f4t qu&rsquo;une inflexion parabolique sym\u00e9trique, Seaborn permet \u00e9galement d&rsquo;ajuster une r\u00e9gression logistique bivari\u00e9e (argument <code>logistic=True<\/code> si la variable d\u00e9pendante est binaire) ou un mod\u00e8le \u00e0 lissage non param\u00e9trique robuste via LOESS (argument <code>lowess=True<\/code>).<\/p>\n<p>L&rsquo;utilisation de <code>lowess=True<\/code> affranchit totalement l&rsquo;analyse de tout postulat param\u00e9trique pr\u00e9alable : la courbe d&rsquo;ajustement est construite point par point par des r\u00e9gressions locales pond\u00e9r\u00e9es en fonction de la proximit\u00e9 spatiale des voisins, mat\u00e9rialisant visuellement la tendance empirique pure sans la contraindre \u00e0 \u00e9pouser une formule math\u00e9matique globale ferm\u00e9e.<\/p>\n<h3>9.3 Prise en compte des transformations de variables<\/h3>\n<p>Une alternative \u00e9l\u00e9gante \u00e0 l&rsquo;introduction de polyn\u00f4mes explicites consiste \u00e0 stabiliser la variance ou \u00e0 lin\u00e9ariser la relation structurelle par le biais de transformations math\u00e9matiques univari\u00e9es appliqu\u00e9es en amont sur les s\u00e9ries de donn\u00e9es. Dans de nombreuses disciplines empiriques, les grandeurs \u00e9conomiques, d\u00e9mographiques ou biologiques suivent des lois de puissance ou des dynamiques exponentielles o\u00f9 l&rsquo;effet marginal d&rsquo;une variation n&rsquo;est pas additif mais multiplicatif.<\/p>\n<p>La transformation la plus universelle est la transformation logarithmique n\u00e9p\u00e9rienne. Deux approches conceptuelles distinctes s&rsquo;offrent alors pour la repr\u00e9sentation graphique :<\/p>\n<ul>\n<li><strong>Transformation des donn\u00e9es brutes :<\/strong> On calcule au pr\u00e9alable <code>np.log(x)<\/code> et\/ou <code>np.log(y)<\/code> dans le DataFrame, puis on trace un graphique cart\u00e9sien standard dont les axes repr\u00e9sentent les grandeurs transform\u00e9es. Bien que math\u00e9matiquement directe, cette m\u00e9thode d\u00e9t\u00e9riore l&rsquo;interpr\u00e9tabilit\u00e9 intuitive, car les \u00e9chelles num\u00e9riques affichent des valeurs logarithmiques d\u00e9connect\u00e9es des unit\u00e9s de mesure concr\u00e8tes du domaine \u00e9tudi\u00e9.<\/li>\n<li><strong>Transformation de l&rsquo;\u00e9chelle des axes :<\/strong> L&rsquo;approche m\u00e9thodologiquement sup\u00e9rieure consiste \u00e0 conserver les valeurs empiriques brutes au sein des vecteurs de donn\u00e9es, mais \u00e0 param\u00e9trer le moteur de rendu de Matplotlib pour projeter l&rsquo;espace selon une \u00e9chelle logarithmique (au moyen de <code>Axes.set_xscale('log')<\/code> ou <code>Axes.set_yscale('log')<\/code>).<\/li>\n<\/ul>\n<p>Dans ce cadre g\u00e9om\u00e9trique non euclidien, la droite de r\u00e9gression calcul\u00e9e selon le mod\u00e8le log-lin\u00e9aire ou log-log doit \u00eatre projet\u00e9e de fa\u00e7on continue en adaptant la discr\u00e9tisation vectorielle avec <code>numpy.geomspace()<\/code> ou <code>numpy.logspace()<\/code> au lieu de <code>linspace()<\/code>, assurant une densit\u00e9 d&rsquo;\u00e9valuation g\u00e9om\u00e9trique homog\u00e8ne le long des cycles de puissances de 10 de l&rsquo;axe transform\u00e9.<\/p>\n<h2>10. Comparaison de plusieurs groupes : r\u00e9gressions multiples et mod\u00e9ration<\/h2>\n<h3>10.1 Nuages de points cat\u00e9goris\u00e9s avec droites d&rsquo;ajustement stratifi\u00e9es<\/h3>\n<p>Dans les protocoles de recherche quasi-exp\u00e9rimentaux ou observationnels, il est rare qu&rsquo;une relation bivari\u00e9e op\u00e8re en vase clos au sein d&rsquo;un \u00e9chantillon parfaitement homog\u00e8ne. La population \u00e9tudi\u00e9e se subdivise fr\u00e9quemment en sous-groupes discrets &mdash; tels que le groupe clinique exp\u00e9rimental face au groupe contr\u00f4le placebo, ou diff\u00e9rentes cohortes d&rsquo;\u00e2ge. Superposer aveugl\u00e9ment l&rsquo;ensemble de ces sous-populations au sein d&rsquo;une droite de r\u00e9gression unique expose l&rsquo;analyste au redoutable <em>paradoxe de Simpson<\/em>, o\u00f9 une corr\u00e9lation globale agr\u00e9g\u00e9e peut s&rsquo;av\u00e9rer diam\u00e9tralement inverse aux corr\u00e9lations partielles observ\u00e9es au sein de chaque strate sous-jacente.<\/p>\n<p>Pour pr\u00e9venir cet \u00e9cueil \u00e9pist\u00e9mologique, il convient d&rsquo;ex\u00e9cuter des r\u00e9gressions stratifi\u00e9es par classe cat\u00e9gorielle, associant \u00e0 chaque modalit\u00e9 factorielle une palette chromatique et un style g\u00e9om\u00e9trique d\u00e9di\u00e9s. La fonction <code>seaborn.lmplot()<\/code> excelle dans cette t\u00e2che en exploitant son param\u00e8tre s\u00e9mantique <code>hue<\/code> :<\/p>\n<p><code>sns.lmplot(x='heures_apprentissage', y='score_precision', hue='groupe_traitement', data=df, palette='Set2', aspect=1.3, markers=['o', 's'])<\/code><\/p>\n<p>Cette instruction d\u00e9ploie automatiquement un partitionnement stratifi\u00e9 de l&rsquo;espace graphique :<\/p>\n<ul>\n<li>Les observations empiriques sont dissoci\u00e9es par des marqueurs g\u00e9om\u00e9triques et des codes chromatiques contrast\u00e9s.<\/li>\n<li>Une estimation des moindres carr\u00e9s distincte est men\u00e9e ind\u00e9pendamment sur chaque sous-\u00e9chantillon.<\/li>\n<li>Chaque droite d&rsquo;ajustement est superpos\u00e9e avec son faisceau d&rsquo;intervalle de confiance bootstrapp\u00e9 respectif.<\/li>\n<li>Une l\u00e9gende contextuelle unifi\u00e9e est g\u00e9n\u00e9r\u00e9e en p\u00e9riph\u00e9rie imm\u00e9diate du panneau de projection.<\/li>\n<\/ul>\n<p>Cette approche permet d&rsquo;\u00e9valuer visuellement en un coup d&rsquo;\u0153il si les sous-groupes partagent une m\u00eame ordonn\u00e9e \u00e0 l&rsquo;origine (effet principal de groupe) tout en conservant une trajectoire conjointe parall\u00e8le.<\/p>\n<h3>10.2 Illustration graphique de l&rsquo;effet mod\u00e9rateur (interaction)<\/h3>\n<p>L&rsquo;extension analytique directe de la r\u00e9gression stratifi\u00e9e correspond, dans le vocabulaire statistique des sciences comportementales, \u00e0 l&rsquo;analyse de mod\u00e9ration ou d&rsquo;interaction statistique. Une mod\u00e9ration se mat\u00e9rialise math\u00e9matiquement lorsque l&rsquo;intensit\u00e9 ou la direction de la relation lin\u00e9aire unissant la variable ind\u00e9pendante <em>X<\/em> \u00e0 la variable d\u00e9pendante <em>Y<\/em> fluctue conditionnellement en fonction de la magnitude d&rsquo;une troisi\u00e8me variable mod\u00e9ratrice <em>Z<\/em>.<\/p>\n<p>Sur le plan g\u00e9om\u00e9trique, l&rsquo;existence d&rsquo;une interaction statistiquement significative entre deux variables quantitatives continues se traduit sans ambigu\u00eft\u00e9 par un non-parall\u00e9lisme des droites d&rsquo;ajustement conditionnelles. Si les droites associ\u00e9es aux diff\u00e9rents niveaux du mod\u00e9rateur s&rsquo;av\u00e8rent rigoureusement parall\u00e8les, l&rsquo;effet est purement additif (absence d&rsquo;interaction). Si, en revanche, les droites se croisent ou exhibent des angles d&rsquo;inclinaison divergents (des pentes statistiquement h\u00e9t\u00e9rog\u00e8nes), l&rsquo;effet mod\u00e9rateur est manifeste.<\/p>\n<p>Pour rendre compte visuellement d&rsquo;un effet d&rsquo;interaction impliquant une variable mod\u00e9ratrice continue, la convention m\u00e9thodologique standard (popularis\u00e9e par Aiken et West) consiste \u00e0 discr\u00e9tiser synth\u00e9tiquement le mod\u00e9rateur en trois strates fonctionnelles d&rsquo;\u00e9valuation :<\/p>\n<ul>\n<li>La moyenne de la variable mod\u00e9ratrice : <em>Z_barre<\/em>.<\/li>\n<li>Le niveau mod\u00e9rateur bas, positionn\u00e9 \u00e0 un \u00e9cart-type en dessous de la moyenne : <em>Z_barre &#8211; 1 * SD<\/em>.<\/li>\n<li>Le niveau mod\u00e9rateur haut, positionn\u00e9 \u00e0 un \u00e9cart-type au-dessus de la moyenne : <em>Z_barre + 1 * SD<\/em>.<\/li>\n<\/ul>\n<p>En projetant ensuite les trois droites de r\u00e9gression conditionnelles correspondantes (g\u00e9n\u00e9r\u00e9es via un mod\u00e8le interactif sous Statsmodels int\u00e9grant le terme de produit <em>X * Z<\/em>) sur le nuage de points global, le chercheur offre une transcription spatiale accessible des effets conditionnels simples (simple slopes), d\u00e9gageant avec une nettet\u00e9 totale les r\u00e9gimes de fonctionnement diff\u00e9rentiels du ph\u00e9nom\u00e8ne sous observation.<\/p>\n<h3>10.3 Gestion de l&rsquo;encombrement graphique et lisibilit\u00e9 multi-groupes<\/h3>\n<p>D\u00e8s lors qu&rsquo;une analyse bivari\u00e9e implique la superposition de trois sous-groupes ou davantage au sein d&rsquo;un m\u00eame rep\u00e8re cart\u00e9sien, le ph\u00e9nom\u00e8ne d&rsquo;occultation visuelle (overplotting) menace la lisibilit\u00e9 globale. L&rsquo;entrecroisement d\u00e9sordonn\u00e9 des droites de r\u00e9gression coupl\u00e9 au chevauchement massif des marqueurs de donn\u00e9es engendre une saturation perceptive rendant l&rsquo;extraction d&rsquo;information pratiquement impossible.<\/p>\n<p>Plusieurs strat\u00e9gies de rem\u00e9diation s\u00e9miotique doivent \u00eatre d\u00e9ploy\u00e9es pour pr\u00e9server l&rsquo;\u00e9l\u00e9gance et la clart\u00e9 du manuscrit :<\/p>\n<ul>\n<li><strong>Le partitionnement en facettes (Small Multiples) :<\/strong> Plut\u00f4t que de superposer l&rsquo;ensemble des groupes au sein d&rsquo;un canevas unique surcharg\u00e9, il est nettement plus judicieux de d\u00e9composer la figure en une matrice de sous-graphiques partageant une \u00e9chelle commune d&rsquo;axes au moyen de l&rsquo;argument <code>col='categorie'<\/code> dans <code>seaborn.lmplot()<\/code>. Chaque sous-groupe b\u00e9n\u00e9ficie ainsi de son propre panneau d\u00e9di\u00e9, permettant une comparaison transversale imm\u00e9diate sans aucune interf\u00e9rence de trac\u00e9s.<\/li>\n<li><strong>L&rsquo;att\u00e9nuation de l&rsquo;arri\u00e8re-plan contextuel :<\/strong> Si la superposition sur un axe unique demeure requise pour des raisons \u00e9ditoriales, une technique redoutablement efficace consiste \u00e0 projeter l&rsquo;int\u00e9gralit\u00e9 de l&rsquo;\u00e9chantillon complet sous la forme d&rsquo;un nuage de points gris\u00e9s tr\u00e8s discrets en arri\u00e8re-plan de chaque panneau, tout en mettant en exergue au premier plan uniquement les points et la droite d&rsquo;ajustement du sous-groupe focal.<\/li>\n<li><strong>L&rsquo;ajustement du tremblement stochastique (Jittering) :<\/strong> Lorsque les donn\u00e9es empiriques proviennent d&rsquo;\u00e9chelles d&rsquo;\u00e9valuation discr\u00e8tes (telles que des \u00e9chelles de Likert en psychom\u00e9trie), de multiples observations partagent des coordonn\u00e9es spatiales parfaitement identiques. L&rsquo;injection d&rsquo;une translation al\u00e9atoire infinit\u00e9simale sur les coordonn\u00e9es de projection (via l&rsquo;argument <code>x_jitter<\/code> dans <code>seaborn.regplot()<\/code>) permet d&rsquo;\u00e9clater visuellement les grappes de points sans corrompre le calcul de la droite d&rsquo;ajustement sous-jacente.<\/li>\n<\/ul>\n<h2>11. Exportation haute r\u00e9solution et int\u00e9gration documentaire<\/h2>\n<h3>11.1 Param\u00e9trage des formats vectoriels et matriciels<\/h3>\n<p>L&rsquo;ultime \u00e9tape m\u00e9thodologique de la production d&rsquo;une figure statistique r\u00e9side dans son exportation num\u00e9rique depuis l&rsquo;environnement d&rsquo;ex\u00e9cution Python vers le syst\u00e8me de fichiers local. Une erreur r\u00e9currente consiste \u00e0 exporter indistinctement des repr\u00e9sentations bivari\u00e9es sous des formats compress\u00e9s destructifs (tels que le format JPEG standard), ce qui g\u00e9n\u00e8re des artefacts de compression flous autour des lignes de trac\u00e9 fines et des \u00e9tiquettes typographiques lors de la phase de composition pr\u00e9presse.<\/p>\n<p>Une distinction fondamentale doit \u00eatre op\u00e9r\u00e9e entre les deux grandes familles de formats d&rsquo;exportation graphique :<\/p>\n<ul>\n<li><strong>Les formats vectoriels (PDF, EPS, SVG) :<\/strong> Les formats vectoriels encodent les composants graphiques sous forme d&rsquo;instructions g\u00e9om\u00e9triques et math\u00e9matiques closes (primitives de courbes de B\u00e9zier, coordonn\u00e9es de points et glyphes de polices int\u00e9gr\u00e9es). En cons\u00e9quence, une figure vectorielle jouit d&rsquo;une ind\u00e9pendance d&rsquo;\u00e9chelle absolue : elle peut \u00eatre agrandie ou r\u00e9duite \u00e0 l&rsquo;infini sans la moindre d\u00e9gradation de nettet\u00e9. Le format PDF (Portable Document Format) et le format EPS (Encapsulated PostScript) repr\u00e9sentent les standards incontournables pour la soumission d&rsquo;articles aux revues acad\u00e9miques de premier rang.<\/li>\n<li><strong>Les formats matriciels ou raster (PNG, TIFF) :<\/strong> Ces formats d\u00e9composent l&rsquo;espace en une matrice fixe de pixels color\u00e9s. Lorsqu&rsquo;un format matriciel est exig\u00e9 par un comit\u00e9 \u00e9ditorial, l&rsquo;utilisation exclusive du format sans perte PNG (Portable Network Graphics) ou TIFF non compress\u00e9 est imp\u00e9rative. La r\u00e9solution d&rsquo;\u00e9chantillonnage spatiale doit \u00eatre explicitement verrouill\u00e9e \u00e0 un minimum strict de 300 points par pouce (DPI), voire 600 ou 1 200 DPI pour les dessins au trait au noir pur.<\/li>\n<\/ul>\n<p>L&rsquo;instruction d&rsquo;exportation sous Matplotlib doit syst\u00e9matiquement mobiliser les param\u00e8tres de configuration avanc\u00e9s suivants :<\/p>\n<p><code>fig.savefig('figure_bivariee.pdf', format='pdf', dpi=300, bbox_inches='tight', pad_inches=0.05, transparent=False)<\/code><\/p>\n<p>L&rsquo;argument <code>bbox_inches='tight'<\/code> s&rsquo;av\u00e8re particuli\u00e8rement crucial : il ordonne au moteur de rendu de recalculer dynamiquement la bo\u00eete englobante de la figure afin de tronquer les marges blanches exc\u00e9dentaires tout en garantissant qu&rsquo;aucune \u00e9tiquette d&rsquo;axe d\u00e9port\u00e9e ne soit rogn\u00e9e lors de l&rsquo;enregistrement sur disque.<\/p>\n<h3>11.2 Int\u00e9gration transparente dans les manuscrits LaTeX et typographie math\u00e9matique<\/h3>\n<p>Pour les r\u00e9dactions scientifiques exigeantes conduites sous l&rsquo;environnement de composition typographique LaTeX, la coh\u00e9rence visuelle d&rsquo;un document exige une homog\u00e9n\u00e9it\u00e9 totale entre la typographie du texte narratif et celle des annotations int\u00e9gr\u00e9es aux graphiques Python. Matplotlib int\u00e8gre un moteur de rendu interne capable d&rsquo;\u00e9muler la syntaxe math\u00e9matique de base au moyen d&rsquo;un sous-ensemble TeX (en encadrant les cha\u00eenes de caract\u00e8res de symboles dollar : <code>ax.set_xlabel(r'<span class=\"arabpsy-math-inline\" data-latex=\"\\beta_{\\text{percept}} \\times \\Delta t\">$\\beta_{\\text{percept}} \\times \\Delta t$<\/span>')<\/code>).<\/p>\n<p>Cependant, pour atteindre une int\u00e9gration documentaire d&rsquo;une perfection absolue, il est possible de d\u00e9l\u00e9guer l&rsquo;int\u00e9gralit\u00e9 du traitement typographique de la figure \u00e0 l&rsquo;interpr\u00e9teur LaTeX du syst\u00e8me h\u00f4te via la directive de configuration suivante :<\/p>\n<p><code>plt.rcParams.update({'text.usetex': True, 'font.family': 'serif', 'font.serif': ['Computer Modern']})<\/code><\/p>\n<p>Lorsque cette option est activ\u00e9e, chaque fragment de texte, graduation num\u00e9rique ou libell\u00e9 d&rsquo;axe pr\u00e9sent sur le graphique est directement compos\u00e9 par le moteur LaTeX local de la machine, garantissant une reproduction rigoureusement identique des polices, des graisses et du cr\u00e9nage des symboles math\u00e9matiques par rapport au reste de votre manuscrit. Lors de l&rsquo;incorporation finale du fichier export\u00e9 au sein du document source TeX, l&rsquo;utilisation du paquetage standard <code>usepackage{graphicx}<\/code> coupl\u00e9e \u00e0 la directive <code>includegraphics[width=columnwidth]{figure_bivariee.pdf}<\/code> garantit un dimensionnement g\u00e9om\u00e9trique proportionnel irr\u00e9prochable au sein des colonnes de texte du mod\u00e8le \u00e9ditorial.<\/p>\n<h3>11.3 Automatisation de rapports dynamiques<\/h3>\n<p>Dans les contextes d&rsquo;analyse \u00e0 haut d\u00e9bit, d&rsquo;essais cliniques ou d&rsquo;ing\u00e9nierie pr\u00e9dictive, le tra\u00e7age manuel d&rsquo;un nuage de points et de sa r\u00e9gression devient rapidement contre-productif face \u00e0 des dizaines de paires de variables \u00e0 investiguer. L&rsquo;\u00e9laboration de pipelines automatis\u00e9s de production de rapports visuels s&rsquo;impose alors comme une n\u00e9cessit\u00e9 organisationnelle. Cette d\u00e9marche repose sur la conception de fonctions d&rsquo;encapsulation g\u00e9n\u00e9riques acceptant en param\u00e8tres d&rsquo;entr\u00e9e le DataFrame, les \u00e9tiquettes des variables \u00e0 corr\u00e9ler, ainsi que les chemins de sortie des fichiers.<\/p>\n<p>Ces modules peuvent \u00eatre harmonieusement orchestr\u00e9s au sein de carnets interactifs coupl\u00e9s \u00e0 des outils de compilation dynamique tels que Quarto, JupyterBook ou les moteurs de g\u00e9n\u00e9ration de rapports automatis\u00e9s bas\u00e9s sur Jinja2. L&rsquo;encapsulation de ces routines au sein d&rsquo;une architecture orient\u00e9e objet permet d&rsquo;it\u00e9rer de fa\u00e7on syst\u00e9matique sur des centaines de covariables tout en garantissant l&rsquo;application stricte d&rsquo;une charte graphique immuable (palette de couleurs institutionnelle, seuils de significativit\u00e9 uniformes et formats d&rsquo;exportation conformes).<\/p>\n<p>En couplant ce dispositif \u00e0 des frameworks de surveillance de mod\u00e8les de donn\u00e9es, il devient possible d&rsquo;archiver de mani\u00e8re versionn\u00e9e les instantan\u00e9s graphiques bivari\u00e9s de distributions \u00e0 mesure que de nouveaux volumes de donn\u00e9es empiriques sont ing\u00e9r\u00e9s dans les bases transactionnelles, pr\u00e9venant la d\u00e9rive conceptuelle (data drift) par un contr\u00f4le visuel et statistique continu.<\/p>\n<h2>12. Synth\u00e8se m\u00e9thodologique, bonnes pratiques et erreurs critiques \u00e0 \u00e9viter<\/h2>\n<h3>12.1 \u00c9cueils fr\u00e9quents d&rsquo;extrapolation et d&rsquo;interpr\u00e9tation causale<\/h3>\n<p>L&rsquo;aisance avec laquelle les biblioth\u00e8ques contemporaines de Python permettent de tracer une \u00e9l\u00e9gante droite d&rsquo;ajustement au travers d&rsquo;un nuage de points peut induire un sentiment trompeur de s\u00e9curit\u00e9 analytique. Le premier pi\u00e8ge m\u00e9thodologique majeur r\u00e9side dans l&rsquo;erreur d&rsquo;extrapolation abusive en dehors du domaine de validit\u00e9 empirique. Une \u00e9quation de r\u00e9gression ordinaire n&rsquo;est formellement calibr\u00e9e que sur l&rsquo;intervalle spatial d\u00e9limit\u00e9 par les valeurs minimale et maximale observ\u00e9es sur la variable explicative <em>[x_min, x_max]<\/em>. Projeter la droite d&rsquo;ajustement au-del\u00e0 de ces fronti\u00e8res empiriques pour pr\u00e9dire des comportements dans des r\u00e9gimes inexplor\u00e9s postule de mani\u00e8re totalement gratuite que la lin\u00e9arit\u00e9 locale observ\u00e9e perdure ind\u00e9finiment, m\u00e9connaissant les seuils de saturation, les ruptures structurelles ou les contraintes physiques des syst\u00e8mes r\u00e9els.<\/p>\n<p>Le second \u00e9cueil, immens\u00e9ment plus destructeur sur le plan \u00e9pist\u00e9mologique, consiste \u00e0 confondre la corr\u00e9lation statistique avec la causalit\u00e9 m\u00e9canique. L&rsquo;existence d&rsquo;une r\u00e9gression lin\u00e9aire hautement significative dot\u00e9e d&rsquo;un <em>R&sup2;<\/em> proche de l&rsquo;unit\u00e9 n&rsquo;atteste en rien que la variable <em>X<\/em> gouverne causalement les fluctuations de la variable <em>Y<\/em>. Cette relation conjointe peut r\u00e9sulter de multiples m\u00e9canismes alternatifs :<\/p>\n<ul>\n<li>Une causalit\u00e9 inverse, o\u00f9 <em>Y<\/em> est le moteur effectif influen\u00e7ant <em>X<\/em>.<\/li>\n<li>La pr\u00e9sence d&rsquo;une variable confondante latente omise (third-variable problem), agissant simultan\u00e9ment sur <em>X<\/em> et <em>Y<\/em> et engendrant une corr\u00e9lation fallacieuse (spurious correlation).<\/li>\n<li>Le biais de s\u00e9lection de l&rsquo;\u00e9chantillon ou le conditionnement sur un collisionneur (collider bias), cr\u00e9ant artificiellement une association lin\u00e9aire au sein de l&rsquo;\u00e9chantillon alors que les variables sont parfaitement ind\u00e9pendantes dans la population globale.<\/li>\n<\/ul>\n<p>L&rsquo;analyste veillera scrupuleusement \u00e0 mod\u00e9rer ses conclusions narratives en proscrivant les verbes \u00e0 vocation strictement causale (tels que \u00ab\u00a0provoque\u00a0\u00bb, \u00ab\u00a0induit\u00a0\u00bb ou \u00ab\u00a0d\u00e9termine\u00a0\u00bb) au profit de tournures \u00e9pist\u00e9miques d\u00e9crivant l&rsquo;association covariationnelle (comme \u00ab\u00a0s&rsquo;associe de mani\u00e8re monotone \u00e0\u00a0\u00bb ou \u00ab\u00a0est pr\u00e9dictif de\u00a0\u00bb), \u00e0 moins que le dispositif m\u00e9thodologique ne s&rsquo;appuie sur un essai randomis\u00e9 contr\u00f4l\u00e9 formel.<\/p>\n<h3>12.2 Liste de contr\u00f4le de conformit\u00e9 graphique et empirique<\/h3>\n<p>Avant d&rsquo;int\u00e9grer d\u00e9finitivement une visualisation bivari\u00e9e au sein d&rsquo;un manuscrit soumis \u00e0 relecture par les pairs ou d&rsquo;un rapport d\u00e9cisionnel strat\u00e9gique, il est imp\u00e9ratif de confronter la figure \u00e0 une grille de validation m\u00e9thodologique rigoureuse. Cette liste de contr\u00f4le r\u00e9sume les exigences incontournables garantes d&rsquo;une int\u00e9grit\u00e9 scientifique absolue :<\/p>\n<ul>\n<li><strong>Validation formelle des distributions :<\/strong> L&rsquo;inspection visuelle pr\u00e9alable a-t-elle confirm\u00e9 l&rsquo;absence de non-lin\u00e9arit\u00e9 prononc\u00e9e et l&rsquo;absence de regroupements multimodaux artificiels ?<\/li>\n<li><strong>Examen approfondi des r\u00e9sidus :<\/strong> Un graphique diagnostique des r\u00e9sidus a-t-il \u00e9t\u00e9 trac\u00e9 pour certifier l&rsquo;absence d&rsquo;h\u00e9t\u00e9rosc\u00e9dasticit\u00e9 caract\u00e9ris\u00e9e et la conformit\u00e9 \u00e0 l&rsquo;hypoth\u00e8se d&rsquo;homosc\u00e9dasticit\u00e9 ?<\/li>\n<li><strong>Typographie et \u00e9tiquetage dimensionnel :<\/strong> Les deux axes portent-ils des libell\u00e9s informatifs complets pr\u00e9cisant sans ambigu\u00eft\u00e9 les unit\u00e9s de mesure physiques ou psychom\u00e9triques entre parenth\u00e8ses ?<\/li>\n<li><strong>S\u00e9miotique et contraste chromatique :<\/strong> La palette de couleurs retenue est-elle v\u00e9rifi\u00e9e pour les personnes daltoniennes et conserve-t-elle sa pleine lisibilit\u00e9 contrastive lors d&rsquo;un tirage en niveaux de gris ?<\/li>\n<li><strong>Clarification de la nature de l&rsquo;intervalle :<\/strong> Si une zone ombrag\u00e9e englobe la droite, sa l\u00e9gende explicite-t-elle formellement s&rsquo;il s&rsquo;agit d&rsquo;un intervalle de confiance sur la moyenne conditionnelle (typiquement \u00e0 95 %) ou d&rsquo;un intervalle de pr\u00e9diction individuel ?<\/li>\n<li><strong>R\u00e9v\u00e9lation transparente des donn\u00e9es d&rsquo;origine :<\/strong> Le nuage de points est-il visible avec une opacit\u00e9 judicieusement calibr\u00e9e pour permettre d&rsquo;appr\u00e9cier la densit\u00e9 r\u00e9elle de l&rsquo;\u00e9chantillon sans masquer la droite de mod\u00e9lisation ?<\/li>\n<li><strong>Absence de bruit graphique :<\/strong> Les bordures sup\u00e9rieure et droite inutiles ont-elles \u00e9t\u00e9 \u00e9limin\u00e9es, et les lignes de grille ont-elles \u00e9t\u00e9 subordonn\u00e9es visuellement en arri\u00e8re-plan ?<\/li>\n<li><strong>R\u00e9solution et format d&rsquo;exportation :<\/strong> L&rsquo;exportation finale a-t-elle \u00e9t\u00e9 effectu\u00e9e dans un format vectoriel (PDF\/EPS) ou matriciel haute d\u00e9finition (PNG &ge; 300 DPI) exempt d&rsquo;art\u00e9facts de compression ?<\/li>\n<\/ul>\n<h3>12.3 Tableau comparatif des approches et arbre de d\u00e9cision programmatique<\/h3>\n<p>Pour guider le praticien dans le choix de l&rsquo;outil informatique le plus pertinent face \u00e0 un d\u00e9fi d&rsquo;analyse sp\u00e9cifique, le tableau synth\u00e9tique ci-dessous compare les trois approches fondamentales document\u00e9es au fil de ce guide :<\/p>\n<table>\n<thead>\n<tr>\n<th>Caract\u00e9ristique \/ Biblioth\u00e8que<\/th>\n<th>NumPy &amp; Matplotlib<\/th>\n<th>Seaborn (regplot \/ lmplot)<\/th>\n<th>Statsmodels &amp; Matplotlib<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Niveau d&rsquo;abstraction<\/strong><\/td>\n<td>Bas niveau (atomique et manuel)<\/td>\n<td>Haut niveau (statistique d\u00e9clarative)<\/td>\n<td>Interm\u00e9diaire (inf\u00e9rentiel formel)<\/td>\n<\/tr>\n<tr>\n<td><strong>Calcul des coefficients<\/strong><\/td>\n<td>Direct via <code>polyfit<\/code> (matriciel SVD)<\/td>\n<td>Automatis\u00e9 en interne<\/td>\n<td>Mod\u00e8le formel <code>sm.OLS<\/code> complet<\/td>\n<\/tr>\n<tr>\n<td><strong>Intervalle de confiance<\/strong><\/td>\n<td>Non automatis\u00e9 (formules manuelles requises)<\/td>\n<td>Automatis\u00e9 par d\u00e9faut (Bootstrapping)<\/td>\n<td>Analytique exact (Student \/ Fisher)<\/td>\n<\/tr>\n<tr>\n<td><strong>Intervalle de pr\u00e9diction<\/strong><\/td>\n<td>Manuel (calculs de variance d&rsquo;erreur)<\/td>\n<td>Non disponible nativement<\/td>\n<td>Direct via <code>get_prediction()<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>Stratification multivari\u00e9e<\/strong><\/td>\n<td>Boucles it\u00e9ratives manuelles<\/td>\n<td>Natif via <code>hue<\/code>, <code>col<\/code> et <code>row<\/code><\/td>\n<td>Manuel ou via l&rsquo;interface formula<\/td>\n<\/tr>\n<tr>\n<td><strong>Contr\u00f4le esth\u00e9tique fin<\/strong><\/td>\n<td>Illimit\u00e9 et absolu<\/td>\n<td>\u00c9l\u00e9gant par d\u00e9faut, personnalisable<\/td>\n<td>D\u00e9l\u00e9gu\u00e9 enti\u00e8rement \u00e0 Matplotlib<\/td>\n<\/tr>\n<tr>\n<td><strong>Tableau r\u00e9capitulatif complet<\/strong><\/td>\n<td>Non<\/td>\n<td>Non<\/td>\n<td>Oui (<code>results.summary()<\/code>)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Pour op\u00e9rer un choix programmatique coh\u00e9rent lors du d\u00e9marrage d&rsquo;une session d&rsquo;investigation de donn\u00e9es sous Python, l&rsquo;analyste se conformera \u00e0 la logique d\u00e9cisionnelle suivante :<\/p>\n<ul>\n<li>Si la priorit\u00e9 exclusive r\u00e9side dans l&rsquo;exploration visuelle ultra-rapide, la stratification multidimensionnelle selon plusieurs cat\u00e9gories d&rsquo;\u00e9chantillonnage et la communication pr\u00e9liminaire d&rsquo;une tendance : optez sans h\u00e9sitation pour <strong>Seaborn (<code>regplot<\/code> ou <code>lmplot<\/code>)<\/strong>.<\/li>\n<li>Si la finalit\u00e9 scientifique requiert une mod\u00e9lisation \u00e9conom\u00e9trique ou psychom\u00e9trique stricte, avec communication des erreurs-types robustes, tests d&rsquo;hypoth\u00e8ses sur la pente, analyse fine des leviers d&rsquo;influence (Cook) et trac\u00e9 rigoureux des intervalles de pr\u00e9diction individuels : optez pour le couplage <strong>Statsmodels et Matplotlib<\/strong>.<\/li>\n<li>Si le projet s&rsquo;inscrit au sein d&rsquo;un pipeline logiciel contraint exigeant une empreinte de d\u00e9pendance minimale, une ex\u00e9cution temps r\u00e9el \u00e0 ultra-haute vitesse sur de volumineuses matrices de calcul, ou l&rsquo;imbrication dans une interface graphique sur mesure : d\u00e9ployez la construction pas \u00e0 pas directe associant <strong>NumPy et Matplotlib<\/strong>.<\/li>\n<\/ul>\n<h2>R\u00e9f\u00e9rences<\/h2>\n<ul>\n<li>Anscombe, F. J. (1973). Graphs in statistical analysis. <em>The American Statistician<\/em>, 27(1), 17\u201321. <a rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1080\/00031305.1973.10478966\">https:\/\/doi.org\/10.1080\/00031305.1973.10478966<\/a><\/li>\n<li>Bertin, J. (1967). <em>S\u00e9miologie graphique : Les diagrammes, les r\u00e9seaux, les cartes<\/em>. \u00c9ditions Gauthier-Villars.<\/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-92bf1922-00a\">https:\/\/doi.org\/10.25080\/Majora-92bf1922-00a<\/a><\/li>\n<li>Seabold, S., &amp; Perktold, J. (2010). Statsmodels: Econometric and statistical modeling with Python. In <em>Proceedings of the 9th Python in Science Conference<\/em> (pp. 92\u201396). <a rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.25080\/Majora-92bf1922-011\">https:\/\/doi.org\/10.25080\/Majora-92bf1922-011<\/a><\/li>\n<li>Tufte, E. R. (2001). <em>The visual display of quantitative information<\/em> (2nd ed.). Graphics Press.<\/li>\n<li>Tukey, J. W. (1977). <em>Exploratory data analysis<\/em>. Addison-Wesley.<\/li>\n<li>van der Walt, S., Colbert, S. C., &amp; Varoquaux, G. (2011). The NumPy array: A structure for efficient numerical computation. <em>Computing in Science &amp; Engineering<\/em>, 13(2), 22\u201330. <a rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1109\/MCSE.2011.37\">https:\/\/doi.org\/10.1109\/MCSE.2011.37<\/a><\/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>Wilkinson, L. (2005). <em>The grammar of graphics<\/em> (2nd ed.). Springer-Verlag. <a rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1007\/0-387-28695-0\">https:\/\/doi.org\/10.1007\/0-387-28695-0<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>L&rsquo;analyse empirique contemporaine repose fondamentalement sur la capacit\u00e9 du chercheur et du praticien des donn\u00e9es \u00e0 synth\u00e9tiser visuellement des relations bivari\u00e9es complexes avant d&rsquo;en inf\u00e9rer des lois math\u00e9matiques. Dans le vaste r\u00e9pertoire de la s\u00e9miotique graphique, le nuage de points (scatterplot) combin\u00e9 \u00e0 une droite d&rsquo;ajustement constitue sans conteste l&rsquo;arch\u00e9type fondamental de l&rsquo;exploration statistique. Cette [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","categories":[],"tags":[],"class_list":["post-3837","psych_stat","type-psych_stat","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat\/3837","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=3837"}],"version-history":[{"count":1,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat\/3837\/revisions"}],"predecessor-version":[{"id":16556,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat\/3837\/revisions\/16556"}],"wp:attachment":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3837"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3837"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3837"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}