Files
ArtStudies/Analyse Multidimensionnelle/DM ACP/.Rhistory
2024-03-07 14:36:05 +01:00

513 lines
22 KiB
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_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