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 {
+}