{"id":709,"date":"2026-10-09T17:54:05","date_gmt":"2026-10-09T15:54:05","guid":{"rendered":"https:\/\/www.ranksignal.fr\/blog\/?p=709"},"modified":"2026-10-14T17:17:42","modified_gmt":"2026-10-14T15:17:42","slug":"le-principal-component-regression-pcr","status":"publish","type":"post","link":"https:\/\/www.ranksignal.fr\/blog\/machine-learning\/le-principal-component-regression-pcr\/","title":{"rendered":"La PCR : changer de colonnes avant de faire la r\u00e9gression"},"content":{"rendered":"<p><\/p>\n<p>Sur 200 march\u00e9s, les ventes semblent grimper avec la presse \u00e9crite. Puis tu ajoutes la radio au mod\u00e8le, et l&rsquo;effet de la presse s&rsquo;\u00e9vapore : presse et radio \u00e9voluent ensemble, et la presse seule \u00ab captait \u00bb en r\u00e9alit\u00e9 une partie de l&rsquo;effet de la radio. Plut\u00f4t que d&rsquo;arbitrer entre deux colonnes qui se recoupent, la r\u00e9gression sur composantes principales (PCR) en fabrique de nouvelles qui ne se recoupent plus. \u00c0 la fin, tu sauras ce qu&rsquo;elle construit, ce qu&rsquo;elle r\u00e8gle et comment l&rsquo;\u00e9crire en Python.<\/p>\n<p><strong>Sommaire<\/strong><\/p>\n<ul>\n<li><a href=\"#l-essentiel-en-30-secondes\">L&rsquo;essentiel en 30 secondes<\/a><\/li>\n<li><a href=\"#deux-situations-ou-les-moindres-carres-se-perdent\">Deux situations o\u00f9 les moindres carr\u00e9s se perdent<\/a><\/li>\n<li><a href=\"#le-principe-changer-les-colonnes-garder-le-modele\">Le principe : changer les colonnes, garder le mod\u00e8le<\/a><\/li>\n<li><a href=\"#fabriquer-les-composantes\">Fabriquer les composantes<\/a><\/li>\n<li><a href=\"#choisir-m-et-l-ecrire-en-python\">Choisir M et l&rsquo;\u00e9crire en Python<\/a><\/li>\n<\/ul>\n<h2 id=\"l-essentiel-en-30-secondes\">L&rsquo;essentiel en 30 secondes<\/h2>\n<ul>\n<li>La PCR est une <strong>r\u00e9gression en deux temps<\/strong> : on remplace les <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-3bf85f1087e9fbed3a319341134ac1a2_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#112;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"10\" style=\"vertical-align: -4px;\"\/> pr\u00e9dicteurs par <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-156b2eb1c82bbc119aca5f1ae9122029_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#77;&#32;&#60;&#32;&#112;\" title=\"Rendered by QuickLaTeX.com\" height=\"16\" width=\"52\" style=\"vertical-align: -4px;\"\/> combinaisons lin\u00e9aires, puis on les confie \u00e0 une r\u00e9gression ordinaire.<\/li>\n<li>Ces combinaisons sont les <strong>composantes principales<\/strong>, calcul\u00e9es sans jamais consulter la r\u00e9ponse.<\/li>\n<li>Deux composantes successives sont non corr\u00e9l\u00e9es : la r\u00e9gression finale n&rsquo;a <strong>plus de colonnes qui se recoupent<\/strong>.<\/li>\n<li>La PCR reste utilisable quand il y a <strong>plus de colonnes que de lignes<\/strong>, cas o\u00f9 les moindres carr\u00e9s ordinaires \u00e9chouent.<\/li>\n<li>Le nombre <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-10ebb71bad275c1815a8f2a8c5dea0be_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#77;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"19\" style=\"vertical-align: 0px;\"\/> est un r\u00e9glage, fix\u00e9 par <strong>validation crois\u00e9e<\/strong>.<\/li>\n<\/ul>\n<h2 id=\"deux-situations-ou-les-moindres-carres-se-perdent\">Deux situations o\u00f9 les moindres carr\u00e9s se perdent<\/h2>\n<p>La <a href=\"\/blog\/machine-learning\/qu-est-ce-qu-une-regression-lineaire\/\" title=\"r\u00e9gression ordinaire\">r\u00e9gression ordinaire<\/a> se comporte bien quand les colonnes apportent des informations distinctes et que les lignes sont nombreuses. Deux cas la prennent en d\u00e9faut, et la PCR vise les deux.<\/p>\n<h3>Des colonnes qui disent presque la m\u00eame chose<\/h3>\n<p>Reprends nos 200 march\u00e9s. Une r\u00e9gression des ventes sur la presse \u00e9crite seule montrait un effet net ; avec la t\u00e9l\u00e9vision et la radio dans le mod\u00e8le, il devient quasiment nul et non significatif. Rien de contradictoire : l\u00e0 o\u00f9 l&rsquo;on d\u00e9pense plus en radio, on d\u00e9pense aussi plus en presse. Ce ph\u00e9nom\u00e8ne s&rsquo;appelle la <strong>colin\u00e9arit\u00e9<\/strong> : plusieurs pr\u00e9dicteurs sont fortement corr\u00e9l\u00e9s, et leurs effets deviennent difficiles \u00e0 s\u00e9parer.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef46c4d701&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef46c4d701\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1229\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_collinearite_contours_rss-scaled.png\" alt=\"Deux cartes de contours de la somme des carr\u00e9s r\u00e9siduels selon deux coefficients : \u00e0 gauche, des ellipses resserr\u00e9es autour d'un minimum net ; \u00e0 droite, des contours tr\u00e8s \u00e9tir\u00e9s en diagonale, o\u00f9 le minimum est mal d\u00e9termin\u00e9\" class=\"wp-image-310\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_collinearite_contours_rss-scaled.png 2560w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_collinearite_contours_rss-300x144.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_collinearite_contours_rss-1024x492.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_collinearite_contours_rss-768x369.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_collinearite_contours_rss-1536x737.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_collinearite_contours_rss-2048x983.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Compare les deux cartes : \u00e0 gauche, la cuvette a un fond pr\u00e9cis ; \u00e0 droite, des pr\u00e9dicteurs fortement corr\u00e9l\u00e9s l&rsquo;\u00e9tirent en une vall\u00e9e \u00e9troite, et la position exacte du minimum devient floue.<\/figcaption><\/figure>\n\n\n<p>Un indicateur chiffre ce flou, le facteur d&rsquo;inflation de la variance (VIF) : <strong>au-del\u00e0 de 5 ou 10<\/strong>, la colin\u00e9arit\u00e9 devient pr\u00e9occupante. Deux rem\u00e8des classiques existent : retirer l&rsquo;une des variables redondantes, ou combiner les variables colin\u00e9aires en un seul indicateur synth\u00e9tique. Garde cette seconde id\u00e9e en t\u00eate : la PCR travaille exactement dans cet esprit.<\/p>\n<h3>Plus de colonnes que de lignes<\/h3>\n<p>Imagine des centaines de milliers de mutations g\u00e9n\u00e9tiques mesur\u00e9es sur quelques centaines de patients, ou des dizaines de milliers de termes pour quelques milliers de documents. Quand le nombre de variables <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-3bf85f1087e9fbed3a319341134ac1a2_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#112;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"10\" style=\"vertical-align: -4px;\"\/> d\u00e9passe celui des observations <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-b170995d512c659d8668b4e42e1fef6b_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#110;\" title=\"Rendered by QuickLaTeX.com\" height=\"8\" width=\"11\" style=\"vertical-align: 0px;\"\/>, on parle de haute dimension.<\/p>\n<p>Dans ce r\u00e9gime, les moindres carr\u00e9s ordinaires deviennent inutilisables : <strong>une infinit\u00e9 de solutions<\/strong> reproduisent l&rsquo;entra\u00eenement sans la moindre erreur (RSS nul), et pr\u00e9disent pourtant tr\u00e8s mal des donn\u00e9es nouvelles. La r\u00e9duction de dimension, elle, reste applicable, parce qu&rsquo;elle impose au mod\u00e8le final une forme de simplicit\u00e9.<\/p>\n<h2 id=\"le-principe-changer-les-colonnes-garder-le-modele\">Le principe : changer les colonnes, garder le mod\u00e8le<\/h2>\n<p>La PCR ne touche pas \u00e0 la r\u00e9gression elle-m\u00eame : elle change ce qu&rsquo;on lui donne \u00e0 manger. On construit <strong><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-156b2eb1c82bbc119aca5f1ae9122029_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#77;&#32;&#60;&#32;&#112;\" title=\"Rendered by QuickLaTeX.com\" height=\"16\" width=\"52\" style=\"vertical-align: -4px;\"\/> combinaisons lin\u00e9aires<\/strong> des pr\u00e9dicteurs d&rsquo;origine, not\u00e9es <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-74a4a0dbaab2127a3cd9a611006d8123_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#90;&#95;&#49;&#44;&#32;&#92;&#100;&#111;&#116;&#115;&#44;&#32;&#90;&#95;&#77;\" title=\"Rendered by QuickLaTeX.com\" height=\"16\" width=\"85\" style=\"vertical-align: -4px;\"\/>, puis on les utilise comme pr\u00e9dicteurs d&rsquo;un mod\u00e8le de r\u00e9gression ordinaire.<\/p>\n<p>Le mod\u00e8le final s&rsquo;\u00e9crit donc :<\/p>\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 17px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-0cbb93f007f365cb713e30f56d310c50_l3.png\" height=\"17\" width=\"290\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91; &#92;&#104;&#97;&#116;&#123;&#121;&#125;&#32;&#61;&#32;&#92;&#98;&#101;&#116;&#97;&#95;&#48;&#32;&#43;&#32;&#92;&#98;&#101;&#116;&#97;&#95;&#49;&#32;&#90;&#95;&#49;&#32;&#43;&#32;&#92;&#98;&#101;&#116;&#97;&#95;&#50;&#32;&#90;&#95;&#50;&#32;&#43;&#32;&#92;&#100;&#111;&#116;&#115;&#32;&#43;&#32;&#92;&#98;&#101;&#116;&#97;&#95;&#77;&#32;&#90;&#95;&#77;&#32;&#46;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\n<p>Les coefficients <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-ef81a2c0bdead414e593522b61143eb0_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#98;&#101;&#116;&#97;&#95;&#109;\" title=\"Rendered by QuickLaTeX.com\" height=\"17\" width=\"22\" style=\"vertical-align: -4px;\"\/> portent sur les composantes <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-5cdc407753eaa4e52094bfba1608f610_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#90;&#95;&#109;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"23\" style=\"vertical-align: -3px;\"\/>, pas sur les variables de d\u00e9part. Ces composantes sont fabriqu\u00e9es en observant uniquement les pr\u00e9dicteurs : la r\u00e9ponse <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-82606c3098bb09002088b0f6f9ffbb2a_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#89;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"14\" style=\"vertical-align: 0px;\"\/> n&rsquo;est jamais consult\u00e9e \u00e0 cette \u00e9tape.<\/p>\n<p>Ce proc\u00e9d\u00e9 repose sur une hypoth\u00e8se de travail. Si les directions o\u00f9 les pr\u00e9dicteurs varient le plus sont aussi les plus li\u00e9es \u00e0 la r\u00e9ponse, quelques composantes suffisent \u00e0 porter l&rsquo;essentiel du signal utile, hypoth\u00e8se raisonnable en pratique mais jamais garantie. Le gain : beaucoup moins de param\u00e8tres \u00e0 estimer, donc <strong>moins de risque de surajustement<\/strong>.<\/p>\n<h2 id=\"fabriquer-les-composantes\">Fabriquer les composantes<\/h2>\n<p>Pour voir d&rsquo;o\u00f9 sortent les <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-5cdc407753eaa4e52094bfba1608f610_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#90;&#95;&#109;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"23\" style=\"vertical-align: -3px;\"\/>, pars de deux pr\u00e9dicteurs seulement.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef46c4db99&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef46c4db99\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2100\" height=\"1650\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch05_reduction_dimension_composantes_principales.png\" alt=\"Nuage de points \u00e0 deux variables avec deux droites orange : la premi\u00e8re, en trait plein, suit la direction o\u00f9 le nuage s'\u00e9tire le plus ; la seconde, en pointill\u00e9s, lui est perpendiculaire\" class=\"wp-image-309\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch05_reduction_dimension_composantes_principales.png 2100w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch05_reduction_dimension_composantes_principales-300x236.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch05_reduction_dimension_composantes_principales-1024x805.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch05_reduction_dimension_composantes_principales-768x603.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch05_reduction_dimension_composantes_principales-1536x1207.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch05_reduction_dimension_composantes_principales-2048x1609.png 2048w\" sizes=\"auto, (max-width: 2100px) 100vw, 2100px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Le trait plein \u00e9pouse l&rsquo;\u00e9tirement maximal du nuage : c&rsquo;est la premi\u00e8re composante. Le pointill\u00e9, perpendiculaire, prend la direction qui reste.<\/figcaption><\/figure>\n\n\n<p>La premi\u00e8re composante est la combinaison lin\u00e9aire des pr\u00e9dicteurs dont la variance est la plus grande :<\/p>\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 17px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-fbb5122ca4ff9ba02b1a964346770633_l3.png\" height=\"17\" width=\"274\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91; &#90;&#95;&#49;&#32;&#61;&#32;&#92;&#112;&#104;&#105;&#95;&#123;&#49;&#49;&#125;&#88;&#95;&#49;&#32;&#43;&#32;&#92;&#112;&#104;&#105;&#95;&#123;&#50;&#49;&#125;&#88;&#95;&#50;&#32;&#43;&#32;&#92;&#100;&#111;&#116;&#115;&#32;&#43;&#32;&#92;&#112;&#104;&#105;&#95;&#123;&#112;&#49;&#125;&#88;&#95;&#112;&#32;&#46;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\n<p>Chaque <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-3bae4ed0f7bf769e8a337fc3ca92ae3e_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#112;&#104;&#105;&#95;&#123;&#106;&#49;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"18\" width=\"23\" style=\"vertical-align: -6px;\"\/> est le poids du pr\u00e9dicteur <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-7bf3b88c1697cfce46b4312aba73541a_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#88;&#95;&#106;\" title=\"Rendered by QuickLaTeX.com\" height=\"18\" width=\"21\" style=\"vertical-align: -6px;\"\/>. Les poids sont li\u00e9s par <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-c0bb5da4a2678aa2885a3295446baaf3_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#115;&#117;&#109;&#95;&#106;&#32;&#92;&#112;&#104;&#105;&#95;&#123;&#106;&#49;&#125;&#94;&#50;&#32;&#61;&#32;&#49;\" title=\"Rendered by QuickLaTeX.com\" height=\"23\" width=\"85\" style=\"vertical-align: -8px;\"\/> ; sans ce garde-fou, il suffirait de multiplier tous les poids pour faire exploser la variance.<\/p>\n<p>Pour la deuxi\u00e8me, m\u00eame recette sous une condition suppl\u00e9mentaire : <strong>aucune corr\u00e9lation avec la premi\u00e8re<\/strong>, ce qui revient \u00e0 lui \u00eatre perpendiculaire. La suite s&rsquo;encha\u00eene jusqu&rsquo;\u00e0 <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-3bf85f1087e9fbed3a319341134ac1a2_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#112;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"10\" style=\"vertical-align: -4px;\"\/> composantes, de moins en moins riches en variance ; la PCR s&rsquo;arr\u00eate aux <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-10ebb71bad275c1815a8f2a8c5dea0be_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#77;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"19\" style=\"vertical-align: 0px;\"\/> premi\u00e8res.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef46c4df98&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef46c4df98\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1280\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_acp_composantes_principales_projection-scaled.png\" alt=\"Deux panneaux : \u00e0 gauche, un nuage de points avec la droite PC1 qui suit son grand axe ; \u00e0 droite, les m\u00eames points ramen\u00e9s \u00e0 leur seule position sur cette droite, le \u00ab score sur PC1 \u00bb\" class=\"wp-image-390\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_acp_composantes_principales_projection-scaled.png 2560w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_acp_composantes_principales_projection-300x150.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_acp_composantes_principales_projection-1024x512.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_acp_composantes_principales_projection-768x384.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_acp_composantes_principales_projection-1536x768.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_acp_composantes_principales_projection-2048x1024.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n<p style=\"text-align: center;\"><em>Regarde le panneau de droite : chaque observation est r\u00e9duite \u00e0 un seul nombre, sa position le long de PC1. Ce nombre est la valeur de <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-6226b34569d7d55bd64e6f80529e96d9_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#90;&#95;&#49;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"17\" style=\"vertical-align: -3px;\"\/> pour cette observation, et c&rsquo;est lui qui devient une colonne de la r\u00e9gression.<\/em><\/p>\n<p>Reviens maintenant au probl\u00e8me du d\u00e9but. Comme deux composantes successives sont non corr\u00e9l\u00e9es, les <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-10ebb71bad275c1815a8f2a8c5dea0be_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#77;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"19\" style=\"vertical-align: 0px;\"\/> colonnes qui entrent dans la r\u00e9gression <strong>ne se recoupent plus<\/strong> : l\u00e0 o\u00f9 presse et radio se disputaient un m\u00eame effet, la r\u00e9gression travaille sur des axes ind\u00e9pendants.<\/p>\n<h2 id=\"choisir-m-et-l-ecrire-en-python\">Choisir M et l&rsquo;\u00e9crire en Python<\/h2>\n<p>Le nombre de composantes <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-10ebb71bad275c1815a8f2a8c5dea0be_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#77;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"19\" style=\"vertical-align: 0px;\"\/> n&rsquo;est pas calcul\u00e9 : c&rsquo;est un r\u00e9glage que tu fixes. On fait varier <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-10ebb71bad275c1815a8f2a8c5dea0be_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#77;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"19\" style=\"vertical-align: 0px;\"\/>, on \u00e9value chaque mod\u00e8le par validation crois\u00e9e et l&rsquo;on retient la valeur qui donne la meilleure erreur de test estim\u00e9e, avec en pratique <strong>5 ou 10 blocs<\/strong>.<\/p>\n<p>Imagine un tableau <code>X<\/code> de pr\u00e9dicteurs et une r\u00e9ponse <code>Y<\/code>, d\u00e9j\u00e0 charg\u00e9s, avec un entier <code>M<\/code> \u00e0 tester. Le bloc ci-dessous est une session interactive : <code>In [24]:<\/code> d\u00e9signe la commande num\u00e9ro 24 de la session.<\/p>\n<pre><code>In [24]: pca = PCA(n_components=M)\n         linreg = skl.LinearRegression()\n         pipe = Pipeline([('pca', pca),\n                            ('linreg', linreg)])\n         pipe.fit(X, Y)\n<\/code><\/pre>\n<p>Chaque ligne a son r\u00f4le : <code>PCA(n_components=M)<\/code> fabrique les <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-10ebb71bad275c1815a8f2a8c5dea0be_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#77;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"19\" style=\"vertical-align: 0px;\"\/> premi\u00e8res composantes, <code>skl.LinearRegression()<\/code> est la r\u00e9gression ordinaire, et le <code>Pipeline<\/code> les encha\u00eene, si bien qu&rsquo;un seul <code>pipe.fit(X, Y)<\/code> ex\u00e9cute les deux temps de la m\u00e9thode. Il reste \u00e0 relancer ce bloc pour chaque valeur de <code>M<\/code> et \u00e0 comparer les erreurs de validation crois\u00e9e.<\/p>\n<blockquote>\n<p><strong>\ud83d\udccc \u00c0 retenir<\/strong> La PCR vaut le d\u00e9tour quand tes pr\u00e9dicteurs se recoupent (un VIF au-del\u00e0 de 5 ou 10) ou quand ils d\u00e9passent tes observations en nombre. Elle consiste en deux gestes : fabriquer <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-10ebb71bad275c1815a8f2a8c5dea0be_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#77;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"19\" style=\"vertical-align: 0px;\"\/> colonnes qui ne se recoupent pas, sans regarder la r\u00e9ponse, puis r\u00e9gresser dessus.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Deux colonnes qui se recoupent brouillent la r\u00e9gression. La PCR les remplace par des composantes principales : principe, choix de M et code Python.<\/p>\n","protected":false},"author":1,"featured_media":708,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-709","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-machine-learning"],"_links":{"self":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/709","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/comments?post=709"}],"version-history":[{"count":3,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/709\/revisions"}],"predecessor-version":[{"id":785,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/709\/revisions\/785"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/media\/708"}],"wp:attachment":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/media?parent=709"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/categories?post=709"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/tags?post=709"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}