From 7b1bc1b0b995d6b569322ae38d68a0815a7158d0 Mon Sep 17 00:00:00 2001 From: Arthur DANJOU Date: Mon, 22 Apr 2024 15:28:03 +0200 Subject: [PATCH] Add tp 4 --- .../ADN/.idea/.gitignore | 10 ++ Analyse Multidimensionnelle/ADN/.idea/ADN.iml | 11 ++ .../ADN/.idea/discord.xml | 7 + .../ADN/.idea/misc.xml | 19 ++ .../ADN/.idea/modules.xml | 8 + .../ADN/.idea/rGraphicsSettings.xml | 9 + .../ADN/.idea/rMarkdownGraphicsSettings.xml | 7 + .../ADN/.idea/rSettings.xml | 8 + Analyse Multidimensionnelle/ADN/.idea/vcs.xml | 6 + Analyse Multidimensionnelle/ADN/ADN.iml | 8 + Analyse Multidimensionnelle/ADN/main.rmd | 6 + .../DM ACP/.idea/.gitignore | 10 ++ .../DM ACP/.idea/DM ACP.iml | 9 + .../DM ACP/.idea/discord.xml | 7 + .../DM ACP/.idea/misc.xml | 19 ++ .../DM ACP/.idea/modules.xml | 8 + .../DM ACP/.idea/rGraphicsSettings.xml | 9 + .../.idea/rMarkdownGraphicsSettings.xml | 7 + .../DM ACP/.idea/rSettings.xml | 6 + .../DM ACP/.idea/vcs.xml | 6 + Analyse Multidimensionnelle/DM ACP/DM_ACP.Rmd | 90 +++++----- .../TP1/.idea/.gitignore | 8 + Analyse Multidimensionnelle/TP1/.idea/TP1.iml | 9 + .../TP1/.idea/discord.xml | 7 + .../inspectionProfiles/Project_Default.xml | 12 ++ .../TP1/.idea/misc.xml | 19 ++ .../TP1/.idea/modules.xml | 8 + .../TP1/.idea/rGraphicsSettings.xml | 9 + .../TP1/.idea/rMarkdownGraphicsSettings.xml | 7 + .../TP1/.idea/rSettings.xml | 6 + Analyse Multidimensionnelle/TP1/.idea/vcs.xml | 6 + .../TP1/TP2_Enonce_2024.Rmd | 3 +- .../TP4/TP4-Enonce.Rmd | 167 ++++++++++++++++++ Analyse Multidimensionnelle/TP4/TP4.Rproj | 13 ++ Analyse Multidimensionnelle/TP4/depsau.csv | 9 + Projet Numérique/.idea/Projet Numérique.iml | 8 + .../.virtual_documents/Segregation.ipynb | 157 ++++++++++++++++ Projet Numérique/Java/.idea/.gitignore | 8 + Projet Numérique/Java/.idea/discord.xml | 7 + Projet Numérique/Java/.idea/encodings.xml | 7 + .../inspectionProfiles/Project_Default.xml | 12 ++ Projet Numérique/Java/.idea/misc.xml | 6 + Projet Numérique/Java/.idea/modules.xml | 8 + Projet Numérique/Java/.idea/vcs.xml | 6 + Projet Numérique/Java/Java.iml | 11 ++ Projet Numérique/Java/src/SchellingModel.java | 14 ++ .../arthurdanjou/schelling/SchellingModel.java | 2 + 47 files changed, 753 insertions(+), 46 deletions(-) create mode 100644 Analyse Multidimensionnelle/ADN/.idea/.gitignore create mode 100644 Analyse Multidimensionnelle/ADN/.idea/ADN.iml create mode 100644 Analyse Multidimensionnelle/ADN/.idea/discord.xml create mode 100644 Analyse Multidimensionnelle/ADN/.idea/misc.xml create mode 100644 Analyse Multidimensionnelle/ADN/.idea/modules.xml create mode 100644 Analyse Multidimensionnelle/ADN/.idea/rGraphicsSettings.xml create mode 100644 Analyse Multidimensionnelle/ADN/.idea/rMarkdownGraphicsSettings.xml create mode 100644 Analyse Multidimensionnelle/ADN/.idea/rSettings.xml create mode 100644 Analyse Multidimensionnelle/ADN/.idea/vcs.xml create mode 100644 Analyse Multidimensionnelle/ADN/ADN.iml create mode 100644 Analyse Multidimensionnelle/ADN/main.rmd create mode 100644 Analyse Multidimensionnelle/DM ACP/.idea/.gitignore create mode 100644 Analyse Multidimensionnelle/DM ACP/.idea/DM ACP.iml create mode 100644 Analyse Multidimensionnelle/DM ACP/.idea/discord.xml create mode 100644 Analyse Multidimensionnelle/DM ACP/.idea/misc.xml create mode 100644 Analyse Multidimensionnelle/DM ACP/.idea/modules.xml create mode 100644 Analyse Multidimensionnelle/DM ACP/.idea/rGraphicsSettings.xml create mode 100644 Analyse Multidimensionnelle/DM ACP/.idea/rMarkdownGraphicsSettings.xml create mode 100644 Analyse Multidimensionnelle/DM ACP/.idea/rSettings.xml create mode 100644 Analyse Multidimensionnelle/DM ACP/.idea/vcs.xml create mode 100644 Analyse Multidimensionnelle/TP1/.idea/.gitignore create mode 100644 Analyse Multidimensionnelle/TP1/.idea/TP1.iml create mode 100644 Analyse Multidimensionnelle/TP1/.idea/discord.xml create mode 100644 Analyse Multidimensionnelle/TP1/.idea/inspectionProfiles/Project_Default.xml create mode 100644 Analyse Multidimensionnelle/TP1/.idea/misc.xml create mode 100644 Analyse Multidimensionnelle/TP1/.idea/modules.xml create mode 100644 Analyse Multidimensionnelle/TP1/.idea/rGraphicsSettings.xml create mode 100644 Analyse Multidimensionnelle/TP1/.idea/rMarkdownGraphicsSettings.xml create mode 100644 Analyse Multidimensionnelle/TP1/.idea/rSettings.xml create mode 100644 Analyse Multidimensionnelle/TP1/.idea/vcs.xml create mode 100644 Analyse Multidimensionnelle/TP4/TP4-Enonce.Rmd create mode 100644 Analyse Multidimensionnelle/TP4/TP4.Rproj create mode 100644 Analyse Multidimensionnelle/TP4/depsau.csv create mode 100644 Projet Numérique/.idea/Projet Numérique.iml create mode 100644 Projet Numérique/.virtual_documents/Segregation.ipynb create mode 100644 Projet Numérique/Java/.idea/.gitignore create mode 100644 Projet Numérique/Java/.idea/discord.xml create mode 100644 Projet Numérique/Java/.idea/encodings.xml create mode 100644 Projet Numérique/Java/.idea/inspectionProfiles/Project_Default.xml create mode 100644 Projet Numérique/Java/.idea/misc.xml create mode 100644 Projet Numérique/Java/.idea/modules.xml create mode 100644 Projet Numérique/Java/.idea/vcs.xml create mode 100644 Projet Numérique/Java/Java.iml create mode 100644 Projet Numérique/Java/src/SchellingModel.java create mode 100644 Projet Numérique/Java/src/main/java/fr/arthurdanjou/schelling/SchellingModel.java diff --git a/Analyse Multidimensionnelle/ADN/.idea/.gitignore b/Analyse Multidimensionnelle/ADN/.idea/.gitignore new file mode 100644 index 0000000..a9d7db9 --- /dev/null +++ b/Analyse Multidimensionnelle/ADN/.idea/.gitignore @@ -0,0 +1,10 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# GitHub Copilot persisted chat sessions +/copilot/chatSessions diff --git a/Analyse Multidimensionnelle/ADN/.idea/ADN.iml b/Analyse Multidimensionnelle/ADN/.idea/ADN.iml new file mode 100644 index 0000000..dc88000 --- /dev/null +++ b/Analyse Multidimensionnelle/ADN/.idea/ADN.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/ADN/.idea/discord.xml b/Analyse Multidimensionnelle/ADN/.idea/discord.xml new file mode 100644 index 0000000..d8e9561 --- /dev/null +++ b/Analyse Multidimensionnelle/ADN/.idea/discord.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/ADN/.idea/misc.xml b/Analyse Multidimensionnelle/ADN/.idea/misc.xml new file mode 100644 index 0000000..21fabd1 --- /dev/null +++ b/Analyse Multidimensionnelle/ADN/.idea/misc.xml @@ -0,0 +1,19 @@ + + + + + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/ADN/.idea/modules.xml b/Analyse Multidimensionnelle/ADN/.idea/modules.xml new file mode 100644 index 0000000..9bd5887 --- /dev/null +++ b/Analyse Multidimensionnelle/ADN/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/ADN/.idea/rGraphicsSettings.xml b/Analyse Multidimensionnelle/ADN/.idea/rGraphicsSettings.xml new file mode 100644 index 0000000..94499d7 --- /dev/null +++ b/Analyse Multidimensionnelle/ADN/.idea/rGraphicsSettings.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/ADN/.idea/rMarkdownGraphicsSettings.xml b/Analyse Multidimensionnelle/ADN/.idea/rMarkdownGraphicsSettings.xml new file mode 100644 index 0000000..8b62916 --- /dev/null +++ b/Analyse Multidimensionnelle/ADN/.idea/rMarkdownGraphicsSettings.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/ADN/.idea/rSettings.xml b/Analyse Multidimensionnelle/ADN/.idea/rSettings.xml new file mode 100644 index 0000000..2233935 --- /dev/null +++ b/Analyse Multidimensionnelle/ADN/.idea/rSettings.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/ADN/.idea/vcs.xml b/Analyse Multidimensionnelle/ADN/.idea/vcs.xml new file mode 100644 index 0000000..b2bdec2 --- /dev/null +++ b/Analyse Multidimensionnelle/ADN/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/ADN/ADN.iml b/Analyse Multidimensionnelle/ADN/ADN.iml new file mode 100644 index 0000000..ee2b9e0 --- /dev/null +++ b/Analyse Multidimensionnelle/ADN/ADN.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/ADN/main.rmd b/Analyse Multidimensionnelle/ADN/main.rmd new file mode 100644 index 0000000..8e13e55 --- /dev/null +++ b/Analyse Multidimensionnelle/ADN/main.rmd @@ -0,0 +1,6 @@ +```{r} +library(FactoMineR) +data(iris) +res.test <- PCA(iris[,1:4], scale.unit=TRUE, ncp=4) +res.test +``` diff --git a/Analyse Multidimensionnelle/DM ACP/.idea/.gitignore b/Analyse Multidimensionnelle/DM ACP/.idea/.gitignore new file mode 100644 index 0000000..a9d7db9 --- /dev/null +++ b/Analyse Multidimensionnelle/DM ACP/.idea/.gitignore @@ -0,0 +1,10 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# GitHub Copilot persisted chat sessions +/copilot/chatSessions diff --git a/Analyse Multidimensionnelle/DM ACP/.idea/DM ACP.iml b/Analyse Multidimensionnelle/DM ACP/.idea/DM ACP.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/Analyse Multidimensionnelle/DM ACP/.idea/DM ACP.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/DM ACP/.idea/discord.xml b/Analyse Multidimensionnelle/DM ACP/.idea/discord.xml new file mode 100644 index 0000000..d8e9561 --- /dev/null +++ b/Analyse Multidimensionnelle/DM ACP/.idea/discord.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/DM ACP/.idea/misc.xml b/Analyse Multidimensionnelle/DM ACP/.idea/misc.xml new file mode 100644 index 0000000..1c31b46 --- /dev/null +++ b/Analyse Multidimensionnelle/DM ACP/.idea/misc.xml @@ -0,0 +1,19 @@ + + + + + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/DM ACP/.idea/modules.xml b/Analyse Multidimensionnelle/DM ACP/.idea/modules.xml new file mode 100644 index 0000000..27bf648 --- /dev/null +++ b/Analyse Multidimensionnelle/DM ACP/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/DM ACP/.idea/rGraphicsSettings.xml b/Analyse Multidimensionnelle/DM ACP/.idea/rGraphicsSettings.xml new file mode 100644 index 0000000..94499d7 --- /dev/null +++ b/Analyse Multidimensionnelle/DM ACP/.idea/rGraphicsSettings.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/DM ACP/.idea/rMarkdownGraphicsSettings.xml b/Analyse Multidimensionnelle/DM ACP/.idea/rMarkdownGraphicsSettings.xml new file mode 100644 index 0000000..8b62916 --- /dev/null +++ b/Analyse Multidimensionnelle/DM ACP/.idea/rMarkdownGraphicsSettings.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/DM ACP/.idea/rSettings.xml b/Analyse Multidimensionnelle/DM ACP/.idea/rSettings.xml new file mode 100644 index 0000000..6d7112b --- /dev/null +++ b/Analyse Multidimensionnelle/DM ACP/.idea/rSettings.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/DM ACP/.idea/vcs.xml b/Analyse Multidimensionnelle/DM ACP/.idea/vcs.xml new file mode 100644 index 0000000..b2bdec2 --- /dev/null +++ b/Analyse Multidimensionnelle/DM ACP/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/DM ACP/DM_ACP.Rmd b/Analyse Multidimensionnelle/DM ACP/DM_ACP.Rmd index 84e893c..2d96491 100644 --- a/Analyse Multidimensionnelle/DM ACP/DM_ACP.Rmd +++ b/Analyse Multidimensionnelle/DM ACP/DM_ACP.Rmd @@ -1,12 +1,12 @@ --- title: "DM Statistique exploratoire multidimensionelle - Arthur DANJOU" output: - pdf_document: default - html_document: - df_print: paged -editor_options: - markdown: - wrap: 72 +pdf_document: default +html_document: +df_print: paged +editor_options: +markdown: +wrap: 72 --- ------------------------------------------------------------------------ @@ -28,23 +28,23 @@ 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 +vous allez travailler ```{r} -rm(list=ls()) +rm(list = ls()) ``` - Importation du jeu de données (compiler ce qui est ci-dessous mais - NE SURTOUT PAS MODIFIER) +NE SURTOUT PAS MODIFIER) ```{r} library(dplyr) -notes_MAN <- read.table("notes_MAN.csv", sep=";", dec=",", row.names=1, header=TRUE) +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] +notes_MAN_prep <- notes_MAN[, -1] -X <- notes_MAN[1:6,]%>%select(c("Probas","Analyse","Anglais","MAN.Stats","Stats.Inférentielles")) +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) @@ -52,19 +52,19 @@ X <- notes_MAN[1:6,]%>%select(c("Probas","Analyse","Anglais","MAN.Stats","Stats. ``` ```{r} -X <- scale(X,center=TRUE,scale=TRUE) +X <- scale(X, center = TRUE, scale = TRUE) X ``` - Question 1 : que fait la fonction “scale” dans la cellule ci-dessus - ? (1 point) +? (1 point) La fonction *scale* permet de normaliser et de réduire notre matrice X. - 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). +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} cor_X <- cor(X) @@ -78,7 +78,7 @@ lambda ``` - Question 3 : quelle est la part d’inertie expliquée par les 2 - premières composantes principales ? (1 point) +premières composantes principales ? (1 point) ```{r} inertie_total_1 <- sum(diag(cor_X)) # Inertie est égale à la trace de la matrice de corrélation @@ -90,26 +90,26 @@ inertie_axes ``` - Question 4 : calculer les coordonnées des individus sur les deux - premières composantes principales (1 point) +premières composantes principales (1 point) ```{r} C <- X %*% vect -C[,1:2] +C[, 1:2] ``` - Question 5 : représenter les individus sur le plan formé par les - deux premières composantes principales (1 point) +deux premières composantes principales (1 point) ```{r} colors <- c('blue', 'red', 'green', 'yellow', 'purple', 'orange') plot( - C[,1],C[,2], - main="Coordonnées des individus par rapport \n aux deux premières composantes principales", + C[, 1], C[, 2], + main = "Coordonnées des individus par rapport \n aux deux premières composantes principales", xlab = "Première composante principale", ylab = "Deuxieme composante principale", panel.first = grid(), col = colors, - pch=15 + pch = 15 ) legend(x = 'topleft', legend = rownames(X), col = colors, pch = 15) ``` @@ -122,7 +122,7 @@ legend(x = 'topleft', legend = rownames(X), col = colors, pch = 15) étudiants. - Question 1 : Écrire maximum 2 lignes de code qui renvoient le nombre - d’individus et le nombre de variables. +d’individus et le nombre de variables. ```{r} nrow(notes_MAN_prep) # Nombre d'individus @@ -161,7 +161,7 @@ summary(res.notes, nbind = Inf, nbelements = Inf, nb.dec = 2) eigen_values <- res.notes$eig bplot <- barplot( - eigen_values[, 1], + eigen_values[, 1], names.arg = 1:nrow(eigen_values), main = "Eboulis des valeurs propres", xlab = "Principal Components", @@ -169,11 +169,11 @@ bplot <- barplot( col = "lightblue" ) lines(x = bplot, eigen_values[, 1], type = "b", col = "red") -abline(h=1, col = "darkgray", lty = 5) +abline(h = 1, col = "darkgray", lty = 5) ``` - Question 4 : Quelles sont les coordonnées de la variable MAN.Stats - sur le cercle des corrélations ? +sur le cercle des corrélations ? La variable **MAN.Stats** est la **9-ième** variable de notre dataset. Les coordonnées de cette variable sont : $(corr(C_1, X_9), corr(C_2, X_9))$ @@ -198,12 +198,12 @@ Les coordonnées de la variable **MAN.Stats** sont donc environ **(0.766,-0.193)** - Question 5 : Quelle est la contribution moyenne des individus ? - Quelle est la contribution de Thérèse au 3e axe principal ? +Quelle est la contribution de Thérèse au 3e axe principal ? ```{r} contribs <- res.notes$ind$contrib contrib_moy_ind <- mean(contribs) # 100 * 1/42 -contrib_therese <- res.notes$ind$contrib["Thérèse",3] +contrib_therese <- res.notes$ind$contrib["Thérèse", 3] contrib_moy_ind contrib_therese @@ -213,7 +213,7 @@ La contribution moyenne est donc environ égale à **2,38%**. La contribution de Thérèse au 3e axe principal est environ égal à **5.8%** - Question 6 : Quelle est la qualité de représentation de Julien sur - le premier plan factoriel (constitué du premier et deuxième axe) ? +le premier plan factoriel (constitué du premier et deuxième axe) ? La qualité de représentation de 'Julien' sur le premier plan factoriel est donné par la formule : @@ -236,8 +236,8 @@ principales. On a donc une qualité environ égale à **0.95** soit **95%.** - Question 7 : Discuter du nombre d’axes à conserver selon les deux - critères vus en cours. Dans toutes la suite on gardera néanmoins 2 - axes. +critères vus en cours. Dans toutes la suite on gardera néanmoins 2 +axes. Nous avons vu deux critères principaux: le critère de Kaiser et le critère du coude. Le critère de Kaiser dit de garder uniquement les @@ -253,7 +253,7 @@ plus grandes valeurs propres ou bien les quatre plus grandes**, donc conserver ou bien **deux axes principaux, ou bien quatre**. - Question 8 : Effectuer l’étude des individus. Être en particulier - vigilant aux étudiants mal représentés et commenter. +vigilant aux étudiants mal représentés et commenter. ## Contribution moyenne @@ -266,7 +266,7 @@ La contribution moyenne est donc environ égale à **2,38%** ## Axe 1 ```{r} -indiv_contrib_axe_1 <- sort(res.notes$ind$contrib[,1], decreasing = TRUE) +indiv_contrib_axe_1 <- sort(res.notes$ind$contrib[, 1], decreasing = TRUE) head(indiv_contrib_axe_1, 3) ``` @@ -278,7 +278,7 @@ sur l'axe 1. ## Axe 2 ```{r} -indiv_contrib_axe_2 <- sort(res.notes$ind$contrib[,2], decreasing = TRUE) +indiv_contrib_axe_2 <- sort(res.notes$ind$contrib[, 2], decreasing = TRUE) head(indiv_contrib_axe_2, 3) ``` @@ -294,12 +294,12 @@ axes, c'est à dire ceux qui se distinguent ni par l'axe 1, ni par l'axe 2. ```{r} -mal_representes <- rownames(res.notes$ind$cos2)[rowSums(res.notes$ind$cos2[,1:2]) <= mean(res.notes$ind$cos2[,1:2])] +mal_representes <- rownames(res.notes$ind$cos2)[rowSums(res.notes$ind$cos2[, 1:2]) <= mean(res.notes$ind$cos2[, 1:2])] mal_representes ``` - Question 9 : Relancer une ACP en incluant la variable catégorielle - des mentions comme variable supplémentaire. +des mentions comme variable supplémentaire. ```{r} res.notes_sup <- PCA(notes_MAN, scale.unit = TRUE, quali.sup = c("Mention")) @@ -311,7 +311,7 @@ summary(res.notes_sup, nb.dec = 2, nbelements = Inf, nbind = Inf) ``` - Question 10 : Déduire des deux questions précédentes une - interprétation du premier axe principal. +interprétation du premier axe principal. La prise en compte de la variable supplémentaire **Mentions**, montre en outre que la première composante principale est liée à la mention obtenue par les étudiants. @@ -320,7 +320,7 @@ réussite des étudiants. - Question 11 : Effectuer l’analyse des variables. Commenter les UE - mal représentées. +mal représentées. ## Contribution moyenne @@ -340,7 +340,7 @@ toutes une coordonnée positive. ## Axe 2 ```{r} -var_contrib_axe_2 <- sort(res.notes_sup$var$contrib[,2], decreasing = TRUE) +var_contrib_axe_2 <- sort(res.notes_sup$var$contrib[, 2], decreasing = TRUE) head(var_contrib_axe_2, 3) ``` @@ -351,9 +351,9 @@ et **Options.S6**, corrélées négativement. ## Qualité de la représentation ```{r} -mal_representes <- rownames(res.notes_sup$var$cos2[,1:2])[rowSums(res.notes_sup$var$cos2[,1:2]) <= 0.6] +mal_representes <- rownames(res.notes_sup$var$cos2[, 1:2])[rowSums(res.notes_sup$var$cos2[, 1:2]) <= 0.6] mal_representes -mal_representes_moy <- rownames(res.notes_sup$var$cos2[,1:2])[rowSums(res.notes_sup$var$cos2[,1:2]) <= mean(res.notes_sup$var$cos2[,1:2])] +mal_representes_moy <- rownames(res.notes_sup$var$cos2[, 1:2])[rowSums(res.notes_sup$var$cos2[, 1:2]) <= mean(res.notes_sup$var$cos2[, 1:2])] mal_representes_moy ``` @@ -364,7 +364,7 @@ sauf 4 variables : l'**Anglais**, **MAN.PPEI.Projet**, **Options.S5** et On remarque également que l'**Options.S5** est la variable la moins bien représentée dans le plan car sa qualité de représentation dans le plan est inférieure à la moyenne des qualités de représentation des variables dans le plan. - Question 12 : Interpréter les deux premières composantes - principales. +principales. On dira que la première composante principale définit un “facteur de taille” car toutes les variables sont corrélées positivement entre elles. Ce phénomène @@ -379,5 +379,5 @@ moyenne), c'est à dire selon leur réussite, donc leur moyenne générale de le Le deuxième axe définit un “facteur de forme” : il y a deux groupes de variables opposées, celles qui contribuent positivement à l’axe, celles qui contribuent -négativement. Vu les variables en question, la deuxième composante principale +négativement. Vu les variables en question, la deuxième composante principale s’interprète aisément comme opposant les matières du semestre 5 à celles du semestre 6. \ No newline at end of file diff --git a/Analyse Multidimensionnelle/TP1/.idea/.gitignore b/Analyse Multidimensionnelle/TP1/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/Analyse Multidimensionnelle/TP1/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/Analyse Multidimensionnelle/TP1/.idea/TP1.iml b/Analyse Multidimensionnelle/TP1/.idea/TP1.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/Analyse Multidimensionnelle/TP1/.idea/TP1.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/TP1/.idea/discord.xml b/Analyse Multidimensionnelle/TP1/.idea/discord.xml new file mode 100644 index 0000000..d8e9561 --- /dev/null +++ b/Analyse Multidimensionnelle/TP1/.idea/discord.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/TP1/.idea/inspectionProfiles/Project_Default.xml b/Analyse Multidimensionnelle/TP1/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..3dce9c6 --- /dev/null +++ b/Analyse Multidimensionnelle/TP1/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/TP1/.idea/misc.xml b/Analyse Multidimensionnelle/TP1/.idea/misc.xml new file mode 100644 index 0000000..eba81f9 --- /dev/null +++ b/Analyse Multidimensionnelle/TP1/.idea/misc.xml @@ -0,0 +1,19 @@ + + + + + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/TP1/.idea/modules.xml b/Analyse Multidimensionnelle/TP1/.idea/modules.xml new file mode 100644 index 0000000..0cc9f92 --- /dev/null +++ b/Analyse Multidimensionnelle/TP1/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/TP1/.idea/rGraphicsSettings.xml b/Analyse Multidimensionnelle/TP1/.idea/rGraphicsSettings.xml new file mode 100644 index 0000000..94499d7 --- /dev/null +++ b/Analyse Multidimensionnelle/TP1/.idea/rGraphicsSettings.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/TP1/.idea/rMarkdownGraphicsSettings.xml b/Analyse Multidimensionnelle/TP1/.idea/rMarkdownGraphicsSettings.xml new file mode 100644 index 0000000..8b62916 --- /dev/null +++ b/Analyse Multidimensionnelle/TP1/.idea/rMarkdownGraphicsSettings.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/TP1/.idea/rSettings.xml b/Analyse Multidimensionnelle/TP1/.idea/rSettings.xml new file mode 100644 index 0000000..6d7112b --- /dev/null +++ b/Analyse Multidimensionnelle/TP1/.idea/rSettings.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/TP1/.idea/vcs.xml b/Analyse Multidimensionnelle/TP1/.idea/vcs.xml new file mode 100644 index 0000000..b2bdec2 --- /dev/null +++ b/Analyse Multidimensionnelle/TP1/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Analyse Multidimensionnelle/TP1/TP2_Enonce_2024.Rmd b/Analyse Multidimensionnelle/TP1/TP2_Enonce_2024.Rmd index a783069..8037fce 100644 --- a/Analyse Multidimensionnelle/TP1/TP2_Enonce_2024.Rmd +++ b/Analyse Multidimensionnelle/TP1/TP2_Enonce_2024.Rmd @@ -3,6 +3,7 @@ title: "TP2 : ACP " output: pdf_document: default html_document: default +output: rmarkdown::html_vignette --- ```{r setup, include=FALSE} @@ -59,7 +60,7 @@ help(PCA) ```{r,echo=FALSE} -res.autos<-PCA(autos, scale.unit=TRUE, quanti.sup = c("PRIX")) +res.autos<-PCA(autos, scale.unit=TRUE, quanti.sup = "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 diff --git a/Analyse Multidimensionnelle/TP4/TP4-Enonce.Rmd b/Analyse Multidimensionnelle/TP4/TP4-Enonce.Rmd new file mode 100644 index 0000000..fa2c566 --- /dev/null +++ b/Analyse Multidimensionnelle/TP4/TP4-Enonce.Rmd @@ -0,0 +1,167 @@ +--- +title: "TP4 Enoncé" +output: + pdf_document: default + html_document: default +--- + +```{r setup, include=FALSE} +knitr::opts_chunk$set(echo = TRUE) +``` + + +Nous allons étudier un exemple qui porte sur les exploitations agricoles de la région Midi-Pyrénées. Les données proviennent des “Tableaux Economiques de Midi-Pyrénées”, publiées par la Direction Régionale de Toulouse de l’INSEE, en 1996. + +Le tableau de contingence provient du croisement de deux variables, Département (8 modalités) et S.A.U (Surface Agricole Utilisée, 6 classes). Notez que cette dernière est une variable continue discrétisée. + +Voici les abréviations : + +Pour les départements + +ARIE= Ariège, AVER: Aveyron, H.G. = Haute-Garonne, GERS, LOT, H.P. = Hautes-Pyrénées, TARN, T.G. = Tarn et Garonne. + +Pour les S.A.U + +INF05: moins de 5 hectares, S0510: entre 5 et 10 hectares etc..., SUP50: plus de 50 hectares. + +1) Importer le tableau de contingence. Appeler le depsau. + +```{r} +library(FactoMineR) + +rm(list=ls()) + +depsau <- read.table("depsau.csv", sep=";",header=TRUE, row.names=c("X")) +``` + + + +2) L'étude porte sur combien d'exploitations agricoles ? + +```{r} +n = sum(depsau) +print(c("l'étude porte sur",n,"exploitations"),quote=FALSE) +``` + + +3) Afin d'étudier la liaison entre les variables Département et S.A.U. réalisez un test du khi-2 d'indépendance au seuil d'erreur 5% (bien écrire le test complètement sur votre copie avec les hypothèses etc.). Vous pourrez utiliser la fonction chisq.test + +```{r} +chi <- chisq.test(depsau) +chi$statistic +``` +```{r} +tobs <- sum((depsau - chi$expected)**2/chi$expected) +tobs +``` +```{r} +quantile <- qchisq(0.95,(dim(depsau)[1]-1)*(dim(depsau)[2]-1)) +quantile +``` + +```{r} +chi +``` + +4) Afficher le tableau des effectifs observés. Vous pourrez utiliser la fonction summary et la question 3. + +```{r} +par(mar =c(a=6,b=6,c=6,d=6)) +barplot(t(chi$observed),beside = TRUE, col = rainbow(6),main = "Observés") +``` + + +5) Afficher le tableau des effectifs attendus sous l'hypothèse d'indépendance entre les deux variables. Vous pourrez utiliser la fonction summary et la question 3. + +```{r} +par(mar =c(a=6,b=6,c=6,d=6)) +barplot(t(chi$expected),beside = TRUE, col = rainbow(6),main = "Observés") +``` + + +6) Calculer le tableau des contributions au chi-2. Commenter. + +```{r} +contrib <- round(((depsau - chi$expected)**2/chi$expected) * 100/tobs,digits = 2) +``` + +```{r} +``` + +7) Calculer le tableau des probabilités associé au tableau de contingence. + +```{r} +prob <- depsau/n +``` + + +8) Calculer les probabilités marginales des lignes. On pourra utiliser la fonction apply. + + +```{r} +marg.ligne <- apply(prob,MARGIN = 1,FUN = sum) +``` + +9) Calculer le tableau des profils lignes et le profil moyen associé. Commenter. + +```{r} +prof.ligne <- prob / marg.line +``` + +```{r} +prof.ligne.moyen <- apply(prob,2,sum) +``` + + + +10) Calculer les probabilités marginales des colonnes. + + +```{r} +marg.col <- prof.ligne.moyen +``` + + +11) Calculer le tableau des profils colonnes et le profil moyen associé. + +```{r} +prof.col <- t(t(prob) / marg.col) +``` + +```{r} +prof.col.moyen <- marg.ligne +``` + + +12) Lancer une AFC avec FactoMineR sur depsau. + + +```{r} + +res.depsau<-CA(depsau) + +summary(res.depsau) + +eig.val <- res.depsau$eig +barplot(eig.val[, 2], + names.arg = 1:nrow(eig.val), + main = "Variances Explained by Dimensions (%)", + xlab = "Principal Dimensions", + ylab = "Percentage of variances", + col ="steelblue") +# Add connected line segments to the plot +#lines(x = 1:nrow(eig.val), eig.val[, 2], + # type = "b", pch = 19, col = "red") + +plot(res.depsau, invisible = "row") +plot(res.depsau, invisible = "col") + +``` +13) Combien d'axes factoriels y-a-t-il à calculer ? + +Le nombre d'axes factoriels a calculer est min(I-1,J-1) avec I le nombre de lignes et J le nombres de colones. Il y en a donc 5. Cependant, par le critère du coude, on en concerve que 2. + +14) Faire l'étude statistique complète. + +Le premier axe range les espaces agricoles selon leur superficie et les régions selon le nombres de espaces agricoles ayant la même taille. +Le second axe range les régions selon leur concentration en espaces agricole extrême. diff --git a/Analyse Multidimensionnelle/TP4/TP4.Rproj b/Analyse Multidimensionnelle/TP4/TP4.Rproj new file mode 100644 index 0000000..8e3c2eb --- /dev/null +++ b/Analyse Multidimensionnelle/TP4/TP4.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/TP4/depsau.csv b/Analyse Multidimensionnelle/TP4/depsau.csv new file mode 100644 index 0000000..3af5573 --- /dev/null +++ b/Analyse Multidimensionnelle/TP4/depsau.csv @@ -0,0 +1,9 @@ +;INF05;S0510;S1020;S2035;S3550;SUP50 +ARIE;870;330;730;680;470;890 +AVER;820;1260;2460;3330;2170;2960 +H.G.;2290;1070;1420;1830;1260;2330 +GERS;1650;890;1350;2540;2090;3230 +LOT;1940;1130;1750;1660;770;1140 +H.P.;2110;1170;1640;1500;550;430 +TARN;1770;820;1260;2010;1680;2090 +T.G;1740;920;1560;2210;990;1240 \ No newline at end of file diff --git a/Projet Numérique/.idea/Projet Numérique.iml b/Projet Numérique/.idea/Projet Numérique.iml new file mode 100644 index 0000000..c69f1c9 --- /dev/null +++ b/Projet Numérique/.idea/Projet Numérique.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Projet Numérique/.virtual_documents/Segregation.ipynb b/Projet Numérique/.virtual_documents/Segregation.ipynb new file mode 100644 index 0000000..7aba4f5 --- /dev/null +++ b/Projet Numérique/.virtual_documents/Segregation.ipynb @@ -0,0 +1,157 @@ +import numpy as np +import matplotlib.pyplot as plt +import numpy.random as random +import itertools + + +class ModeleSchelling: + def __init__(self, M, p, L): + self.M = M + self.p = p + self.L = L + self.Ntot = 0 + self.grille = self.initialisation_grille() + + def initialisation_grille(self): + grille = np.zeros((self.M, self.M), dtype=int) + occupes = np.random.choice(self.M * self.M, size=int((1 - self.p) * self.M * self.M), replace=False) + self.Ntot = len(occupes) + + for occupe in occupes: + i, j = divmod(occupe, self.M) + grille[i, j] = random.choice([-1, 1]) + + return grille + + def afficher_grille(self, title): + color = plt.imshow(self.grille, cmap='coolwarm', interpolation='nearest') + plt.colorbar(color) + plt.title(title) + plt.show() + + def satisfaisante(self, x, y, agent): + groupe = self.grille[agent[0], agent[1]] + count_similaires = 0 + count_differents = 0 + + voisins = [] + for (i,j) in list(itertools.product([x-1, x, x+1], [y-1, y, y+1])): + if 0 <= i < self.M and 0 <= j < self.M and (i, j) != (x, y): + voisins.append((i, j)) + + for voisin in voisins: + i, j = voisin + case = self.grille[i, j] + if case == 0: pass + else: + if case == groupe: + count_similaires += 1 + else: + count_differents += 1 + + if count_similaires+count_differents == 0: + return False + else: + return float(count_similaires/(count_similaires+count_differents)) >= self.L + + def clusters(self): + visited = np.zeros_like(self.grille, dtype=bool) + clusters = [] + + def dfs(i, j, groupe, cluster): + stack = [(i, j)] + + while stack: + i, j = stack.pop() + + if 0 <= i < self.M and 0 <= j < self.M and not visited[i, j] and self.grille[i, j] == groupe: + visited[i, j] = True + cluster.add((i, j)) + + for (di, dj) in [(-1, 0), (1, 0), (0, -1), (0, 1)]: + stack.append((i + di, j + dj)) + + added_clusters = set() + + for groupe in [-1, 1]: + indices = np.argwhere((self.grille == groupe) & (~visited)) + for i, j in indices: + current_cluster = set() + dfs(i, j, groupe, current_cluster) + + if current_cluster and frozenset(current_cluster) not in added_clusters: + clusters.append((groupe, len(current_cluster))) + added_clusters.add(frozenset(current_cluster)) + + return clusters + + def coef_segregation(self): + S = 0 + clusters = self.clusters() + for i in range(len(clusters)): + S += int(clusters[i][1])**2 + return S * 2 / (self.Ntot**2) + + def simuler(self, T=400, move_satisfaits=True): + for t in range(1, int((1-self.p)*self.M**2 * T)): + agents = [(i, j) for i, row in enumerate(self.grille) for j, val in enumerate(row) if val != 0] + agent = agents[random.randint(0, len(agents) - 1)] + + while not move_satisfaits and self.satisfaisante(agent[0], agent[1], agent): + agents.remove(agent) + if len(agents) == 0: + break + agent = agents[random.randint(0, len(agents) - 1)] + + cases_non_occupees = [(i, j) for i, row in enumerate(self.grille) for j, val in enumerate(row) if val == 0] + nouvelle_case = cases_non_occupees[random.randint(0, len(cases_non_occupees) - 1)] + + while not self.satisfaisante(nouvelle_case[0], nouvelle_case[1], agent): + cases_non_occupees.remove(nouvelle_case) + if len(cases_non_occupees) == 0: + break + nouvelle_case = cases_non_occupees[random.randint(0, len(cases_non_occupees) - 1)] + + self.grille[nouvelle_case[0]][nouvelle_case[1]] = self.grille[agent[0]][agent[1]] + self.grille[agent[0]][agent[1]] = 0 + cases_non_occupees.append(agent) + self.afficher_grille(f'Configuration Finale de T={T} pour (M, p, L) = ({self.M},{self.p},{self.L})') + + +M = 100 +p = 5/100 +L = 1/2 + +modele = ModeleSchelling(M, p, L) +modele.afficher_grille("Configuration Initiale") + +for T in [1, 10, 100, 400]: + modele.simuler(T, True) + + +M = 50 +T = 400 +p_list = [2/100, 6/100, 12/100, 18/100] +L_list = [1/5, 2/7, 1/3, 5/7, 3/4] + +for p in p_list: + for L in L_list: + modele = ModeleSchelling(M, p, L) + modele.afficher_grille(f"Configuration Initiale pour p={p} et L={L}") + modele.simuler(T, False) + + +M = 40 +T = 400 +p = 5/100 +L = 2/7 + +modele = ModeleSchelling(M, p, L) +modele.afficher_grille("Configuration Initiale") +modele.simuler(T) +print(modele.clusters()) +print(len(modele.clusters())) +print(modele.coef_segregation()) + + + diff --git a/Projet Numérique/Java/.idea/.gitignore b/Projet Numérique/Java/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/Projet Numérique/Java/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/Projet Numérique/Java/.idea/discord.xml b/Projet Numérique/Java/.idea/discord.xml new file mode 100644 index 0000000..d8e9561 --- /dev/null +++ b/Projet Numérique/Java/.idea/discord.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/Projet Numérique/Java/.idea/encodings.xml b/Projet Numérique/Java/.idea/encodings.xml new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ b/Projet Numérique/Java/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Projet Numérique/Java/.idea/inspectionProfiles/Project_Default.xml b/Projet Numérique/Java/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..3dce9c6 --- /dev/null +++ b/Projet Numérique/Java/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/Projet Numérique/Java/.idea/misc.xml b/Projet Numérique/Java/.idea/misc.xml new file mode 100644 index 0000000..862d09b --- /dev/null +++ b/Projet Numérique/Java/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Projet Numérique/Java/.idea/modules.xml b/Projet Numérique/Java/.idea/modules.xml new file mode 100644 index 0000000..9281dbd --- /dev/null +++ b/Projet Numérique/Java/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Projet Numérique/Java/.idea/vcs.xml b/Projet Numérique/Java/.idea/vcs.xml new file mode 100644 index 0000000..b2bdec2 --- /dev/null +++ b/Projet Numérique/Java/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Projet Numérique/Java/Java.iml b/Projet Numérique/Java/Java.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/Projet Numérique/Java/Java.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Projet Numérique/Java/src/SchellingModel.java b/Projet Numérique/Java/src/SchellingModel.java new file mode 100644 index 0000000..ae3a568 --- /dev/null +++ b/Projet Numérique/Java/src/SchellingModel.java @@ -0,0 +1,14 @@ +public class SchellingModel { + + private int M; + private int p; + private int L; + private int Ntot; + + public SchellingModel(int M, int p, int L) { + this.M = M; + this.p = p; + this.L = L; + this.Ntot = L * L; + } +} diff --git a/Projet Numérique/Java/src/main/java/fr/arthurdanjou/schelling/SchellingModel.java b/Projet Numérique/Java/src/main/java/fr/arthurdanjou/schelling/SchellingModel.java new file mode 100644 index 0000000..642ef9a --- /dev/null +++ b/Projet Numérique/Java/src/main/java/fr/arthurdanjou/schelling/SchellingModel.java @@ -0,0 +1,2 @@ +package fr.arthurdanjou;public class SchellingModel { +}