diff --git a/Analyse Multidimensionnelle/DM ACP/.RData b/Analyse Multidimensionnelle/DM ACP/.RData deleted file mode 100644 index 3ced7c0..0000000 Binary files a/Analyse Multidimensionnelle/DM ACP/.RData and /dev/null differ diff --git a/Analyse Multidimensionnelle/DM ACP/.Rhistory b/Analyse Multidimensionnelle/DM ACP/.Rhistory deleted file mode 100644 index d152650..0000000 --- a/Analyse Multidimensionnelle/DM ACP/.Rhistory +++ /dev/null @@ -1,512 +0,0 @@ -contribs <- res.notes$ind$contrib -contrib_moy_ind <- mean(contribs) # 100 * 1/42 -contrib_therese <- res.notes$ind$contrib["Thérèse",3] -contrib_moy_ind -contrib_therese -quali_julien <- res.notes$ind$cos2["Julien", 1:2] -quali_julien -sum(quali_julien * 100) -contrib_moy_ind <- mean(res.notes$ind$contrib) -contrib_moy_ind -indiv_contrib_axe_1 <- sort(res.notes$ind$contrib[,1], decreasing = TRUE) -head(indiv_contrib_axe_1, 3) -indiv_contrib_axe_1 <- sort(res.notes$ind$contrib[,2:2], decreasing = TRUE) -indiv_contrib_axe_1[1:3] -mal_representes <- rownames(res.notes$ind$contrib)[rowSums(res.notes$ind$contrib[,1:2]) <= contrib_moy_ind] -cat("Les individus mal représentés sont : ", mal_representes) -res.notes_sup <- PCA(notes_MAN, scale.unit = TRUE, quali.sup = c("Mention")) -summary(res.notes_sup, nb.dec = 2, nbelements = Inf, nbind = Inf) -contrib_moy_var <- mean(res.notes_sup$var$contrib) # 100 * 1/14 -contrib_moy_var -var_contrib_axe_2 <- sort(res.notes_sup$var$contrib[,2:2], decreasing = TRUE) -head(var_contrib_axe_2, 3) -mal_representes <- rownames(res.notes_sup$var$cos2[,1:2])[rowSums(res.notes_sup$var$cos2[,1:2]) <= 0.6] -mal_representes -indiv_contrib_axe_1 <- sort(res.notes$ind$contrib[,2], decreasing = TRUE) -indiv_contrib_axe_1[1:3] -indiv_contrib_axe_1 <- sort(res.notes$ind$contrib[,2], decreasing = TRUE) -head(indiv_contrib_axe_1, 3) -knitr::opts_chunk$set(include = FALSE) -rm(list=ls()) -library(dplyr) -notes_MAN <- read.table("notes_MAN.csv", sep=";", dec=",", row.names=1, header=TRUE) -# on prépare le jeu de données en retirant la colonne des Mentions -# qui est une variable catégorielle -notes_MAN_prep <- notes_MAN[,-1] -X <- notes_MAN[1:6,]%>%select(c("Probas","Analyse","Anglais","MAN.Stats","Stats.Inférentielles")) -# on prépare le jeu de données en retirant la colonne des Mentions -# qui est une variable catégorielle -# View(X) -X <- scale(X,center=TRUE,scale=TRUE) -X -cor_X <- cor(X) -eigen_X <- eigen(cor_X, symmetric = TRUE) -lambda <- eigen_X["values"]$values -vect <- eigen_X["vectors"]$vectors -lambda -inertie_total_1 <- sum(diag(cor_X)) # Inertie est égale à la trace de la matrice de corrélation -inertie_total_1 -inertie_total_2 <- sum(lambda) # Inertie est aussi égale à la somme des valeurs propres -inertie_total_2 -inertie_axes <- (lambda[1] + lambda[2]) / inertie_total_1 # Inertie expliquée par les deux premières composantes principales -inertie_axes -C <- X %*% vect -C[,1:2] -plot( -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 = c('blue', 'red', 'green', 'yellow', 'purple', 'orange'), -pch=15 -) -legend(x = 'topleft', legend = rownames(X), col = c('blue', 'red', 'green', 'yellow', 'purple', 'orange'), pch = 15) -nrow(notes_MAN_prep) # Nombre d'individus -ncol(notes_MAN_prep) # Nombre de variables -dim(notes_MAN_prep) # On peut également utiliser 'dim' qui renvoit la dimension -library(FactoMineR) -# help(PCA) -# Ne pas oublier de charger la librairie FactoMineR -# Indication : pour afficher les résultats de l'ACP pour tous les individus, utiliser la -# fonction summary en précisant dedans nbind=Inf et nbelements=Inf -res.notes <- PCA(notes_MAN_prep, scale.unit = TRUE) -summary(res.notes, nbind = Inf, nbelements = Inf, nb.dec = 2) -eigen_values <- res.notes$eig -bplot <- barplot( -eigen_values[, 1], -names.arg = 1:nrow(eigen_values), -main = "Eboulis des valeurs propres", -xlab = "Principal Components", -ylab = "Eigenvalues", -col = "lightblue" -) -lines(x = bplot, eigen_values[, 1], type = "b", col = "red") -abline(h=1, col = "darkgray", lty = 5) -coords_man_stats <- res.notes$var$coord["MAN.Stats",] -coords_man_stats[1:2] -contribs <- res.notes$ind$contrib -contrib_moy_ind <- mean(contribs) # 100 * 1/42 -contrib_therese <- res.notes$ind$contrib["Thérèse",3] -contrib_moy_ind -contrib_therese -quali_julien <- res.notes$ind$cos2["Julien", 1:2] -quali_julien -sum(quali_julien * 100) -contrib_moy_ind <- mean(res.notes$ind$contrib) -contrib_moy_ind -indiv_contrib_axe_1 <- sort(res.notes$ind$contrib[,1], decreasing = TRUE) -head(indiv_contrib_axe_1, 3) -indiv_contrib_axe_2 <- sort(res.notes$ind$contrib[,2], decreasing = TRUE) -head(indiv_contrib_axe_2, 3) -mal_representes <- rownames(res.notes$ind$contrib)[rowSums(res.notes$ind$contrib[,1:2]) <= contrib_moy_ind] -cat("Les individus mal représentés sont : ", mal_representes) -res.notes_sup <- PCA(notes_MAN, scale.unit = TRUE, quali.sup = c("Mention")) -summary(res.notes_sup, nb.dec = 2, nbelements = Inf, nbind = Inf) -contrib_moy_var <- mean(res.notes_sup$var$contrib) # 100 * 1/14 -contrib_moy_var -var_contrib_axe_2 <- sort(res.notes_sup$var$contrib[,2:2], decreasing = TRUE) -head(var_contrib_axe_2, 3) -mal_representes <- rownames(res.notes_sup$var$cos2[,1:2])[rowSums(res.notes_sup$var$cos2[,1:2]) <= 0.6] -mal_representes -indiv_contrib_axe_2 <- sort(res.notes$ind$contrib[,2], decreasing = TRUE) -head(indiv_contrib_axe_2, 4) -indiv_contrib_axe_2 <- sort(res.notes$ind$contrib[,2], decreasing = TRUE) -head(indiv_contrib_axe_2, 3) -View(X) -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", -xlab = "Première composante principale", -ylab = "Deuxieme composante principale", -panel.first = grid(), -col = colors, -pch=15 -) -legend(x = 'topleft', legend = rownames(X), col = colors, pch = 15) -View(X) -View(notes_MAN) -View(res.notes) -mal_representes <- rownames(res.notes$ind$contrib)[rowSums(res.notes$ind$contrib[,1:2]) <= 4.334] -cat("Les individus mal représentés sont : ", mal_representes) -mal_representes <- rownames(res.notes$ind$contrib)[rowSums(res.notes$ind$contrib[,1:2]) <= contrib_moy_ind] -cat("Les individus mal représentés sont : ", mal_representes) -mal_representes <- rownames(res.notes$ind$cos2)[rowSums(res.notes$ind$cos2[,1:2]) <= mean(res.notes$ind$cos2[,1:2])] -cat("Les individus mal représentés sont : ", mal_representes) -View(notes_MAN_prep) -res.notes_sup <- PCA(notes_MAN, scale.unit = TRUE, quali.sup = c("Mention")) -plot(res.notes_sup, habillage = "Mentions") -knitr::opts_chunk$set(include = FALSE) -res.notes_sup <- PCA(notes_MAN, scale.unit = TRUE, quali.sup = c("Mention")) -res.notes_sup <- PCA(notes_MAN, scale.unit = TRUE, quali.sup = c("Mention")) -knitr::opts_chunk$set(include = FALSE) -rm(list=ls()) -library(dplyr) -notes_MAN <- read.table("notes_MAN.csv", sep=";", dec=",", row.names=1, header=TRUE) -# on prépare le jeu de données en retirant la colonne des Mentions -# qui est une variable catégorielle -notes_MAN_prep <- notes_MAN[,-1] -X <- notes_MAN[1:6,]%>%select(c("Probas","Analyse","Anglais","MAN.Stats","Stats.Inférentielles")) -# on prépare le jeu de données en retirant la colonne des Mentions -# qui est une variable catégorielle -# View(X) -X <- scale(X,center=TRUE,scale=TRUE) -X -cor_X <- cor(X) -eigen_X <- eigen(cor_X, symmetric = TRUE) -lambda <- eigen_X["values"]$values -vect <- eigen_X["vectors"]$vectors -lambda -inertie_total_1 <- sum(diag(cor_X)) # Inertie est égale à la trace de la matrice de corrélation -inertie_total_1 -inertie_total_2 <- sum(lambda) # Inertie est aussi égale à la somme des valeurs propres -inertie_total_2 -inertie_axes <- (lambda[1] + lambda[2]) / inertie_total_1 # Inertie expliquée par les deux premières composantes principales -inertie_axes -C <- X %*% vect -C[,1:2] -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", -xlab = "Première composante principale", -ylab = "Deuxieme composante principale", -panel.first = grid(), -col = colors, -pch=15 -) -legend(x = 'topleft', legend = rownames(X), col = colors, pch = 15) -nrow(notes_MAN_prep) # Nombre d'individus -ncol(notes_MAN_prep) # Nombre de variables -dim(notes_MAN_prep) # On peut également utiliser 'dim' qui renvoit la dimension -library(FactoMineR) -# help(PCA) -# Ne pas oublier de charger la librairie FactoMineR -# Indication : pour afficher les résultats de l'ACP pour tous les individus, utiliser la -# fonction summary en précisant dedans nbind=Inf et nbelements=Inf -res.notes <- PCA(notes_MAN_prep, scale.unit = TRUE) -summary(res.notes, nbind = Inf, nbelements = Inf, nb.dec = 2) -eigen_values <- res.notes$eig -bplot <- barplot( -eigen_values[, 1], -names.arg = 1:nrow(eigen_values), -main = "Eboulis des valeurs propres", -xlab = "Principal Components", -ylab = "Eigenvalues", -col = "lightblue" -) -lines(x = bplot, eigen_values[, 1], type = "b", col = "red") -abline(h=1, col = "darkgray", lty = 5) -coords_man_stats <- res.notes$var$coord["MAN.Stats",] -coords_man_stats[1:2] -contribs <- res.notes$ind$contrib -contrib_moy_ind <- mean(contribs) # 100 * 1/42 -contrib_therese <- res.notes$ind$contrib["Thérèse",3] -contrib_moy_ind -contrib_therese -quali_julien <- res.notes$ind$cos2["Julien", 1:2] -quali_julien -sum(quali_julien * 100) -contrib_moy_ind <- mean(res.notes$ind$contrib) -contrib_moy_ind -indiv_contrib_axe_1 <- sort(res.notes$ind$contrib[,1], decreasing = TRUE) -head(indiv_contrib_axe_1, 3) -indiv_contrib_axe_2 <- sort(res.notes$ind$contrib[,2], decreasing = TRUE) -head(indiv_contrib_axe_2, 3) -mal_representes <- rownames(res.notes$ind$cos2)[rowSums(res.notes$ind$cos2[,1:2]) <= mean(res.notes$ind$cos2[,1:2])] -cat("Les individus mal représentés sont : ", mal_representes) -res.notes_sup <- PCA(notes_MAN, scale.unit = TRUE, quali.sup = c("Mention")) -plot.PCA(res.iris, choix = "ind", habillage = "Mentions", label = "none") -res.notes_sup <- PCA(notes_MAN, scale.unit = TRUE, quali.sup = c("Mention")) -plot.PCA(res.notes_sup, choix = "ind", habillage = "Mentions", label = "none") -res.notes_sup <- PCA(notes_MAN, scale.unit = TRUE, quali.sup = c("Mention")) -plot.PCA(res.notes_sup, choix = "ind", habillage = "Mentions") -res.notes_sup <- PCA(notes_MAN, scale.unit = TRUE, quali.sup = c("Mention")) -plot.PCA(res.notes_sup, choix = "ind", habillage = "Mention") -View(notes_MAN) -View(notes_MAN) -knitr::opts_chunk$set(include = FALSE) -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 -knitr::opts_chunk$set(include = FALSE) -rm(list=ls()) -library(dplyr) -notes_MAN <- read.table("notes_MAN.csv", sep=";", dec=",", row.names=1, header=TRUE) -# on prépare le jeu de données en retirant la colonne des Mentions -# qui est une variable catégorielle -notes_MAN_prep <- notes_MAN[,-1] -X <- notes_MAN[1:6,]%>%select(c("Probas","Analyse","Anglais","MAN.Stats","Stats.Inférentielles")) -# on prépare le jeu de données en retirant la colonne des Mentions -# qui est une variable catégorielle -# View(X) -X <- scale(X,center=TRUE,scale=TRUE) -X -cor_X <- cor(X) -eigen_X <- eigen(cor_X, symmetric = TRUE) -lambda <- eigen_X["values"]$values -vect <- eigen_X["vectors"]$vectors -lambda -inertie_total_1 <- sum(diag(cor_X)) # Inertie est égale à la trace de la matrice de corrélation -inertie_total_1 -inertie_total_2 <- sum(lambda) # Inertie est aussi égale à la somme des valeurs propres -inertie_total_2 -inertie_axes <- (lambda[1] + lambda[2]) / inertie_total_1 # Inertie expliquée par les deux premières composantes principales -inertie_axes -C <- X %*% vect -C[,1:2] -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", -xlab = "Première composante principale", -ylab = "Deuxieme composante principale", -panel.first = grid(), -col = colors, -pch=15 -) -legend(x = 'topleft', legend = rownames(X), col = colors, pch = 15) -nrow(notes_MAN_prep) # Nombre d'individus -ncol(notes_MAN_prep) # Nombre de variables -dim(notes_MAN_prep) # On peut également utiliser 'dim' qui renvoit la dimension -library(FactoMineR) -# help(PCA) -# Ne pas oublier de charger la librairie FactoMineR -# Indication : pour afficher les résultats de l'ACP pour tous les individus, utiliser la -# fonction summary en précisant dedans nbind=Inf et nbelements=Inf -res.notes <- PCA(notes_MAN_prep, scale.unit = TRUE) -summary(res.notes, nbind = Inf, nbelements = Inf, nb.dec = 2) -eigen_values <- res.notes$eig -bplot <- barplot( -eigen_values[, 1], -names.arg = 1:nrow(eigen_values), -main = "Eboulis des valeurs propres", -xlab = "Principal Components", -ylab = "Eigenvalues", -col = "lightblue" -) -lines(x = bplot, eigen_values[, 1], type = "b", col = "red") -abline(h=1, col = "darkgray", lty = 5) -coords_man_stats <- res.notes$var$coord["MAN.Stats",] -coords_man_stats[1:2] -contribs <- res.notes$ind$contrib -contrib_moy_ind <- mean(contribs) # 100 * 1/42 -contrib_therese <- res.notes$ind$contrib["Thérèse",3] -contrib_moy_ind -contrib_therese -quali_julien <- res.notes$ind$cos2["Julien", 1:2] -quali_julien -sum(quali_julien * 100) -contrib_moy_ind <- mean(res.notes$ind$contrib) -contrib_moy_ind -indiv_contrib_axe_1 <- sort(res.notes$ind$contrib[,1], decreasing = TRUE) -head(indiv_contrib_axe_1, 3) -indiv_contrib_axe_2 <- sort(res.notes$ind$contrib[,2], decreasing = TRUE) -head(indiv_contrib_axe_2, 3) -mal_representes <- rownames(res.notes$ind$cos2)[rowSums(res.notes$ind$cos2[,1:2]) <= mean(res.notes$ind$cos2[,1:2])] -cat("Les individus mal représentés sont : ", mal_representes) -res.notes_sup <- PCA(notes_MAN, scale.unit = TRUE, quali.sup = c("Mention")) -plot.PCA(res.notes_sup, choix = "ind", habillage = "Mention") -summary(res.notes_sup, nb.dec = 2, nbelements = Inf, nbind = Inf) -contrib_moy_var <- mean(res.notes_sup$var$contrib) # 100 * 1/14 -contrib_moy_var -var_contrib_axe_2 <- sort(res.notes_sup$var$contrib[,2], decreasing = TRUE) -head(var_contrib_axe_2, 3) -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 -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 -knitr::opts_chunk$set(include = FALSE) -rm(list=ls()) -library(dplyr) -notes_MAN <- read.table("notes_MAN.csv", sep=";", dec=",", row.names=1, header=TRUE) -# on prépare le jeu de données en retirant la colonne des Mentions -# qui est une variable catégorielle -notes_MAN_prep <- notes_MAN[,-1] -X <- notes_MAN[1:6,]%>%select(c("Probas","Analyse","Anglais","MAN.Stats","Stats.Inférentielles")) -# on prépare le jeu de données en retirant la colonne des Mentions -# qui est une variable catégorielle -# View(X) -X <- scale(X,center=TRUE,scale=TRUE) -X -cor_X <- cor(X) -eigen_X <- eigen(cor_X, symmetric = TRUE) -lambda <- eigen_X["values"]$values -vect <- eigen_X["vectors"]$vectors -lambda -inertie_total_1 <- sum(diag(cor_X)) # Inertie est égale à la trace de la matrice de corrélation -inertie_total_1 -inertie_total_2 <- sum(lambda) # Inertie est aussi égale à la somme des valeurs propres -inertie_total_2 -inertie_axes <- (lambda[1] + lambda[2]) / inertie_total_1 # Inertie expliquée par les deux premières composantes principales -inertie_axes -C <- X %*% vect -C[,1:2] -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", -xlab = "Première composante principale", -ylab = "Deuxieme composante principale", -panel.first = grid(), -col = colors, -pch=15 -) -legend(x = 'topleft', legend = rownames(X), col = colors, pch = 15) -nrow(notes_MAN_prep) # Nombre d'individus -ncol(notes_MAN_prep) # Nombre de variables -dim(notes_MAN_prep) # On peut également utiliser 'dim' qui renvoit la dimension -library(FactoMineR) -# help(PCA) -# Ne pas oublier de charger la librairie FactoMineR -# Indication : pour afficher les résultats de l'ACP pour tous les individus, utiliser la -# fonction summary en précisant dedans nbind=Inf et nbelements=Inf -res.notes <- PCA(notes_MAN_prep, scale.unit = TRUE) -summary(res.notes, nbind = Inf, nbelements = Inf, nb.dec = 2) -eigen_values <- res.notes$eig -bplot <- barplot( -eigen_values[, 1], -names.arg = 1:nrow(eigen_values), -main = "Eboulis des valeurs propres", -xlab = "Principal Components", -ylab = "Eigenvalues", -col = "lightblue" -) -lines(x = bplot, eigen_values[, 1], type = "b", col = "red") -abline(h=1, col = "darkgray", lty = 5) -coords_man_stats <- res.notes$var$coord["MAN.Stats",] -coords_man_stats[1:2] -contribs <- res.notes$ind$contrib -contrib_moy_ind <- mean(contribs) # 100 * 1/42 -contrib_therese <- res.notes$ind$contrib["Thérèse",3] -contrib_moy_ind -contrib_therese -quali_julien <- res.notes$ind$cos2["Julien", 1:2] -quali_julien -sum(quali_julien * 100) -contrib_moy_ind <- mean(res.notes$ind$contrib) -contrib_moy_ind -indiv_contrib_axe_1 <- sort(res.notes$ind$contrib[,1], decreasing = TRUE) -head(indiv_contrib_axe_1, 3) -indiv_contrib_axe_2 <- sort(res.notes$ind$contrib[,2], decreasing = TRUE) -head(indiv_contrib_axe_2, 3) -mal_representes <- rownames(res.notes$ind$cos2)[rowSums(res.notes$ind$cos2[,1:2]) <= mean(res.notes$ind$cos2[,1:2])] -cat("Les individus mal représentés sont : ", mal_representes) -res.notes_sup <- PCA(notes_MAN, scale.unit = TRUE, quali.sup = c("Mention")) -plot.PCA(res.notes_sup, choix = "ind", habillage = "Mention") -summary(res.notes_sup, nb.dec = 2, nbelements = Inf, nbind = Inf) -contrib_moy_var <- mean(res.notes_sup$var$contrib) # 100 * 1/14 -contrib_moy_var -var_contrib_axe_2 <- sort(res.notes_sup$var$contrib[,2], decreasing = TRUE) -head(var_contrib_axe_2, 3) -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 -mal_representes <- rownames(res.notes$ind$cos2)[rowSums(res.notes$ind$cos2[,1:2]) <= mean(res.notes$ind$cos2[,1:2])] -mal_representes -knitr::opts_chunk$set(include = FALSE) -rm(list=ls()) -library(dplyr) -notes_MAN <- read.table("notes_MAN.csv", sep=";", dec=",", row.names=1, header=TRUE) -knitr::opts_chunk$set(include = FALSE) -rm(list=ls()) -library(dplyr) -notes_MAN <- read.table("notes_MAN.csv", sep=";", dec=",", row.names=1, header=TRUE) -knitr::opts_chunk$set(include = FALSE) -rm(list=ls()) -library(dplyr) -notes_MAN <- read.table("notes_MAN.csv", sep=";", dec=",", row.names=1, header=TRUE) -knitr::opts_chunk$set(include = FALSE) -rm(list=ls()) -library(dplyr) -notes_MAN <- read.table("notes_MAN.csv", sep=";", dec=",", row.names=1, header=TRUE) -# on prépare le jeu de données en retirant la colonne des Mentions -# qui est une variable catégorielle -notes_MAN_prep <- notes_MAN[,-1] -X <- notes_MAN[1:6,]%>%select(c("Probas","Analyse","Anglais","MAN.Stats","Stats.Inférentielles")) -# on prépare le jeu de données en retirant la colonne des Mentions -# qui est une variable catégorielle -# View(X) -X <- scale(X,center=TRUE,scale=TRUE) -X -cor_X <- cor(X) -eigen_X <- eigen(cor_X, symmetric = TRUE) -lambda <- eigen_X["values"]$values -vect <- eigen_X["vectors"]$vectors -lambda -inertie_total_1 <- sum(diag(cor_X)) # Inertie est égale à la trace de la matrice de corrélation -inertie_total_1 -inertie_total_2 <- sum(lambda) # Inertie est aussi égale à la somme des valeurs propres -inertie_total_2 -inertie_axes <- (lambda[1] + lambda[2]) / inertie_total_1 # Inertie expliquée par les deux premières composantes principales -inertie_axes -C <- X %*% vect -C[,1:2] -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", -xlab = "Première composante principale", -ylab = "Deuxieme composante principale", -panel.first = grid(), -col = colors, -pch=15 -) -legend(x = 'topleft', legend = rownames(X), col = colors, pch = 15) -nrow(notes_MAN_prep) # Nombre d'individus -ncol(notes_MAN_prep) # Nombre de variables -dim(notes_MAN_prep) # On peut également utiliser 'dim' qui renvoit la dimension -library(FactoMineR) -# help(PCA) -# Ne pas oublier de charger la librairie FactoMineR -# Indication : pour afficher les résultats de l'ACP pour tous les individus, utiliser la -# fonction summary en précisant dedans nbind=Inf et nbelements=Inf -res.notes <- PCA(notes_MAN_prep, scale.unit = TRUE) -summary(res.notes, nbind = Inf, nbelements = Inf, nb.dec = 2) -eigen_values <- res.notes$eig -bplot <- barplot( -eigen_values[, 1], -names.arg = 1:nrow(eigen_values), -main = "Eboulis des valeurs propres", -xlab = "Principal Components", -ylab = "Eigenvalues", -col = "lightblue" -) -lines(x = bplot, eigen_values[, 1], type = "b", col = "red") -abline(h=1, col = "darkgray", lty = 5) -coords_man_stats <- res.notes$var$coord["MAN.Stats",] -coords_man_stats[1:2] -contribs <- res.notes$ind$contrib -contrib_moy_ind <- mean(contribs) # 100 * 1/42 -contrib_therese <- res.notes$ind$contrib["Thérèse",3] -contrib_moy_ind -contrib_therese -quali_julien <- res.notes$ind$cos2["Julien", 1:2] -quali_julien -sum(quali_julien * 100) -contrib_moy_ind <- mean(res.notes$ind$contrib) -contrib_moy_ind -indiv_contrib_axe_1 <- sort(res.notes$ind$contrib[,1], decreasing = TRUE) -head(indiv_contrib_axe_1, 3) -indiv_contrib_axe_2 <- sort(res.notes$ind$contrib[,2], decreasing = TRUE) -head(indiv_contrib_axe_2, 3) -mal_representes <- rownames(res.notes$ind$cos2)[rowSums(res.notes$ind$cos2[,1:2]) <= mean(res.notes$ind$cos2[,1:2])] -mal_representes -res.notes_sup <- PCA(notes_MAN, scale.unit = TRUE, quali.sup = c("Mention")) -plot.PCA(res.notes_sup, choix = "ind", habillage = "Mention") -summary(res.notes_sup, nb.dec = 2, nbelements = Inf, nbind = Inf) -contrib_moy_var <- mean(res.notes_sup$var$contrib) # 100 * 1/14 -contrib_moy_var -var_contrib_axe_2 <- sort(res.notes_sup$var$contrib[,2], decreasing = TRUE) -head(var_contrib_axe_2, 3) -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 diff --git a/Analyse Multidimensionnelle/TP1/.RData b/Analyse Multidimensionnelle/TP1/.RData deleted file mode 100644 index d9eca24..0000000 Binary files a/Analyse Multidimensionnelle/TP1/.RData and /dev/null differ diff --git a/Analyse Multidimensionnelle/TP1/.Rhistory b/Analyse Multidimensionnelle/TP1/.Rhistory deleted file mode 100644 index aa2fb1e..0000000 --- a/Analyse Multidimensionnelle/TP1/.Rhistory +++ /dev/null @@ -1,155 +0,0 @@ -knitr::opts_chunk$set(echo = TRUE) -autos <- read.table("autos.csv", sep=";",header=TRUE) -rownames(autos)<-autos$Modele -autos$Modele<-NULL -autos<-autos[,c(1:6,8)] -library(FactoMineR) -help(PCA) -res.autos<-PCA(autos, scale.unit=TRUE, quanti.sup = c("PRIX") ) -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 -eigenvalues <- res.autos$eig # pour faire l'eboulis des valeurs propres -bplt <- barplot(eigenvalues[, 2], names.arg=1:nrow(eigenvalues), -main = "Eboulis des valeurs propres", -xlab = "Principal Components", -ylab = "Percentage of variances", -col ="steelblue", -) -lines(x = bplt, eigenvalues[, 2], type="b", pch=19, col = "red") -alim <- read.table('alimentation.csv', sep=';', header=TRUE) -rownames(alim)<-alim$ROW_LABEL -alim$ROW_LABEL<-NULL -corr <- cor(alim) -corr <- cor(alim) -corr -res.alim<-PCA(alim, scale.unit=TRUE, quanti.sup = c()) -summary(res.alim, nb.dec = 2, nbelements = Inf, nbind = Inf, ncp = 3) -help(cor) -corr <- cor(alim) -corr -data(iris) -head(iris) -View(iris) -corr.iris <- cor(iris) -res.alim2 <- PCA(alim, scale.unit=TRUE, quanti.sup = c(), quali.sup = c("OUVR")) -res.alim2 <- PCA(alim, scale.unit=TRUE, quanti.sup = c(), quali.sup = c("OUVR", "PRIN")) -library(FactoMineR) -help(PCA) -res.alim2 <- PCA(alim, scale.unit=TRUE, quanti.sup = c(), ind = c("OUVR", "PRIN")) -res.alim2 <- PCA(alim, scale.unit=TRUE, quanti.sup = c(), ind.sup = c("OUVR", "PRIN")) -res.alim2 <- PCA(alim, scale.unit=TRUE, quanti.sup = c(), ind.sup = c(3, 7)) -summary(res.alim2, nb.dec = 2, nbelements = Inf, nbind = Inf, ncp = 3) -res.iris <- PCA(iris, scale.unit = TRUE) -res.iris <- PCA(iris, scale.unit = TRUE, quali.sup = c('Species')) -res.iris <- PCA(iris, scale.unit = TRUE, quanti.sup = c('Species')) -res.iris <- PCA(iris, scale.unit = TRUE, ind.sup = c('Species')) -res.iris <- PCA(iris, scale.unit = TRUE, quali.sup = c('Species')) -summary(res.iris, nbelements = Inf, nbind = Inf, ncp = 3) -knitr::opts_chunk$set(echo = TRUE) -res.alim2 <- PCA(alim, scale.unit=TRUE, quanti.sup = c(), ind.sup = c(8)) -knitr::opts_chunk$set(echo = TRUE) -knitr::opts_chunk$set(echo = TRUE) -knitr::opts_chunk$set(echo = TRUE) -autos <- read.table("autos.csv", sep=";",header=TRUE) -rownames(autos)<-autos$Modele -autos$Modele<-NULL -autos<-autos[,c(1:6,8)] -library(FactoMineR) -help(PCA) -res.autos<-PCA(autos, scale.unit=TRUE, quanti.sup = c("PRIX") ) -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 -eigenvalues <- res.autos$eig # pour faire l'eboulis des valeurs propres -bplt <- barplot(eigenvalues[, 2], names.arg=1:nrow(eigenvalues), -main = "Eboulis des valeurs propres", -xlab = "Principal Components", -ylab = "Percentage of variances", -col ="steelblue", -) -lines(x = bplt, eigenvalues[, 2], type="b", pch=19, col = "red") -alim <- read.table('alimentation.csv', sep=';', header=TRUE) -rownames(alim)<-alim$ROW_LABEL -alim$ROW_LABEL<-NULL -help(cor) -corr <- cor(alim) -corr -res.alim<-PCA(alim, scale.unit=TRUE, quanti.sup = c()) -summary(res.alim, nb.dec = 2, nbelements = Inf, nbind = Inf, ncp = 3) -res.alim2 <- PCA(alim, scale.unit=TRUE, quanti.sup = c(), ind.sup = c(8)) -summary(res.alim2, nb.dec = 2, nbelements = Inf, nbind = Inf, ncp = 3) -data(iris) -head(iris) -res.iris <- PCA(iris, scale.unit = TRUE, quali.sup = c('Species')) -summary(res.iris, nbelements = Inf, nbind = Inf, ncp = 3) -knitr::opts_chunk$set(echo = TRUE) -autos <- read.table("autos.csv", sep=";",header=TRUE) -rownames(autos)<-autos$Modele -autos$Modele<-NULL -autos<-autos[,c(1:6,8)] -library(FactoMineR) -help(PCA) -res.autos<-PCA(autos, scale.unit=TRUE, quanti.sup = c("PRIX")) -plot.CPA(res.iris) -plot.PCA(res.iris, choix = "ind", habillage = 5) -plot.PCA(res.iris, choix = "ind", habillage = 5) -plot.PCA(res.iris, choix = "ind", habillage = 5, label = none) -plot.PCA(res.iris, choix = "ind", habillage = 5) -plot.PCA(res.iris, choix = "ind", habillage = 5, label = None) -plot.PCA(res.iris, choix = "ind", habillage = 5) -plot.PCA(res.iris, choix = "ind", habillage = 5, label = NONE) -plot.PCA(res.iris, choix = "ind", habillage = 5) -plot.PCA(res.iris, choix = "ind", habillage = 5, label = NULL) -res.autos<-PCA(autos, scale.unit=TRUE, quanti.sup = c("PRIX")) -plot.PCA(res.iris, choix = "ind", habillage = 5) -plot.PCA(res.iris, choix = "ind", habillage = 5, label = NULL) -res.autos<-PCA(autos, scale.unit=TRUE, quanti.sup = c("PRIX")) -plot.PCA(res.iris, choix = "ind", habillage = 5) -plot.PCA(res.iris, choix = "ind", habillage = 5, label = "None") -res.autos<-PCA(autos, scale.unit=TRUE, quanti.sup = c("PRIX")) -plot.PCA(res.iris, choix = "ind", habillage = 5) -plot.PCA(res.iris, choix = "ind", habillage = 5, label = NA) -res.autos<-PCA(autos, scale.unit=TRUE, quanti.sup = c("PRIX")) -plot.PCA(res.iris, choix = "ind", habillage = 5) -plot.PCA(res.iris, choix = "ind", habillage = 5, label = "none") -res.autos<-PCA(autos, scale.unit=TRUE, quanti.sup = c("PRIX")) -res.iris <- PCA(iris, scale.unit = TRUE, quali.sup = c('Species')) -plot.PCA(res.iris, choix = "ind", habillage = 5) -plot.PCA(res.iris, choix = "ind", habillage = 5, label = "none") -res.iris <- PCA(iris, scale.unit = TRUE, quali.sup = c('Species')) -plot.PCA(res.iris, choix = "ind", habillage = 5, label = "none") -res.iris <- PCA(iris, scale.unit = TRUE, quali.sup = c('Species')) -plot.PCA(res.iris, choix = "ind", habillage = 5, label = "none") -res.iris <- PCA(iris, scale.unit = TRUE, quali.sup = c('Species')) -plot.PCA(res.iris, choix = "ind", habillage = 5, label = "none") -dimdesc(res.iris) -knitr::opts_chunk$set(echo = TRUE) -autos <- read.table("autos.csv", sep=";",header=TRUE) -rownames(autos)<-autos$Modele -autos$Modele<-NULL -autos<-autos[,c(1:6,8)] -library(FactoMineR) -help(PCA) -res.autos<-PCA(autos, scale.unit=TRUE, quanti.sup = c("PRIX")) -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 -eigenvalues <- res.autos$eig # pour faire l'eboulis des valeurs propres -bplt <- barplot(eigenvalues[, 2], names.arg=1:nrow(eigenvalues), -main = "Eboulis des valeurs propres", -xlab = "Principal Components", -ylab = "Percentage of variances", -col ="steelblue", -) -lines(x = bplt, eigenvalues[, 2], type="b", pch=19, col = "red") -alim <- read.table('alimentation.csv', sep=';', header=TRUE) -rownames(alim)<-alim$ROW_LABEL -alim$ROW_LABEL<-NULL -help(cor) -corr <- cor(alim) -corr -res.alim<-PCA(alim, scale.unit=TRUE, quanti.sup = c()) -summary(res.alim, nb.dec = 2, nbelements = Inf, nbind = Inf, ncp = 3) -res.alim2 <- PCA(alim, scale.unit=TRUE, quanti.sup = c(), ind.sup = c(8)) -summary(res.alim2, nb.dec = 2, nbelements = Inf, nbind = Inf, ncp = 3) -data(iris) -head(iris) -res.iris <- PCA(iris, scale.unit = TRUE, quali.sup = c('Species')) -plot.PCA(res.iris, choix = "ind", habillage = 5, label = "none") -dimdesc(res.iris) -summary(res.iris, nbelements = Inf, nbind = Inf, ncp = 3)