{"id":616,"date":"2016-10-25T20:36:34","date_gmt":"2016-10-25T20:36:34","guid":{"rendered":"https:\/\/www.ephiquant.com\/?p=616"},"modified":"2016-10-25T20:38:54","modified_gmt":"2016-10-25T20:38:54","slug":"reduction-de-dimension-analyse-en-composant-principal-avec-python","status":"publish","type":"post","link":"https:\/\/www.ephiquant.com\/?p=616","title":{"rendered":"R\u00e9duction de dimension : Analyse en Composant Principal (avec Python)"},"content":{"rendered":"<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">Pour \u00e9tudier ou d\u00e9crire un ph\u00e9nom\u00e8ne\u00a0statistique, il est dans l&#8217;ordre des choses de penser que la prise en compte d&#8217;un nombre important de variable am\u00e9liorerait ou apporterait plus d&#8217;information \u00e0 la compr\u00e9hension du dit ph\u00e9nom\u00e8ne. Malheureusement, cette logique qui consiste \u00e0 prendre en compte un nombre important de variables pour gagner en information remet en cause la significativit\u00e9 de cette derni\u00e8re. C&#8217;est l&#8217;un des aspects de ce que nous appelons <strong><span style=\"color: #0000ff;\">la<\/span> <span style=\"color: #0000ff;\">mal\u00e9diction de la dimensionnalit\u00e9 ou The curse of dimensionality\u00a0<\/span><\/strong>(moins\u00a0effrayant\u00a0en anglais). En effet, plus on n&#8217;a de variables ou de dimensions, plus on a besoin d&#8217;un \u00e9chantillon de taille plus importante pour assurer la pertinence ou la significativit\u00e9 de l&#8217;information que l&#8217;on peut lire des donn\u00e9es.<\/p>\n<p style=\"text-align: justify;\">Pour venir about de ce fl\u00e9au qui mine l&#8217;analyse du <strong>Big Data<\/strong>, nous pouvons opter pour une r\u00e9duction du dimensions\u00a0ce qui implique une perte d&#8217;informations mais, perte ma\u00eetris\u00e9e car nous pouvons alors d\u00e9cider de la quantit\u00e9 d&#8217;informations que nous voulons conserver des donn\u00e9es originales et donc am\u00e9liorer la significativit\u00e9 de nos conclusions. La m\u00e9thode qui permet de r\u00e9aliser une telle prouesse, \u00a0<span style=\"color: #0000ff;\"><strong>Analyse en Composant Principal<\/strong>\u00a0<\/span>(ou <span style=\"color: #0000ff;\"><strong>ACP<\/strong><\/span>\u00a0seulement pour les intimes),a \u00e9t\u00e9 propos\u00e9e par <strong>Karl Pearson<\/strong> d\u00e8s 1901 .<\/p>\n<h3 style=\"text-align: justify;\">Les\u00a0caract\u00e9ristiques des composants principaux<\/h3>\n<h4>D\u00e9finition<\/h4>\n<p>Au del\u00e0 de la simple r\u00e9duction de dimension, l&#8217;ACP est une m\u00e9thode visant \u00e0 <strong>sy<\/strong><strong>nth\u00e9tiser l&#8217;information<\/strong> contenue dans l&#8217;ensemble des variables. En fait, elle appartient \u00e0 un ensemble d&#8217;algorithmes de l&#8217;<strong>apprentissage machine<\/strong> ou <strong>machine learning<\/strong> dits non supervis\u00e9s car ne n\u00e9cessitant pas de variable d\u00e9pendante. Elle tire avantage de la variance des variables plus pr\u00e9cis\u00e9ment de la corr\u00e9lation entre elles en \u00e9liminant\u00a0la redondance de l&#8217;information contenue dans les variables. Il faut faire attention \u00e0 ce niveau, l&#8217;ACP ne permet pas d&#8217;\u00e9liminer des variables ! Elle op\u00e8re \u00e0 travers un proc\u00e9d\u00e9 math\u00e9matique qui\u00a0transforme un nombre important de variables qui sont probablement corr\u00e9l\u00e9es en un nombre inf\u00e9rieur de variables non corr\u00e9l\u00e9es appel\u00e9es\u00a0<span style=\"color: #0000ff;\"><strong>Composant Principal<\/strong><\/span>, du fait de leur caract\u00e8re \u00e0 absorber le maximum d&#8217;information ou de variance dans les variables de d\u00e9part. <style type=\"text\/css\" scoped=\"scoped\">.alert-6a10b97953b1c{background-color:#f5f5f5;border-width:0px;border-radius:0px;} <\/style><div class=\"alert magee-alert  alert-6a10b97953b1c \" role=\"alert\" id= \"\"><i class=\"fa fa-exclamation-circle\"><\/i>Il faut noter que l&#8217;ACP n\u2019op\u00e8re que sur des variables quantitatives, pour les variables qualitatives ou un mixte il faut se r\u00e9f\u00e9rer aux autres m\u00e9thodes de ce que nous appelons l&#8217;<strong>Analyse Factorielle<\/strong>(famille de m\u00e9thodes \u00e0 laquelle l&#8217;ACP appartient). Car la r\u00e9duction\u00a0du nombre des variables\u00a0ne se fait pas par une\u00a0simple omission\u00a0de certains d&#8217;entre elles, mais par\u00a0la construction de nouvelles variables ou facteur synth\u00e9tique obtenus en combinant les variables\u00a0originales.<\/div>\n<p style=\"text-align: justify;\">Concr\u00e8tement, pour <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/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;\"\/> dimensions ou variables, nous avons <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/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;\"\/> composants principaux ob\u00e9issant au principes suivants :<\/p>\n<ul>\n<li style=\"text-align: justify;\">&#8211; Le premier composant principal, est une combinaison <strong>lin\u00e9aire<\/strong> des variables originales, qui maximise la variance dans les donn\u00e9es. G\u00e9om\u00e9triquement parlant, ce dernier d\u00e9termine le sens de variation maximale dans les donn\u00e9es. En bref, c&#8217;est le composant principal qui absorbe le maximum d&#8217;information.<\/li>\n<li style=\"text-align: justify;\">&#8211; Le second composant principal est \u00e9galement une combinaison lin\u00e9aire des variables originales, qui maximise la variance avec la condition de<strong> non-corr\u00e9lation<\/strong> avec le pr\u00e9c\u00e9dent composant principal.<\/li>\n<li style=\"text-align: justify;\">&#8211; Le reste des composants, ob\u00e9it \u00e0 la r\u00e8gle du second composant principal.<\/li>\n<\/ul>\n<h4>Formalisation<\/h4>\n<p style=\"text-align: justify;\">Consid\u00e9rons <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-d4ee28752517d6062a3ca0314890342d_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#88;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"16\" style=\"vertical-align: 0px;\"\/>, la matrice des donn\u00e9es num\u00e9riques de dimension <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-8a2fed65a18e15c681e48b5911491842_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#110;&#32;&#92;&#116;&#105;&#109;&#101;&#115;&#32;&#112;\" title=\"Rendered by QuickLaTeX.com\" height=\"13\" width=\"41\" style=\"vertical-align: -4px;\"\/>, de moyenne <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-461fe1a58a75801541487ddf10d32abd_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#109;&#117;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"11\" style=\"vertical-align: -4px;\"\/> et de variance ou covariance <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-14fb1e14301ad034b94e3db3ff52c0c9_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#83;&#105;&#103;&#109;&#97;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"12\" style=\"vertical-align: 0px;\"\/>, dans laquelle, chaque individu <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-d33c164f455b97af0a78c1c0eaac4383_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#101;&#95;&#105;\" title=\"Rendered by QuickLaTeX.com\" height=\"11\" width=\"13\" style=\"vertical-align: -3px;\"\/> est d\u00e9crit par les variables\u00a0num\u00e9riques <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-f30a1cd539e803355d68506bd4024f91_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#88;&#95;&#49;&#44;&#32;&#88;&#95;&#50;&#44;&#32;&#88;&#95;&#51;&#32;&#92;&#100;&#111;&#116;&#115;&#32;&#88;&#95;&#112;\" title=\"Rendered by QuickLaTeX.com\" height=\"18\" width=\"131\" style=\"vertical-align: -6px;\"\/>. on appelle composant principal <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-0b6bee8520da5edf684479b6d6ab7d36_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#90;&#95;&#105;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"16\" style=\"vertical-align: -3px;\"\/>, la combinaison lin\u00e9aire des variables qui s&#8217;exprime comme ceci :<\/p>\n<p class=\"ql-center-displayed-equation\" style=\"line-height: 75px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-53d760665c715b82dcdbfc1bec4df222_l3.png\" height=\"75\" width=\"473\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#091;&#92;&#98;&#101;&#103;&#105;&#110;&#123;&#115;&#112;&#108;&#105;&#116;&#125;&#32;&#90;&#95;&#105;&#38;&#61;&#87;&#95;&#123;&#105;&#49;&#125;&#88;&#95;&#49;&#43;&#87;&#95;&#123;&#105;&#50;&#125;&#88;&#95;&#50;&#43;&#87;&#95;&#123;&#105;&#51;&#125;&#88;&#95;&#51;&#43;&#92;&#100;&#111;&#116;&#115;&#32;&#43;&#87;&#95;&#123;&#105;&#112;&#125;&#88;&#95;&#112;&#32;&#92;&#92;&#32;&#32;&#90;&#95;&#105;&#32;&#38;&#61;&#32;&#87;&#95;&#123;&#105;&#125;&#94;&#92;&#116;&#111;&#112;&#32;&#88;&#32;&#92;&#116;&#101;&#120;&#116;&#123;&#44;&#32;&#97;&#118;&#101;&#99;&#32;&#99;&#111;&#109;&#109;&#101;&#32;&#118;&#97;&#114;&#105;&#97;&#110;&#99;&#101;&#125;&#32;&#92;&#92;&#32;&#92;&#115;&#105;&#103;&#109;&#97;&#94;&#123;&#50;&#125;&#40;&#122;&#41;&#95;&#105;&#61;&#87;&#95;&#123;&#105;&#125;&#94;&#92;&#116;&#111;&#112;&#32;&#92;&#83;&#105;&#103;&#109;&#97;&#32;&#87;&#95;&#105;&#32;&#92;&#101;&#110;&#100;&#123;&#115;&#112;&#108;&#105;&#116;&#125;&#92;&#093;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p>\n<p> \u00a0o\u00f9 <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-b2dbe80664427d1ba351eef5d9b8a390_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#87;&#95;&#105;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"22\" style=\"vertical-align: -3px;\"\/> est un vecteur de <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/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;\"\/> constante.<\/p>\n<p style=\"text-align: justify;\">Nous devons comme mentionner pr\u00e9c\u00e9demment trouver <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-b2dbe80664427d1ba351eef5d9b8a390_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#87;&#95;&#105;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"22\" style=\"vertical-align: -3px;\"\/>\u00a0et en suite\u00a0<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-0b6bee8520da5edf684479b6d6ab7d36_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#90;&#95;&#105;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"16\" style=\"vertical-align: -3px;\"\/>, telle que la variance <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-7feaaec226f9028b6a874a2959b6e972_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#115;&#105;&#103;&#109;&#97;&#94;&#123;&#50;&#125;&#40;&#122;&#41;&#95;&#105;\" title=\"Rendered by QuickLaTeX.com\" height=\"19\" width=\"46\" style=\"vertical-align: -4px;\"\/>\u00a0soit maximale avec <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-43e4205cede93e21564988621762b393_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#115;&#117;&#109;&#95;&#123;&#106;&#125;&#94;&#123;&#112;&#125;&#32;&#119;&#94;&#123;&#50;&#125;&#95;&#123;&#105;&#106;&#125;&#32;&#61;&#32;&#49;\" title=\"Rendered by QuickLaTeX.com\" height=\"23\" width=\"86\" style=\"vertical-align: -8px;\"\/> ou <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-8a263e6295d42748b65ae5e8b409b543_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#87;&#95;&#123;&#105;&#125;&#94;&#92;&#116;&#111;&#112;&#32;&#87;&#95;&#105;&#61;&#49;\" title=\"Rendered by QuickLaTeX.com\" height=\"20\" width=\"85\" style=\"vertical-align: -5px;\"\/> (en fait,\u00a0on introduit cette contrainte pour \u00e9viter que\u00a0<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-3db02d97d73d86d9a72d3c3924a1d3bf_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#87;&#95;&#123;&#105;&#125;&#32;&#92;&#114;&#105;&#103;&#104;&#116;&#97;&#114;&#114;&#111;&#119;&#32;&#92;&#105;&#110;&#102;&#116;&#121;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"67\" style=\"vertical-align: -3px;\"\/>).<\/p>\n<ul>\n<li style=\"text-align: justify;\">&#8211; \u00a0Pour le premier composant principal <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/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=\"16\" width=\"17\" style=\"vertical-align: -4px;\"\/>, nous avons le programme suivant \u00e0 r\u00e9soudre :\n<p class=\"ql-center-displayed-equation\" style=\"line-height: 54px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-2f05075a5aabf3ea83e353853030089e_l3.png\" height=\"54\" width=\"223\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#091;&#32;&#92;&#98;&#101;&#103;&#105;&#110;&#123;&#99;&#97;&#115;&#101;&#115;&#125;&#92;&#98;&#101;&#103;&#105;&#110;&#123;&#97;&#108;&#105;&#103;&#110;&#101;&#100;&#125;&#32;&#32;&#92;&#116;&#101;&#120;&#116;&#123;&#77;&#97;&#120;&#125;&#32;&#38;&#32;&#38;&#32;&#92;&#115;&#105;&#103;&#109;&#97;&#94;&#123;&#50;&#125;&#40;&#122;&#41;&#95;&#49;&#38;&#61;&#87;&#95;&#123;&#49;&#125;&#94;&#92;&#116;&#111;&#112;&#32;&#92;&#83;&#105;&#103;&#109;&#97;&#32;&#87;&#95;&#49;&#92;&#92;&#32;&#92;&#116;&#101;&#120;&#116;&#123;&#115;&#99;&#46;&#32;&#100;&#101;&#125;&#32;&#38;&#32;&#38;&#32;&#87;&#95;&#123;&#49;&#125;&#94;&#92;&#116;&#111;&#112;&#32;&#87;&#95;&#49;&#38;&#61;&#49;&#32;&#92;&#101;&#110;&#100;&#123;&#97;&#108;&#105;&#103;&#110;&#101;&#100;&#125;&#32;&#92;&#101;&#110;&#100;&#123;&#99;&#97;&#115;&#101;&#115;&#125;&#32;&#92;&#093;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p>\n<p> En utilisant le multiplicateur de Lagrange on obtient que :<\/p>\n<p class=\"ql-center-displayed-equation\" style=\"line-height: 15px;\"><span class=\"ql-right-eqno\"> (1) <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-b9616324b22706555e65408f58c43867_l3.png\" height=\"15\" width=\"102\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#98;&#101;&#103;&#105;&#110;&#123;&#101;&#113;&#117;&#97;&#116;&#105;&#111;&#110;&#42;&#125;&#92;&#83;&#105;&#103;&#109;&#97;&#32;&#87;&#95;&#49;&#61;&#92;&#108;&#97;&#109;&#98;&#100;&#97;&#95;&#49;&#32;&#87;&#95;&#49;&#92;&#101;&#110;&#100;&#123;&#101;&#113;&#117;&#97;&#116;&#105;&#111;&#110;&#42;&#125;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p>\n<\/li>\n<li style=\"text-align: justify;\">&#8211; Pour le second composant principal <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-6f0405823738a0c109017c3b1f6695f3_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#90;&#95;&#50;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"18\" style=\"vertical-align: -3px;\"\/>, nous aurons \u00e0 r\u00e9soudre :\u00a0\n<p class=\"ql-center-displayed-equation\" style=\"line-height: 77px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-36b5f8e8b8a5027d27db2a4b975e377c_l3.png\" height=\"77\" width=\"224\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#091;&#32;&#92;&#98;&#101;&#103;&#105;&#110;&#123;&#99;&#97;&#115;&#101;&#115;&#125;&#92;&#98;&#101;&#103;&#105;&#110;&#123;&#97;&#108;&#105;&#103;&#110;&#101;&#100;&#125;&#32;&#32;&#92;&#116;&#101;&#120;&#116;&#123;&#77;&#97;&#120;&#125;&#32;&#38;&#32;&#38;&#32;&#92;&#115;&#105;&#103;&#109;&#97;&#94;&#123;&#50;&#125;&#40;&#122;&#41;&#95;&#50;&#38;&#61;&#87;&#95;&#123;&#50;&#125;&#94;&#92;&#116;&#111;&#112;&#32;&#92;&#83;&#105;&#103;&#109;&#97;&#32;&#87;&#95;&#50;&#92;&#92;&#32;&#92;&#116;&#101;&#120;&#116;&#123;&#115;&#99;&#46;&#32;&#100;&#101;&#125;&#32;&#38;&#32;&#38;&#32;&#87;&#95;&#123;&#50;&#125;&#94;&#92;&#116;&#111;&#112;&#32;&#87;&#95;&#50;&#38;&#61;&#49;&#32;&#92;&#92;&#32;&#38;&#32;&#38;&#32;&#87;&#95;&#123;&#50;&#125;&#94;&#92;&#116;&#111;&#112;&#32;&#87;&#95;&#49;&#38;&#61;&#48;&#92;&#101;&#110;&#100;&#123;&#97;&#108;&#105;&#103;&#110;&#101;&#100;&#125;&#32;&#92;&#101;&#110;&#100;&#123;&#99;&#97;&#115;&#101;&#115;&#125;&#32;&#92;&#093;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p>\n<p>\u00a0En utilisant le multiplicateur de Lagrange on obtient que :<\/p>\n<p class=\"ql-center-displayed-equation\" style=\"line-height: 14px;\"><span class=\"ql-right-eqno\"> (2) <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-30eb7054888f2f5bdd0b3cb5684bfc4d_l3.png\" height=\"14\" width=\"103\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#98;&#101;&#103;&#105;&#110;&#123;&#101;&#113;&#117;&#97;&#116;&#105;&#111;&#110;&#42;&#125;&#92;&#83;&#105;&#103;&#109;&#97;&#32;&#87;&#95;&#50;&#61;&#92;&#108;&#97;&#109;&#98;&#100;&#97;&#95;&#50;&#32;&#87;&#95;&#50;&#92;&#101;&#110;&#100;&#123;&#101;&#113;&#117;&#97;&#116;&#105;&#111;&#110;&#42;&#125;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p>\n<\/li>\n<li>&#8211; \u00a0 \u00a0Pour le reste des composants principaux, on utilise le programme du second composant en incr\u00e9mentant pour <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-695d9d59bd04859c6c99e7feb11daab6_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#105;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"6\" style=\"vertical-align: 0px;\"\/>\u00a0 allant de \u00a03 \u00e0\u00a0<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/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;\"\/> composant principal. on obtiendra de mani\u00e8re g\u00e9n\u00e9rale que :\u00a0\n<p class=\"ql-center-displayed-equation\" style=\"line-height: 14px;\"><span class=\"ql-right-eqno\"> (3) <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-dcff73cc113720ed52cc854f4e863a7d_l3.png\" height=\"14\" width=\"97\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#98;&#101;&#103;&#105;&#110;&#123;&#101;&#113;&#117;&#97;&#116;&#105;&#111;&#110;&#42;&#125;&#92;&#83;&#105;&#103;&#109;&#97;&#32;&#87;&#95;&#105;&#61;&#92;&#108;&#97;&#109;&#98;&#100;&#97;&#95;&#105;&#32;&#87;&#95;&#105;&#92;&#101;&#110;&#100;&#123;&#101;&#113;&#117;&#97;&#116;&#105;&#111;&#110;&#42;&#125;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p>\n<\/li>\n<\/ul>\n<p>La premi\u00e8re remarque que l&#8217;on fait c&#8217;est que pour que les \u00e9quations (1), (2) soient possibles et de fa\u00e7on g\u00e9n\u00e9rale l&#8217;\u00e9quation (3) , il faudrait que les vecteurs <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-b2dbe80664427d1ba351eef5d9b8a390_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#87;&#95;&#105;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"22\" style=\"vertical-align: -3px;\"\/> et les valeurs <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-130188abd4690d701177358e4ad96950_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#108;&#97;&#109;&#98;&#100;&#97;&#95;&#105;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"15\" style=\"vertical-align: -3px;\"\/> soient respectivement des\u00a0<strong>vecteurs et valeurs propres<\/strong> de <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-14fb1e14301ad034b94e3db3ff52c0c9_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#83;&#105;&#103;&#109;&#97;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"12\" style=\"vertical-align: 0px;\"\/>. Mieux encore on peut donc conclure que :\u00a0<\/p>\n<p class=\"ql-center-displayed-equation\" style=\"line-height: 22px;\"><span class=\"ql-right-eqno\"> (4) <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-43307359e1a5ad73fa15a38d049d2800_l3.png\" height=\"22\" width=\"287\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#98;&#101;&#103;&#105;&#110;&#123;&#101;&#113;&#117;&#97;&#116;&#105;&#111;&#110;&#42;&#125;&#92;&#115;&#105;&#103;&#109;&#97;&#94;&#123;&#50;&#125;&#40;&#122;&#41;&#95;&#105;&#61;&#86;&#97;&#114;&#091;&#87;&#95;&#123;&#105;&#125;&#94;&#92;&#116;&#111;&#112;&#32;&#88;&#093;&#32;&#61;&#32;&#87;&#95;&#123;&#105;&#125;&#94;&#92;&#116;&#111;&#112;&#92;&#83;&#105;&#103;&#109;&#97;&#32;&#87;&#95;&#105;&#32;&#61;&#32;&#92;&#108;&#97;&#109;&#98;&#100;&#97;&#95;&#105;&#92;&#101;&#110;&#100;&#123;&#101;&#113;&#117;&#97;&#116;&#105;&#111;&#110;&#42;&#125;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p>\n<p>\u00a0Autrement dit, la variance d&#8217;un \u00a0composant principal est \u00e9gale \u00e0 la valeur propre de la matrice de variance &#8211; covariance <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-14fb1e14301ad034b94e3db3ff52c0c9_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#83;&#105;&#103;&#109;&#97;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"12\" style=\"vertical-align: 0px;\"\/>.\u00a0 <style type=\"text\/css\" scoped=\"scoped\">.alert-6a10b97953b55{background-color:#f5f5f5;border-width:0px;border-radius:0px;} <\/style><div class=\"alert magee-alert  alert-6a10b97953b55 \" role=\"alert\" id= \"\"><i class=\"fa fa-exclamation-circle\"><\/i>En pratique, les variables <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-998dba373bb08119e12a646c873be88c_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#88;&#95;&#105;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"20\" style=\"vertical-align: -3px;\"\/>, sont centr\u00e9es et r\u00e9duites pour annihiler l&#8217;effet de la diff\u00e9rence des unit\u00e9s ou des \u00e9chelles de mesures de chaque variable sur la variance. Cette standardisation n&#8217;est pas n\u00e9cessaire si les variables sont toutes dans la m\u00eame unit\u00e9 mais il est toujours conseill\u00e9 de la faire<\/div>\n<h4>Crit\u00e8re de r\u00e9tention d&#8217;un composant principal<\/h4>\n<p>Une fois, nos composants d\u00e9terminer, nous devons retenir ceux ayant des variances importantes et ignorer ceux ayant de faibles variances. Pour ce faire on peut se baser sur les\u00a0crit\u00e8res suivantes( ce ne sont pas des lois) :<\/p>\n<ul>\n<li>Retenir les <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-3422b6bb5c160593658b7c39425d9880_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#107;\" title=\"Rendered by QuickLaTeX.com\" height=\"13\" width=\"9\" style=\"vertical-align: 0px;\"\/> composants ayant une valeur propre sup\u00e9rieure \u00e0 1(Crit\u00e8re de Kaiser &#8211; Guttman)<\/li>\n<li>Retenir les <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-3422b6bb5c160593658b7c39425d9880_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#107;\" title=\"Rendered by QuickLaTeX.com\" height=\"13\" width=\"9\" style=\"vertical-align: 0px;\"\/> composants dont les valeurs propres pr\u00e9c\u00e9dent la cassure de la courbe on parle aussi du coude<\/li>\n<li>Retenir les <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-3422b6bb5c160593658b7c39425d9880_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#107;\" title=\"Rendered by QuickLaTeX.com\" height=\"13\" width=\"9\" style=\"vertical-align: 0px;\"\/> premiers composants qui expliquent <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-c216e969a834e958abd849b18246c1be_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#121;&#37;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"9\" style=\"vertical-align: -4px;\"\/> de la variance.<\/li>\n<li>Retenir les <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-3422b6bb5c160593658b7c39425d9880_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#107;\" title=\"Rendered by QuickLaTeX.com\" height=\"13\" width=\"9\" style=\"vertical-align: 0px;\"\/> premiers composants dont la part ou proportion de variance est sup\u00e9rieur \u00e0 la moyenne( <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-0af556714940c351c933bba8cf840796_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#121;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"9\" style=\"vertical-align: -4px;\"\/> % &gt; <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-664c1e23a2bec1dcc0c325cd1c1d72b6_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#49;&#47;&#112;\" title=\"Rendered by QuickLaTeX.com\" height=\"18\" width=\"26\" style=\"vertical-align: -5px;\"\/>%)<\/li>\n<\/ul>\n<h3>Tutoriel, impl\u00e9mentation\u00a0avec Python<\/h3>\n<p>Nous allons utiliser\u00a0les donn\u00e9es issues du rapport 2016 de <a href=\"http:\/\/www.heritage.org\/\">Heritage<\/a>. Elle contiennent 7 variables \u00e9conomiques de\u00a0169 pays. Nous aurons besoin d&#8217;installer et d&#8217;importer les packages suivants pour l&#8217;impl\u00e9mentation de l&#8217;ACP :<\/p>\n<pre class=\"lang:python decode:true\">import pandas as pd\r\nimport numpy as  np\r\nfrom matplotlib import pyplot as plt\r\nfrom mpl_toolkits.mplot3d import Axes3D\r\nimport seaborn as sns<\/pre>\n<h4>Chargement\u00a0et description statistique des donn\u00e9es :<\/h4>\n<p>Nos donn\u00e9es sont stock\u00e9es sous format <strong>.csv<\/strong>, aussi nous allons utiliser la fonction <span style=\"color: #0000ff;\">read_csv()<\/span> de la librairie <span style=\"color: #0000ff;\">pandas<\/span> :<\/p>\n<pre class=\"lang:python decode:true\">url = 'https:\/\/docs.google.com\/spreadsheets\/d\/1Qk4qNu8dZSBbw_cPgZC0r-jIDt7gLFp0ra0cyoqpCbY\/pub?output=csv'\r\ndb = pd.read_csv(filepath_or_buffer= url, sep=',')\r\ndb.head()\r\ndb.tail()\r\ndb.dtypes # types de variables\r\ndb.shape<\/pre>\n<p>Ensuite nous allons avec la fonction <span style=\"color: #0000ff;\">describe()<\/span>\u00a0 obtenir une description statistique des donn\u00e9es, nous avons les principaux indicateurs de tendance centrale et de dispersion :<\/p>\n<pre class=\"lang:python decode:true \">&gt;&gt;&gt; # Renommer les variables \r\n&gt;&gt;&gt; db.columns = ['Pays','Region','pop','pib','chomage',\r\n...              'inflation','ide','dette_publik',\r\n...              'corrup_indice']\r\n&gt;&gt;&gt; # visualisation des mesures de statistique descriptive\r\n... db.describe()\r\n               pop           pib     chomage   inflation            ide  \\\r\ncount   169.000000    169.000000  169.000000  169.000000     169.000000   \r\nmean     41.968047    638.236864    8.820118    4.419231    7244.549112   \r\nstd     147.034910   2068.930753    7.209696    6.961893   17993.503001   \r\nmin       0.300000      1.090000    0.300000   -1.600000   -4956.680000   \r\n25%       3.600000     27.130000    4.300000    0.910000     363.270000   \r\n50%       9.500000     81.120000    6.900000    2.900000    1200.000000   \r\n75%      30.600000    409.330000   10.900000    5.990000    4901.840000   \r\nmax    1367.800000  17617.320000   60.000000   62.170000  128500.000000   \r\n\r\n       dette_publik  corrup_indice  \r\ncount    169.000000     169.000000  \r\nmean      50.195799      42.875148  \r\nstd       34.436074      19.835297  \r\nmin        0.000000       6.700000  \r\n25%       29.800000      28.000000  \r\n50%       41.600000      38.000000  \r\n75%       65.000000      55.000000  \r\nmax      246.400000      92.000000<\/pre>\n<p>Pour la visualisation graphique compte tenu du nombre de variables, les projeter individuellement nous donnerait un travail de longue haleine. Heureusement, avec la fonction <span style=\"color: #0000ff;\">PairGrid()<\/span>\u00a0de la librairie <span style=\"color: #0000ff;\">seaborn<\/span> nous pouvons faire une analyse graphique des variables\u00a0prises deux \u00e0 deux et m\u00eame visualiser la distribution de ces derni\u00e8res.<\/p>\n<pre class=\"lang:python decode:true\"># log - transfomation et exclusion des NAN\r\nlogdb = pd.concat([np.log10(db.ix[:,2:9])], \r\n               axis=1).replace([np.inf, - np.inf],\r\n                               np.nan).dropna()\r\ng = sns.PairGrid(logdb)\r\ng.map_upper(sns.regplot) \r\ng.map_lower(plt.scatter)\r\ng.map_diag(plt.hist)  \r\nplt.show()<\/pre>\n<p>Dans notre cas au vu des caract\u00e9ristiques des donn\u00e9es nous avons d&#8217;abord proc\u00e9d\u00e9 \u00e0 une log-transformation des donn\u00e9es(\u00e0 des fins de visualisations compte tenu de la disparit\u00e9 des \u00e9chelles des donn\u00e9es intra-et inter- variables) ensuite nous avons opt\u00e9 pour des nuages de points et des histogrammes :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-658\" src=\"https:\/\/www.ephiquant.com\/wp-content\/uploads\/2016\/10\/scatter_matrix.png\" alt=\"scatter_matrix\" width=\"1033\" height=\"521\" srcset=\"https:\/\/www.ephiquant.com\/wp-content\/uploads\/2016\/10\/scatter_matrix.png 1702w, https:\/\/www.ephiquant.com\/wp-content\/uploads\/2016\/10\/scatter_matrix-300x151.png 300w, https:\/\/www.ephiquant.com\/wp-content\/uploads\/2016\/10\/scatter_matrix-768x387.png 768w, https:\/\/www.ephiquant.com\/wp-content\/uploads\/2016\/10\/scatter_matrix-1024x516.png 1024w\" sizes=\"auto, (max-width: 1033px) 100vw, 1033px\" \/><\/p>\n<p>Vous pourriez naturellement remplacer les donn\u00e9es <span class=\"lang:python decode:true crayon-inline \">np.nan<\/span>\u00a0, par les valeurs minimales ou tout autre mode de traitement de ce type de donn\u00e9es. Nous avons choisi de les exclure. Les coefficients de corr\u00e9lations s&#8217;obtiennent comme ceci :<\/p>\n<pre class=\"lang:python decode:true\">&gt;&gt;&gt; db.ix[:,2:9].corr().round(2)\r\n                pop   pib  chomage  inflation   ide  dette_publik  \\\r\npop            1.00  0.77    -0.11       0.03  0.55          0.03   \r\npib            0.77  1.00    -0.10      -0.02  0.71          0.17   \r\nchomage       -0.11 -0.10     1.00      -0.05 -0.13          0.15   \r\ninflation      0.03 -0.02    -0.05       1.00 -0.08         -0.06   \r\nide            0.55  0.71    -0.13      -0.08  1.00          0.08   \r\ndette_publik   0.03  0.17     0.15      -0.06  0.08          1.00   \r\ncorrup_indice -0.04  0.14    -0.05      -0.31  0.33          0.27   \r\n\r\n               corrup_indice  \r\npop                    -0.04  \r\npib                     0.14  \r\nchomage                -0.05  \r\ninflation              -0.31  \r\nide                     0.33  \r\ndette_publik            0.27  \r\ncorrup_indice           1.00<\/pre>\n<h4>Standardisation des donn\u00e9es<\/h4>\n<p>Comme mentionner pr\u00e9c\u00e9demment, il est imp\u00e9ratif de centrer\u00a0et r\u00e9duire les variables\u00a0sur lesquelles nous allons proc\u00e9der \u00e0 une ACP :<\/p>\n<pre class=\"lang:python decode:true \">S = np.diag(1\/db.ix[:,2:9].std())\r\nmu = np.matrix(db.ix[:,2:9].mean())\r\nU = np.matrix([np.ones(db.ix[:,2:9].shape[0])])\r\nX = pd.DataFrame((db.ix[:,2:9] - U.T.dot(mu)).dot(S).values,columns = db.columns[2:9])<\/pre>\n<p>Pour centrer et r\u00e9duire, on peut utiliser des op\u00e9rations matricielles comme ci-dessous o\u00f9 recourir \u00e0 la fonction <span class=\"lang:python decode:true crayon-inline\">StandardScaler().fit_transform(db.ix[:,2:9])<\/span>\u00a0, pr\u00e9c\u00e9d\u00e9e du chargement\u00a0suivant\u00a0<span class=\"lang:python decode:true crayon-inline\">from sklearn.preprocessing import StandardScaler<\/span><\/p>\n<h4>D\u00e9termination\u00a0des valeurs et vecteurs propres<\/h4>\n<p>La fonction <span style=\"color: #0000ff;\">np.linalg.eig()<\/span>, permet d&#8217;obtenir et les valeurs et les vecteurs propres, malheureusement ces derniers ne sont souvent dans un ordre\u00a0souhait\u00e9 :<\/p>\n<pre class=\"lang:python decode:true\">&gt;&gt;&gt; Var_X = X.cov() # obtenir la matrice variance covariance\r\n&gt;&gt;&gt; val_propres,vec_propres = np.linalg.eig(Var_X)\r\n&gt;&gt;&gt; ordre = val_propres.argsort()[::-1]\r\n&gt;&gt;&gt; val_propres = val_propres[ordre]\r\n&gt;&gt;&gt; vec_propres = vec_propres[:,ordre]\r\n&gt;&gt;&gt; val_propres\r\narray([ 2.47139835,  1.4481121 ,  1.07579038,  0.87588825,  0.63277798,\r\n        0.32250087,  0.17353206])\r\n&gt;&gt;&gt; vec_propres\r\narray([[ 0.51905632,  0.2882542 , -0.13257068,  0.17093657,  0.21782766,\r\n        -0.53914789, -0.51241236],\r\n       [ 0.58653886,  0.11708648, -0.12470379,  0.05594056,  0.06492594,\r\n        -0.04484539,  0.78572009],\r\n       [-0.11658595, -0.22448201, -0.7330986 ,  0.51089215, -0.36917483,\r\n        -0.03559414, -0.00376848],\r\n       [-0.07545644,  0.52547596, -0.32138423, -0.60612799, -0.48618549,\r\n        -0.10539125,  0.00432858],\r\n       [ 0.54983653, -0.02099039,  0.0833643 ,  0.02866106, -0.34878119,\r\n         0.67811177, -0.32860957],\r\n       [ 0.14086425, -0.44646528, -0.49822193, -0.53615785,  0.46196584,\r\n         0.14032646, -0.10968929],\r\n       [ 0.21237656, -0.613931  ,  0.26641679, -0.22574925, -0.4905187 ,\r\n        -0.46411971,  0.00534719]])\r\n<\/pre>\n<p>Notez ici que nous\u00a0aurions pu proc\u00e9der \u00e0 la d\u00e9composition avec la fonction <span class=\"lang:python decode:true crayon-inline \">np.linalg.svd(Var_X)<\/span>\u00a0. Par ailleurs, nous allons calculer ci-dessous l&#8217;\u00e9cart- type, la part ou proportion de variance de chaque composant ainsi que le cumul de variance expliqu\u00e9e afin de\u00a0mieux visualiser la contribution de chaque\u00a0composants principal :<\/p>\n<pre class=\"lang:python decode:true\">row = [\"Comp.\" + str(i+1) for i in range(7)]\r\ncol = [\"Std deviation\",\"Prop.of Variance(%)\",\"Cumulative Prop.(%)\"]\r\ntot = sum(val_propres)\r\nres_1 = pd.DataFrame([[i**0.5,np.round(i*100 \/tot,2),np.round(j*100\/tot,2)]\r\n                      for i,j in zip(val_propres,np.cumsum(val_propres))],\r\n                        columns= col,index = row)\r\nres_2 = pd.DataFrame(vec_propres,columns = row,\r\n                                 index = db.columns[2:9])<\/pre>\n<h4>Choix des composants principaux :<\/h4>\n<p>D&#8217;une part dans l&#8217;objet <span class=\"lang:python decode:true crayon-inline \">res_1<\/span>\u00a0, nous pouvons lire que le premier composant principal capture\u00a0\u00e0 lui seul 35% de l&#8217;information ou variance et le deuxi\u00e8me composant 20%&#8230;etc<\/p>\n<pre class=\"lang:python decode:true\">&gt;&gt;&gt; res_1\r\n        Std deviation  Prop.of Variance(%)  Cumulative Prop.(%)\r\nComp.1       1.572068                35.31                35.31\r\nComp.2       1.203375                20.69                55.99\r\nComp.3       1.037203                15.37                71.36\r\nComp.4       0.935889                12.51                83.87\r\nComp.5       0.795473                 9.04                92.91\r\nComp.6       0.567892                 4.61                97.52\r\nComp.7       0.416572                 2.48               100.00<\/pre>\n<p>Aussi, le cumul des proportions nous montre que les deux premiers composants n&#8217;expliquent que 55% de la variance ce que nous jugeons insuffisant donc nous allons retenir les trois premiers composants qui capturent 71%.<\/p>\n<pre class=\"lang:python decode:true\">plt.clf()\r\nplt.subplot(211)\r\nplt.axis([0.5,7.5,0,105])\r\nplt.bar(range(1,8), res_1.ix[:,1], alpha=0.5,\r\n             align='center',\r\n            label=\"Proportion of Variance(%)\")\r\nplt.step(range(1,8),res_1.ix[:,2], where='mid',\r\n             label=\"Cumulative Proportion(%)\")\r\nplt.ylabel(\"Variance expliqu\u00e9e\")\r\nplt.xlabel(\"Composant principal\")\r\nplt.legend(loc='best')\r\nplt.subplot(212)\r\nplt.axis([0.5,7.5,0,40])\r\nplt.plot(range(1,8),res_1.ix[:,1], linestyle='--',\r\n              marker='o', color='black')\r\nplt.ylabel(\"Valeur propres\")\r\nplt.xlabel(\"Composant principal\")\r\nplt.title(\"Scree plot\")\r\nplt.tight_layout()\r\nplot.show()<\/pre>\n<p>Ce tableau peut \u00eatre visualiser graphiquement,\u00a0on lit sur le deuxi\u00e8me graphique, le <strong>Scree plot<\/strong> notamment que le point de cassure ou le coude,\u00a0se trouve\u00a0au niveau du troisi\u00e8me composant et compte tenu de l&#8217;importance de l&#8217;information contenue dans ce troisi\u00e8me composant \u00a0soit 15%(&gt; \u00e0 la moyenne (1\/7 ~ 14%)).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-669 size-full\" src=\"https:\/\/www.ephiquant.com\/wp-content\/uploads\/2016\/10\/screeplot.png\" alt=\"screeplot\" width=\"867\" height=\"802\" srcset=\"https:\/\/www.ephiquant.com\/wp-content\/uploads\/2016\/10\/screeplot.png 867w, https:\/\/www.ephiquant.com\/wp-content\/uploads\/2016\/10\/screeplot-300x278.png 300w, https:\/\/www.ephiquant.com\/wp-content\/uploads\/2016\/10\/screeplot-768x710.png 768w\" sizes=\"auto, (max-width: 867px) 100vw, 867px\" \/><\/p>\n<p>D&#8217;autres part, dans l&#8217;objet <span class=\"lang:python decode:true crayon-inline \">res_2<\/span>\u00a0, nous avons les vecteurs propres ou la contribution de chaque variable \u00e0 chaque composant. Et comme d\u00e9cid\u00e9 ci-dessus, nous allons extraire seulement les 3 premiers composants ainsi que leur vecteur.<\/p>\n<h4>R\u00e9duction de dimension et projection graphique<\/h4>\n<p>Nous arrivons donc \u00e0 la fin de cet article, nous allons passer d&#8217;un espace \u00e0 7 dimensions(ce qui \u00e9tait impossible \u00e0 projeter graphiquement) \u00e0 \u00a0un sous espace de 3 dimensions(le maximum qu&#8217;on peut faire graphiquement parlant), ce qui va nous conduire \u00e0 r\u00e9aliser une projection en 3D \u00e0 la place de l&#8217;habituel <strong>biplot<\/strong>(dans le cas de deux composants principaux).<\/p>\n<pre class=\"lang:python decode:true\">&gt;&gt;&gt; W = res_2.ix[:,0:3]  # extration des vecteurs propres \r\n&gt;&gt;&gt; Z = pd.concat([db.ix[:,0:2],X.dot(W)],axis = 1)\r\n&gt;&gt;&gt; Z.head()\r\n          Pays                                 Region    Comp.1    Comp.2    Comp.3 \r\n0  Afghanistan                           Asia-Pacific -0.936261  1.480023  0.188455 \r\n1      Albania                                 Europe -0.599799 -0.525962 -1.024873   \r\n2      Algeria             Middle East \/ North Africa -0.449635  0.610582  0.488135   \r\n3       Angola                     Sub-Saharan Africa -0.837208  1.129783 -0.079627 \r\n4    Argentina  South and Central America \/ Caribbean -0.382677  2.837451 -1.586402  \r\n<\/pre>\n<p>Pour finir, dans le code ci-dessus, nous avons\u00a0calculer les\u00a0<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ephiquant.com\/wp-content\/ql-cache\/quicklatex.com-b114b73dad1cd01ce9680a466bc64a48_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#90;&#61;&#32;&#87;&#94;&#92;&#116;&#111;&#112;&#32;&#88;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"83\" style=\"vertical-align: 0px;\"\/> qui vont servir \u00e0 r\u00e9aliser le graphique ci-dessous :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-673 size-full\" src=\"https:\/\/www.ephiquant.com\/wp-content\/uploads\/2016\/10\/princp-1.png\" alt=\"princp\" width=\"1702\" height=\"858\" srcset=\"https:\/\/www.ephiquant.com\/wp-content\/uploads\/2016\/10\/princp-1.png 1702w, https:\/\/www.ephiquant.com\/wp-content\/uploads\/2016\/10\/princp-1-300x151.png 300w, https:\/\/www.ephiquant.com\/wp-content\/uploads\/2016\/10\/princp-1-768x387.png 768w, https:\/\/www.ephiquant.com\/wp-content\/uploads\/2016\/10\/princp-1-1024x516.png 1024w\" sizes=\"auto, (max-width: 1702px) 100vw, 1702px\" \/><\/p>\n<p>On peut voir sur le graphique les USA, la Chine et l&#8217;inde se distinguer du lot sur l&#8217;axe du CP1,ce dernier met avant notamment\u00a0des pays \u00e0 Population importante mais aussi \u00e0 fort PIB, l&#8217;axe du CP2 des pays \u00e0 fort taux corruption,d&#8217;inflation\u00a0&#8230;etc vous maintenant !<\/p>\n <style type=\"text\/css\" scoped=\"scoped\">.alert-6a10b97953b9e{background-color:#f5f5f5;border-width:0px;border-radius:0px;} <\/style><div class=\"alert magee-alert  alert-6a10b97953b9e \" role=\"alert\" id= \"\"><i class=\"fa fa-exclamation-circle\"><\/i> Il faut noter qu&#8217;on peut se passer de ce long cheminement\u00a0en recourant \u00e0 la librairie <span style=\"color: #0000ff;\">scikit-learn<\/span>(le couteau Suisse des algorithmes machine learning sous\u00a0python), comme on l&#8217;a d\u00e9j\u00e0 vu\u00a0plus haut ce package contient aussi la fonction pour standardiser les donn\u00e9es:<\/p>\n<pre class=\"lang:python decode:true\">from sklearn.decomposition import PCA as princomp\r\ncpa = princomp(n_components=3)\r\nZ = cpa.fit_transform(X)\r\n<\/pre>\n<\/div>\n<pre class=\"lang:python decode:true \">colour =('orange', 'white', 'black','violet','green','yellow')\r\nregion = tuple(Z.ix[:,1].unique())\r\nplt.close()\r\nfig= plt.figure(figsize=(20,20))\r\nax = Axes3D(fig)\r\nfor i, j in zip(region,colour):\r\n        ax.scatter(Z.ix[Z.Region==i, 2],\r\n                    Z.ix[Z.Region==i, 3],\r\n                    Z._ix[Z.Region==i,4],\r\n                    label=i,\r\n                    c=j,s=30)\r\nax.plot([0], [0], [0], 'o', markersize=12,\r\n        color='red')\r\nfor s,lab in zip(vec_propres,res_2.index):\r\n    ax.plot([0, s[0]], [0, s[1]],\r\n           [0, s[2]], color='red', lw=2)\r\n    ax.text(s[0],\r\n            s[1],\r\n            s[2],lab,size = 7,color='red')\r\nfor n,t in zip(Z.index,Z._ix[:,0]):\r\n        ax.text(Z.ix[n, 2],\r\n                Z.ix[n, 3],\r\n                Z.ix[n, 4],t,size = 5,color = 'darkblue')\r\nax.set_xlabel('Composant Principal 1(~ 35%)')\r\nax.set_ylabel('Composant Principal 2(~ 21%)')\r\nax.set_zlabel('Composant Principal 3(~ 15%)')\r\nplt.show()<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<div class=\"d_reactions\" data-post-id=\"616\" data-post-url=\"https:\/\/www.ephiquant.com\/?p=616\" data-post-title=\"R\u00e9duction de dimension : Analyse en Composant Principal (avec Python)\" data-post-img=\"\"><\/div> <!-- Check out https:\/\/reactandshare.com -->","protected":false},"excerpt":{"rendered":"<p>Pour \u00e9tudier ou d\u00e9crire un ph\u00e9nom\u00e8ne\u00a0statistique, il est dans l&#8217;ordre des choses de penser que la prise en compte d&#8217;un nombre important de variable am\u00e9liorerait ou apporterait plus d&#8217;information \u00e0 la compr\u00e9hension du dit ph\u00e9nom\u00e8ne. Malheureusement, cette logique qui consiste [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35,34,36,27,21,28],"tags":[69,71,73,70,72,74],"class_list":["post-616","post","type-post","status-publish","format-standard","hentry","category-analyse-des-donnees","category-analyse-quantitative","category-data-mining","category-data-science","category-python","category-statistique","tag-acp","tag-analyse-en-composant-principal","tag-curse-of-dimensionality","tag-principla-component-analysis","tag-reduction-de-dimension","tag-scikit-learn"],"_links":{"self":[{"href":"https:\/\/www.ephiquant.com\/index.php?rest_route=\/wp\/v2\/posts\/616","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ephiquant.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ephiquant.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ephiquant.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ephiquant.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=616"}],"version-history":[{"count":55,"href":"https:\/\/www.ephiquant.com\/index.php?rest_route=\/wp\/v2\/posts\/616\/revisions"}],"predecessor-version":[{"id":676,"href":"https:\/\/www.ephiquant.com\/index.php?rest_route=\/wp\/v2\/posts\/616\/revisions\/676"}],"wp:attachment":[{"href":"https:\/\/www.ephiquant.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=616"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ephiquant.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=616"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ephiquant.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=616"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}