diff --git a/.gitignore b/.gitignore index 5ca0973..4e99f81 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .DS_Store +.Rproj.user diff --git a/Analyse Multidimensionnelle/DM ACP/.Rhistory b/Analyse Multidimensionnelle/DM ACP/.Rhistory new file mode 100644 index 0000000..e69de29 diff --git a/Analyse Multidimensionnelle/DM ACP/DM ACP.Rproj b/Analyse Multidimensionnelle/DM ACP/DM ACP.Rproj new file mode 100644 index 0000000..8e3c2eb --- /dev/null +++ b/Analyse Multidimensionnelle/DM ACP/DM ACP.Rproj @@ -0,0 +1,13 @@ +Version: 1.0 + +RestoreWorkspace: Default +SaveWorkspace: Default +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: Sweave +LaTeX: pdfLaTeX diff --git a/Analyse Multidimensionnelle/DM ACP/DM_ACP.Rmd b/Analyse Multidimensionnelle/DM ACP/DM_ACP.Rmd new file mode 100644 index 0000000..3dccd52 --- /dev/null +++ b/Analyse Multidimensionnelle/DM ACP/DM_ACP.Rmd @@ -0,0 +1,120 @@ +--- +title: "DM Statistique exploratoire multidimensionelle" +output: + pdf_document: default + html_document: + df_print: paged +--- + +------------------------------------------------------------------------ + +Ce devoir maison est à rendre individuellement au plus tard le 1er mars 2024 sous format RMarkdown (.Rmd) à l'adresse mail de votre chargé de TD. Vous veillerez à respecter la structure du document en répondant aux questions directement dans celui-ci. Des cellules vides de code ont été ajoutées en dessous de chaque question, libre à vous d'en rajouter d'autres si vous voulez segmenter vos réponses. Vous renommerez votre fichier réponse avec votre NOM et Prénom (ex: NOM_Prénom_DM_ACP.Rmd) + +------------------------------------------------------------------------ + +```{r setup, include=FALSE} +knitr::opts_chunk$set(include = FALSE) +``` + +### PARTIE 1 : Calcul de composantes principales sous R (Sans FactoMineR) + +- Vide l'environnement de travail, initialise la matrice avec laquelle vous allez travailler + +```{r} + +rm(list=ls()) + +``` + +- Importation du jeu de données (compiler ce qui est ci-dessous mais NE SURTOUT PAS MODIFIER) + +```{r} +library(dplyr) +notes_MAN <- read.table("notes_MAN.csv", sep=";", dec=",", row.names=1, header=TRUE) +# on prépare le jeu de données en retirant la colonne des Mentions +# qui est une variable catégorielle +notes_MAN_prep <- notes_MAN[,-1] + +X <- notes_MAN[1:6,]%>%select(c("Probas","Analyse","Anglais","MAN.Stats","Stats.Inférentielles")) +# on prépare le jeu de données en retirant la colonne des Mentions +# qui est une variable catégorielle +#View(X) + +``` + +```{r} +X <- scale(X,center=TRUE,scale=TRUE) +``` + +- Question 1 : que fait la fonction “scale” dans la cellule ci-dessus ? (1 point) + +- Question 2: utiliser la fonction eigen afin de calculer les valeurs propres et vecteurs propres de la matrice de corrélation de X. Vous stockerez les valeurs propres dans un vecteur nommé lambda et les vecteurs propres dans une matrice nommée vect (1 point). + +```{r} +``` + +- Question 3 : quelle est la part d’inertie expliquée par les 2 premières composantes principales ? (1 point) + +```{r} +``` + +- Question 4 : calculer les coordonnées des individus sur les deux premières composantes principales (1 point) + +```{r} +``` + +- Question 5 : représenter les individus sur le plan formé par les deux premières composantes principales (1 point) + +```{r} +``` + +------------------------------------------------------------------------ + +### PARTIE 2 : ACP avec FactoMineR + +À partir de maintenant, on considère l'entièreté des notes et des étudiants. + +- Question 1 : Écrire maximum 2 lignes de code qui renvoient le nombre d’individus et le nombre de variables. + +```{r} +``` + +- Question 2 : Réaliser l’ACP normée. + +```{r} + +# Ne pas oublier de charger la librairie FactoMineR + +# Indication : pour afficher les résultats de l'ACP pour tous les individus, utiliser la +# fonction summary en précisant dedans nbind=Inf et nbelements=Inf + +``` + +- Question 3 : Afficher l’éboulis des valeurs propre. + +```{r} +``` + +- Question 4 : Quelles sont les coordonnées de la variable MAN.Stats sur le cercle des corrélations ? + +- Question 5 : Quelle est la contribution moyenne des individus ? Quelle est la contribution de Thérèse au 3e axe principal ? + +```{r} +``` + +- Question 6 : Quelle est la qualité de représentation de Julien sur le premier plan factoriel (constitué du premier et deuxième axe) ? + +- Question 7 : Discuter du nombre d’axes à conserver selon les deux critères vus en cours. Dans toutesla suite on gardera néanmoins 2 axes. + +- Question 8 : Effectuer l’étude des individus. Être en particulier vigilant aux étudiants mal représentéset commenter. + +- Question 9 : Relancer une ACP en incluant la variable catégorielle des mentions comme variable supplémentaire. + +```{r} +``` + +- Qestion 10 : Déduire des deux questions précédentes une interprétation du premier axe principal. + +- Question 11 : Effectuer l’analyse des variables. Commenter les UE mal représentées. + +- Question 12 : Interpréter les deux premières composantes principales. diff --git a/Analyse Multidimensionnelle/DM ACP/notes_MAN.csv b/Analyse Multidimensionnelle/DM ACP/notes_MAN.csv new file mode 100644 index 0000000..69e494a --- /dev/null +++ b/Analyse Multidimensionnelle/DM ACP/notes_MAN.csv @@ -0,0 +1,43 @@ +Prénom;Mention;Analyse;Algèbre;Probas;EDO;Ana. Hilbertienne;Analyse Matricielle;Calcul Dif;Stats Inférentielles;MAN-Stats;MAN-Méthodes numériques;Anglais;MAN-PPEI-Projet;Option S5;Option S6 +Juste;Aj;3,8;5,0185;2,4;3,26;0;6,425;5,3125;3,44;11,175;0;11;12,475;14;15 +Julien;TB;18,5;15,90625;19,58;15,68;19,65;17,2;17,125;16,39;11,98;17,08;15,5;15,375;14;14,5 +Olivier;Aj;8,35;7,842;10,62;7,95;4,55;6,4;5,09375;7,59;10,48;5,62;13,5;10,65;11;0 +Marie;Aj;4;3,674;6,44;6,06;6,975;5,35;8,21875;12,95;10,335;8,08;16;11,15;16;17 +Henri;B;13,5;13,00466667;14,45;13,76;15,175;16,1;14,5625;15,53;17,435;16,31;13,5;14,1;17;14 +Nicolas;B;11,55;14,442;12,9;14,62;14,2;15,475;10,0625;15,18;14,685;13,42;18,5;16,85;12;20 +Antoine;Aj;7,8;6,1575;9,7;8,48;6,8;0;9,78125;6,57;0;10,58;13,5;13,1;16;10 +Georges;AB;15,5;10,56166667;15,2;13,85;14,725;13,95;10,40625;13,54;11,285;11,388;16;15,425;16;14 +Armand;Aj;6,65;8,457;9,72;10,34;2,45;5,25;10,875;6,93;0;0;17;0;10;0 +Jolie;Aj;6,6;4,6745;7,8;8,31;0;0;0;4;0;0;16;11,775;14;15 +Marguerite;Aj;6,75;5,797666667;8,74;7,97;1,4;3,65;4,625;8,06;8,96;1,19;11,5;0;14;0 +Suzanne;Aj;10;0;5,64;0;4,15;4,275;5,875;3,58;4,04;3,81;2,5;0;16;13 +Paule;Aj;13,1;0;9,23;0;9,925;9,875;12,9375;10,14;10,615;9,05;16;16;12,25;17,5 +Lucien;AB;12,25;9,808333333;17,28;8,988888889;11,65;14,2;13,125;15,49;15,34;13,2;10,5;12,025;14;15 +Thérèse;Aj;11,15;6,573333333;10,1;10,13;0;10,925;11,84375;10,7;11,55;9,03;16,5;15,575;17,5;17 +Jérôme;Aj;8,75;8,955;9,52;12,1;7,075;7,275;8,03125;12,01;11,67;8,99;14,65;13,875;15,43;15,43 +Françoise;Aj;12,45;7,348;5,16;9,89;9;4,375;12,75;10,6;0;10,06976744;12,5;9,5;14,5;16,5 +Hélène;Aj;10,9;10,63233333;13,22;13,56;10,675;15,5;15,625;13,87;13,37;16,64;18;13,9;11;13,5 +Marc;Aj;7,5;6,6375;6,51;9,27;0;0;0;0;0;0;15;0;17,5;0 +Lucie;Aj;6,45;3,041;5,56;6,77;2,6;1,525;3,75;5,68;4,96;2,38;13;0;14;16 +René;AB;13,55;10,611;14,36;10,84;16,85;12,55;13,28125;14,07;13,245;12,62;15;13,6;17;16 +Sylvie;P;10,8;10,9;14,38;10,07;9,275;9,475;13,90625;14,91;10,865;11,41860465;11;9,05;15;13 +Urbain;Aj;14,5;15;0;11,6;19,7;18,05;18,875;12,11;10,255;12,6;14;11;0;0 +Loup;Aj;11,35;6,758;6,06;8,96;6,075;8,9;8,4;11,53;15,395;7,98;12,5;13,675;13;13 +Juliette;Aj;8,5;0;4,92;7,9;0;4,025;11,5;0,96;0;5,68;12;14,5;10;12 +Adélaïde;Aj;0;0;0;0;1,725;2,9;6,21875;6,44;7,175;7,49;10,8;10,05;13;0 +Inès;B;17,5;16,375;16,8;14,52;19,25;15,575;16;15,71;12,555;17,1;16,5;12,975;12;12 +Guillaume;Aj;12,5;5,8125;14,26;12,05;0;2,425;0;4,59;0;0;12;11,025;0;0 +Geneviève;Aj;0;0;0;0;0;0;0;0;0;0;3;0;10;0 +Aimée;Aj;5,25;2,7775;3,5;4,64;0;0;0;0;0;0;13,5;0;14;0 +Josette;AB;15,5;9,402;13,78;13,5;8,125;11,7;15,575;12,47;12,01;10,64;16;14,65;17,33;0 +Édouard;AB;11,25;12,823;11,68;13,23;15,45;13,15;13,5;12,66;16,03;15,62;11,5;12,75;11;14 +Christophe;Aj;16,1;9,1875;10,9;12,74;14,825;13,75;17,1375;12,4;8,18;8,12;4,5;0;19,5;12 +Céleste;TB;17,2;17,78125;13,24;16,56;17,6;18,275;17;16,61;15,375;18,36;14,5;15,825;18,5;19 +Véronique;TB;18,75;17,22333333;17,9;14,3;20;19,225;19;13,84;9,455;16,3;12;16,25;12,7;15 +Aurore;Aj;7,75;6,75;10,78;10,04444444;7,4;9,2;8,6;11,36;11,37;11,38;16;11,375;13;13 +Étienne;AB;9,45;11,06366667;15,32;12,27;7,225;12,275;11,54375;14,8;11,21;9,33;12,5;14,175;17;18,5 +Serge;B;13;14,28033333;16,8;11,17777778;16,425;14,025;16,5625;16,24;12,57;10,69;14,5;13,975;5;12 +Hervé;Aj;13,75;8,304;7,83;10;0;0;0;12,24;11,59;0;18,5;12,5;18;10 +Gaston;B;12,85;10,63833333;16,4;14,2;15,525;13,975;15,2875;14,01;13,57;13,18;14,5;14,175;16;18 +Arnaud;P;10,75;6,910666667;10,33;10,34;9,2;8,8;9,8375;11,8;13,855;10,33;15,5;14,525;13,5;13 +Gilles;Aj;10,58;0;0;0;18,325;14,65;14,875;15,3;9,47;17,3;9,5;13;12;15 \ No newline at end of file diff --git a/Analyse Multidimensionnelle/TP1/TP1.Rproj b/Analyse Multidimensionnelle/TP1/TP1.Rproj new file mode 100644 index 0000000..8e3c2eb --- /dev/null +++ b/Analyse Multidimensionnelle/TP1/TP1.Rproj @@ -0,0 +1,13 @@ +Version: 1.0 + +RestoreWorkspace: Default +SaveWorkspace: Default +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: Sweave +LaTeX: pdfLaTeX diff --git a/Analyse Multidimensionnelle/TP1/TP2_Enonce_2024.Rmd b/Analyse Multidimensionnelle/TP1/TP2_Enonce_2024.Rmd new file mode 100644 index 0000000..8bce920 --- /dev/null +++ b/Analyse Multidimensionnelle/TP1/TP2_Enonce_2024.Rmd @@ -0,0 +1,157 @@ +--- +title: "TP2 : ACP " +output: + pdf_document: default + html_document: default +--- + +```{r setup, include=FALSE} +knitr::opts_chunk$set(echo = TRUE) +``` + +### Objectifs du TP + + +* Rappel méthodologique +* ACP avec le package FactoMineR sur les données "voitures anciennes" +* ACP avec le package FactoMineR sur les données "Habitudes alimentaires de certaines CSP" +* ACP sur le jeu de données "iris" : quantifier les variations de morphologie des fleurs d'iris de trois espèces + + +# Modèle type de rédaction + +* Exploration de la structure du jeu de données + +* Inertie expliquée et choix du nombre d'axes à retenir + +* Analyse des contributions et interprétation des individus axes par axes sur le modèle du cours $I^{+}$ et $I^{-}$ + +* Analyse des corrélations et interprétation des variables par axe + +* Interprétation et synthèse + + + +# ACP sur le jeu de données "voitures anciennes" + +* Importation du jeu de données "autos.csv" (il comporte 18 voitures et 6 variables actives : Cylindrée, Puissance, Longueur, Largeur, Poids, Vitesse maximum) + + +```{r} +autos <- read.table("autos.csv", sep=";",header=TRUE) +``` +```{r} +rownames(autos)<-autos$Modele +autos$Modele<-NULL +``` + +```{r} +autos<-autos[,c(1:6,8)] +``` + + +* Lancer FactoMineR sur le jeu de données autos en mettant la variable PRIX en supplémentaire, comparez avec les résultats obtenus "à la main" ci-dessus. + +```{r,echo=FALSE} +library(FactoMineR) +help(PCA) +``` + + +```{r,echo=FALSE} +res.autos<-PCA(autos, scale.unit=TRUE, quanti.sup = c("PRIX") ) +``` +```{r} +summary(res.autos, nb.dec=2, nb.elements =Inf, nbind = Inf, ncp=3) #les résultats avec deux décimales, pour tous les individus, toutes les variables, sur les 3 premières CP +``` + + + +```{r} +eigenvalues <- res.autos$eig # pour faire l'eboulis des valeurs propres + +``` +```{r} +bplt <- barplot(eigenvalues[, 2], names.arg=1:nrow(eigenvalues), + main = "Eboulis des valeurs propres", + xlab = "Principal Components", + ylab = "Percentage of variances", + col ="steelblue", + ) +lines(x = bplt, eigenvalues[, 2], type="b", pch=19, col = "red") +``` +Axe 1 + +https://www.google.com/search?q=renault+30&sxsrf=AJOqlzXa7fdk2FHIzJnBMybS2VVl848JTw:1675932953411&source=lnms&tbm=isch&sa=X&ved=2ahUKEwjMx-viiIj9AhX0VKQEHayxCH8Q_AUoAXoECAIQAw&biw=1920&bih=973&dpr=1#imgrc=Do9PtlcmoQ22EM +https://www.google.com/search?q=toyota+corolla&sxsrf=AJOqlzUZUO_FZkxQBSnrw_fECwllyzSicA:1675932937647&source=lnms&tbm=isch&sa=X&ved=2ahUKEwi_tanbiIj9AhWkaqQEHeKnB64Q_AUoAXoECAEQAw&biw=1920&bih=973&dpr=1#imgrc=Ia1iG0X2ojWldM + +Axe 2 + +https://www.google.com/search?q=Alfetta+1.66&tbm=isch&ved=2ahUKEwi3-KXeiYj9AhWjmicCHZPPAJ8Q2-cCegQIABAA&oq=Alfetta+1.66&gs_lcp=CgNpbWcQA1DhAVjlCWCEDGgBcAB4AIABMYgBYJIBATKYAQCgAQGqAQtnd3Mtd2l6LWltZ8ABAQ&sclient=img&ei=HLbkY7f6EqO1nsEPk5-D-Ak&bih=973&biw=1920 + +https://www.google.com/search?q=Audi+100&tbm=isch&ved=2ahUKEwiYsc7fiYj9AhVgnCcCHVTHBzQQ2-cCegQIABAA&oq=Audi+100&gs_lcp=CgNpbWcQAzIICAAQgAQQsQMyBQgAEIAEMgUIABCABDIFCAAQgAQyBQgAEIAEMgUIABCABDIFCAAQgAQyBQgAEIAEMgUIABCABDIFCAAQgAQ6BAgjECc6BggAEAUQHjoECAAQHjoGCAAQCBAeOgcIABCABBAYOgQIABBDOgcIABCxAxBDUJMHWPwhYMwjaABwAHgAgAGBAYgB6AeSAQQxOC4xmAEAoAEBqgELZ3dzLXdpei1pbWfAAQE&sclient=img&ei=H7bkY9ilBOC4nsEP1I6foAM&bih=973&biw=1920#imgrc=HcD1MCnYOiL6CM + + +# ACP normée sur les données "Habitudes alimentaires de certaines CSP" + + + +Individus : AGRI : exploitants agricoles // SAAG : salariés agricoles // PRIN : professions indépendantes // CSUP : cadres supérieurs // CMOY : cadres moyens // EMPL : employés // OUVR : ouvriers // INAC : inactifs + +Variables : Pains ordinaires (PAO), Autres pains (plus sophistiqués) (PAA), Vins ordinaires (VIO), Autres vins (plus sophistiqués) (VIA), Pommes de terre (POT), Légumes secs (lentilles, flageolets etc) (LEC), Raisins (fruits) (RAI), Plats préparés (coûteux à l'époque de l'enquête) (PLP) + +* Charger les données "alimentation.csv" vous les mettrez dans un jeu de données appelé alim. + +```{r, include=FALSE} +alim <- read.table('alimentation.csv', sep=';', header=TRUE) +``` + +* Formater les pour l'ACP +```{r} +rownames(alim)<-alim$ROW_LABEL +alim$ROW_LABEL<-NULL +``` + +* Calculer la matrice des corrélations +```{r} +help(cor) +corr <- cor(alim) +corr +``` + +* Lancer FactoMineR sur ce jeu de données. Effectuer l'analyse statistique des résultats. +* Que remarquez vous chez les individus ? + + +```{r} +res.alim<-PCA(alim, scale.unit=TRUE, quanti.sup = c()) +``` +```{r} +summary(res.alim, nb.dec = 2, nbelements = Inf, nbind = Inf, ncp = 3) +``` + + +* Relancez l'ACP en prenant en compte cette modification + +```{r} +res.alim2 <- PCA(alim, scale.unit=TRUE, quanti.sup = c(), ind.sup = c(3, 7)) +``` + +```{r} +summary(res.alim2, nb.dec = 2, nbelements = Inf, nbind = Inf, ncp = 3) +``` + +# ACP sur le jeu de données "iris" : quantifier les variations de morphologie des fleurs d'iris de trois espèces + +https://fr.wikipedia.org/wiki/Iris_de_Fisher + +```{r} +data(iris) +head(iris) +``` +```{r} +res.iris <- PCA(iris, scale.unit = TRUE, quali.sup = c('Species')) +``` +```{r} +summary(res.iris, nbelements = Inf, nbind = Inf, ncp = 3) +``` \ No newline at end of file diff --git a/Analyse Multidimensionnelle/TP1/alimentation.csv b/Analyse Multidimensionnelle/TP1/alimentation.csv new file mode 100644 index 0000000..dfd334d --- /dev/null +++ b/Analyse Multidimensionnelle/TP1/alimentation.csv @@ -0,0 +1,9 @@ +ROW_LABEL;PAO;PAA;VIO;VIA;POT;LEC;RAI;PLP +AGRI;167;1;163;23;41;8;6;6 +SAAG;162;2;141;12;40;12;4;15 +PRIN;119;6;69;56;39;5;13;41 +CSUP;87;11;63;111;27;3;18;39 +CMOY;103;5;68;77;32;4;11;30 +EMPL;111;4;72;66;34;6;10;28 +OUVR;130;3;76;52;43;7;7;16 +INAC;138;7;117;74;53;8;12;20 \ No newline at end of file diff --git a/Analyse Multidimensionnelle/TP1/autos.csv b/Analyse Multidimensionnelle/TP1/autos.csv new file mode 100644 index 0000000..7632965 --- /dev/null +++ b/Analyse Multidimensionnelle/TP1/autos.csv @@ -0,0 +1 @@ +Modele;CYL;PUISS;LONG;LARG;POIDS;V-MAX;FINITION;PRIX;R-POID.PUIS Alfasud TI;1350;79;393;161;870;165;B;30570;11.01 Audi 100;1588;85;468;177;1110;160;TB;39990;13.06 Simca 1300;1294;68;424;168;1050;152;M;29600;15.44 Citroen GS Club;1222;59;412;161;930;151;M;28250;15.76 Fiat 132;1585;98;439;164;1105;165;B;34900;11.28 Lancia Beta;1297;82;429;169;1080;160;TB;35480;13.17 Peugeot 504;1796;79;449;169;1160;154;B;32300;14.68 Renault 16 TL;1565;55;424;163;1010;140;B;32000;18.36 Renault 30;2664;128;452;173;1320;180;TB;47700;10.31 Toyota Corolla;1166;55;399;157;815;140;M;26540;14.82 Alfetta-1.66;1570;109;428;162;1060;175;TB;42395;9.72 Princess-1800;1798;82;445;172;1160;158;B;33990;14.15 Datsun-200L;1998;115;469;169;1370;160;TB;43980;11.91 Taunus-2000;1993;98;438;170;1080;167;B;35010;11.02 Rancho;1442;80;431;166;1129;144;TB;39450;14,11 Mazda-9295;1769;83;440;165;1095;165;M;27900;13.19 Opel-Rekord;1979;100;459;173;1120;173;B;32700;11.20 Lada-1300;1294;68;404;161;955;140;M;22100;14.04 \ No newline at end of file