mirror of
https://github.com/ArthurDanjou/ArtStudies.git
synced 2026-01-14 18:59:59 +01:00
Add tp 4
This commit is contained in:
10
Analyse Multidimensionnelle/ADN/.idea/.gitignore
generated
vendored
Normal file
10
Analyse Multidimensionnelle/ADN/.idea/.gitignore
generated
vendored
Normal file
@@ -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
|
||||
11
Analyse Multidimensionnelle/ADN/.idea/ADN.iml
generated
Normal file
11
Analyse Multidimensionnelle/ADN/.idea/ADN.iml
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<excludeFolder url="file://$MODULE_DIR$/.idea/copilot/chatSessions" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
7
Analyse Multidimensionnelle/ADN/.idea/discord.xml
generated
Normal file
7
Analyse Multidimensionnelle/ADN/.idea/discord.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DiscordProjectSettings">
|
||||
<option name="show" value="PROJECT_FILES" />
|
||||
<option name="description" value="" />
|
||||
</component>
|
||||
</project>
|
||||
19
Analyse Multidimensionnelle/ADN/.idea/misc.xml
generated
Normal file
19
Analyse Multidimensionnelle/ADN/.idea/misc.xml
generated
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_20" default="true" project-jdk-name="20" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
<component name="RMarkdownSettings">
|
||||
<option name="renderProfiles">
|
||||
<map>
|
||||
<entry key="file://$PROJECT_DIR$/main.rmd">
|
||||
<value>
|
||||
<RMarkdownRenderProfile>
|
||||
<option name="outputDirectoryUrl" value="file://$PROJECT_DIR$" />
|
||||
</RMarkdownRenderProfile>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
8
Analyse Multidimensionnelle/ADN/.idea/modules.xml
generated
Normal file
8
Analyse Multidimensionnelle/ADN/.idea/modules.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/ADN.iml" filepath="$PROJECT_DIR$/.idea/ADN.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
9
Analyse Multidimensionnelle/ADN/.idea/rGraphicsSettings.xml
generated
Normal file
9
Analyse Multidimensionnelle/ADN/.idea/rGraphicsSettings.xml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RGraphicsSettings">
|
||||
<option name="height" value="450" />
|
||||
<option name="resolution" value="75" />
|
||||
<option name="version" value="2" />
|
||||
<option name="width" value="720" />
|
||||
</component>
|
||||
</project>
|
||||
7
Analyse Multidimensionnelle/ADN/.idea/rMarkdownGraphicsSettings.xml
generated
Normal file
7
Analyse Multidimensionnelle/ADN/.idea/rMarkdownGraphicsSettings.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RMarkdownGraphicsSettings">
|
||||
<option name="globalResolution" value="75" />
|
||||
<option name="version" value="2" />
|
||||
</component>
|
||||
</project>
|
||||
8
Analyse Multidimensionnelle/ADN/.idea/rSettings.xml
generated
Normal file
8
Analyse Multidimensionnelle/ADN/.idea/rSettings.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RSettings">
|
||||
<option name="interpreterPath" value="/usr/local/bin/R" />
|
||||
<option name="loadWorkspace" value="true" />
|
||||
<option name="saveWorkspace" value="true" />
|
||||
</component>
|
||||
</project>
|
||||
6
Analyse Multidimensionnelle/ADN/.idea/vcs.xml
generated
Normal file
6
Analyse Multidimensionnelle/ADN/.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
8
Analyse Multidimensionnelle/ADN/ADN.iml
Normal file
8
Analyse Multidimensionnelle/ADN/ADN.iml
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="R_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
6
Analyse Multidimensionnelle/ADN/main.rmd
Normal file
6
Analyse Multidimensionnelle/ADN/main.rmd
Normal file
@@ -0,0 +1,6 @@
|
||||
```{r}
|
||||
library(FactoMineR)
|
||||
data(iris)
|
||||
res.test <- PCA(iris[,1:4], scale.unit=TRUE, ncp=4)
|
||||
res.test
|
||||
```
|
||||
10
Analyse Multidimensionnelle/DM ACP/.idea/.gitignore
generated
vendored
Normal file
10
Analyse Multidimensionnelle/DM ACP/.idea/.gitignore
generated
vendored
Normal file
@@ -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
|
||||
9
Analyse Multidimensionnelle/DM ACP/.idea/DM ACP.iml
generated
Normal file
9
Analyse Multidimensionnelle/DM ACP/.idea/DM ACP.iml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
7
Analyse Multidimensionnelle/DM ACP/.idea/discord.xml
generated
Normal file
7
Analyse Multidimensionnelle/DM ACP/.idea/discord.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DiscordProjectSettings">
|
||||
<option name="show" value="PROJECT_FILES" />
|
||||
<option name="description" value="" />
|
||||
</component>
|
||||
</project>
|
||||
19
Analyse Multidimensionnelle/DM ACP/.idea/misc.xml
generated
Normal file
19
Analyse Multidimensionnelle/DM ACP/.idea/misc.xml
generated
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_20" default="true" project-jdk-name="20" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
<component name="RMarkdownSettings">
|
||||
<option name="renderProfiles">
|
||||
<map>
|
||||
<entry key="file://$PROJECT_DIR$/DM_ACP.Rmd">
|
||||
<value>
|
||||
<RMarkdownRenderProfile>
|
||||
<option name="outputDirectoryUrl" value="file://$PROJECT_DIR$" />
|
||||
</RMarkdownRenderProfile>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
8
Analyse Multidimensionnelle/DM ACP/.idea/modules.xml
generated
Normal file
8
Analyse Multidimensionnelle/DM ACP/.idea/modules.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/DM ACP.iml" filepath="$PROJECT_DIR$/.idea/DM ACP.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
9
Analyse Multidimensionnelle/DM ACP/.idea/rGraphicsSettings.xml
generated
Normal file
9
Analyse Multidimensionnelle/DM ACP/.idea/rGraphicsSettings.xml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RGraphicsSettings">
|
||||
<option name="height" value="450" />
|
||||
<option name="resolution" value="75" />
|
||||
<option name="version" value="2" />
|
||||
<option name="width" value="720" />
|
||||
</component>
|
||||
</project>
|
||||
7
Analyse Multidimensionnelle/DM ACP/.idea/rMarkdownGraphicsSettings.xml
generated
Normal file
7
Analyse Multidimensionnelle/DM ACP/.idea/rMarkdownGraphicsSettings.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RMarkdownGraphicsSettings">
|
||||
<option name="globalResolution" value="75" />
|
||||
<option name="version" value="2" />
|
||||
</component>
|
||||
</project>
|
||||
6
Analyse Multidimensionnelle/DM ACP/.idea/rSettings.xml
generated
Normal file
6
Analyse Multidimensionnelle/DM ACP/.idea/rSettings.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RSettings">
|
||||
<option name="interpreterPath" value="/usr/local/bin/R" />
|
||||
</component>
|
||||
</project>
|
||||
6
Analyse Multidimensionnelle/DM ACP/.idea/vcs.xml
generated
Normal file
6
Analyse Multidimensionnelle/DM ACP/.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -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.
|
||||
8
Analyse Multidimensionnelle/TP1/.idea/.gitignore
generated
vendored
Normal file
8
Analyse Multidimensionnelle/TP1/.idea/.gitignore
generated
vendored
Normal file
@@ -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
|
||||
9
Analyse Multidimensionnelle/TP1/.idea/TP1.iml
generated
Normal file
9
Analyse Multidimensionnelle/TP1/.idea/TP1.iml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
7
Analyse Multidimensionnelle/TP1/.idea/discord.xml
generated
Normal file
7
Analyse Multidimensionnelle/TP1/.idea/discord.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DiscordProjectSettings">
|
||||
<option name="show" value="PROJECT_FILES" />
|
||||
<option name="description" value="" />
|
||||
</component>
|
||||
</project>
|
||||
12
Analyse Multidimensionnelle/TP1/.idea/inspectionProfiles/Project_Default.xml
generated
Normal file
12
Analyse Multidimensionnelle/TP1/.idea/inspectionProfiles/Project_Default.xml
generated
Normal file
@@ -0,0 +1,12 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<profile version="1.0">
|
||||
<option name="myName" value="Project Default" />
|
||||
<inspection_tool class="PyPep8NamingInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
|
||||
<option name="ignoredErrors">
|
||||
<list>
|
||||
<option value="N806" />
|
||||
</list>
|
||||
</option>
|
||||
</inspection_tool>
|
||||
</profile>
|
||||
</component>
|
||||
19
Analyse Multidimensionnelle/TP1/.idea/misc.xml
generated
Normal file
19
Analyse Multidimensionnelle/TP1/.idea/misc.xml
generated
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_20" default="true" project-jdk-name="20" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
<component name="RMarkdownSettings">
|
||||
<option name="renderProfiles">
|
||||
<map>
|
||||
<entry key="file://$PROJECT_DIR$/TP2_Enonce_2024.Rmd">
|
||||
<value>
|
||||
<RMarkdownRenderProfile>
|
||||
<option name="outputDirectoryUrl" value="file://$PROJECT_DIR$" />
|
||||
</RMarkdownRenderProfile>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
8
Analyse Multidimensionnelle/TP1/.idea/modules.xml
generated
Normal file
8
Analyse Multidimensionnelle/TP1/.idea/modules.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/TP1.iml" filepath="$PROJECT_DIR$/.idea/TP1.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
9
Analyse Multidimensionnelle/TP1/.idea/rGraphicsSettings.xml
generated
Normal file
9
Analyse Multidimensionnelle/TP1/.idea/rGraphicsSettings.xml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RGraphicsSettings">
|
||||
<option name="height" value="450" />
|
||||
<option name="resolution" value="75" />
|
||||
<option name="version" value="2" />
|
||||
<option name="width" value="720" />
|
||||
</component>
|
||||
</project>
|
||||
7
Analyse Multidimensionnelle/TP1/.idea/rMarkdownGraphicsSettings.xml
generated
Normal file
7
Analyse Multidimensionnelle/TP1/.idea/rMarkdownGraphicsSettings.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RMarkdownGraphicsSettings">
|
||||
<option name="globalResolution" value="75" />
|
||||
<option name="version" value="2" />
|
||||
</component>
|
||||
</project>
|
||||
6
Analyse Multidimensionnelle/TP1/.idea/rSettings.xml
generated
Normal file
6
Analyse Multidimensionnelle/TP1/.idea/rSettings.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RSettings">
|
||||
<option name="interpreterPath" value="/usr/local/bin/R" />
|
||||
</component>
|
||||
</project>
|
||||
6
Analyse Multidimensionnelle/TP1/.idea/vcs.xml
generated
Normal file
6
Analyse Multidimensionnelle/TP1/.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -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
|
||||
|
||||
167
Analyse Multidimensionnelle/TP4/TP4-Enonce.Rmd
Normal file
167
Analyse Multidimensionnelle/TP4/TP4-Enonce.Rmd
Normal file
@@ -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.
|
||||
13
Analyse Multidimensionnelle/TP4/TP4.Rproj
Normal file
13
Analyse Multidimensionnelle/TP4/TP4.Rproj
Normal file
@@ -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
|
||||
9
Analyse Multidimensionnelle/TP4/depsau.csv
Normal file
9
Analyse Multidimensionnelle/TP4/depsau.csv
Normal file
@@ -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
|
||||
|
8
Projet Numérique/.idea/Projet Numérique.iml
generated
Normal file
8
Projet Numérique/.idea/Projet Numérique.iml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="PYTHON_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="jdk" jdkName="$USER_HOME$/anaconda3" jdkType="Python SDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
157
Projet Numérique/.virtual_documents/Segregation.ipynb
Normal file
157
Projet Numérique/.virtual_documents/Segregation.ipynb
Normal file
@@ -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())
|
||||
|
||||
|
||||
|
||||
8
Projet Numérique/Java/.idea/.gitignore
generated
vendored
Normal file
8
Projet Numérique/Java/.idea/.gitignore
generated
vendored
Normal file
@@ -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
|
||||
7
Projet Numérique/Java/.idea/discord.xml
generated
Normal file
7
Projet Numérique/Java/.idea/discord.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DiscordProjectSettings">
|
||||
<option name="show" value="PROJECT_FILES" />
|
||||
<option name="description" value="" />
|
||||
</component>
|
||||
</project>
|
||||
7
Projet Numérique/Java/.idea/encodings.xml
generated
Normal file
7
Projet Numérique/Java/.idea/encodings.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding">
|
||||
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
|
||||
</component>
|
||||
</project>
|
||||
12
Projet Numérique/Java/.idea/inspectionProfiles/Project_Default.xml
generated
Normal file
12
Projet Numérique/Java/.idea/inspectionProfiles/Project_Default.xml
generated
Normal file
@@ -0,0 +1,12 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<profile version="1.0">
|
||||
<option name="myName" value="Project Default" />
|
||||
<inspection_tool class="PyPep8NamingInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
|
||||
<option name="ignoredErrors">
|
||||
<list>
|
||||
<option value="N806" />
|
||||
</list>
|
||||
</option>
|
||||
</inspection_tool>
|
||||
</profile>
|
||||
</component>
|
||||
6
Projet Numérique/Java/.idea/misc.xml
generated
Normal file
6
Projet Numérique/Java/.idea/misc.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_20" default="true" project-jdk-name="20" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
||||
8
Projet Numérique/Java/.idea/modules.xml
generated
Normal file
8
Projet Numérique/Java/.idea/modules.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/Java.iml" filepath="$PROJECT_DIR$/Java.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
6
Projet Numérique/Java/.idea/vcs.xml
generated
Normal file
6
Projet Numérique/Java/.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
11
Projet Numérique/Java/Java.iml
Normal file
11
Projet Numérique/Java/Java.iml
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
14
Projet Numérique/Java/src/SchellingModel.java
Normal file
14
Projet Numérique/Java/src/SchellingModel.java
Normal file
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
package fr.arthurdanjou;public class SchellingModel {
|
||||
}
|
||||
Reference in New Issue
Block a user