Ce travail est réalisé par l’étudiant AMZANI OMAR sous l’encadrement de Mr TOUIJAR.

0.1 Importation des données depuis :

Note <- read.csv2(file.choose(),row.names=1) ## charger le fichier de données " ex 4 td 2.csv "

0.2 Vérification de l’importation et étude descriptive univariée :

summary(Note) ## le résumé des données avant l'ACP; une sorte de vérification des données bien importées ou non, quantitatives et/ou qualitatives...
##       MATH             STAT            ARABE          ANGLAIS     
##  Min.   : 5.500   Min.   : 6.000   Min.   : 5.00   Min.   : 5.50  
##  1st Qu.: 6.000   1st Qu.: 7.000   1st Qu.: 8.00   1st Qu.: 8.00  
##  Median : 9.000   Median : 9.500   Median :11.00   Median : 9.50  
##  Mean   : 9.667   Mean   : 9.833   Mean   :10.22   Mean   :10.06  
##  3rd Qu.:13.000   3rd Qu.:12.500   3rd Qu.:12.50   3rd Qu.:12.00  
##  Max.   :14.500   Max.   :14.500   Max.   :15.50   Max.   :15.00
str(Note)
## 'data.frame':    9 obs. of  4 variables:
##  $ MATH   : num  6 8 6 14.5 14 11 5.5 13 9
##  $ STAT   : num  6 8 7 14.5 14 10 7 12.5 9.5
##  $ ARABE  : num  5 8 11 15.5 12 5.5 14 8.5 12.5
##  $ ANGLAIS: num  5.5 8 9.5 15 12.5 7 11.5 9.5 12

On a importé ici une base de données concernant les notes des étudiants d’une classe. On choisit un échantillon de 9 étudiants qu’on mesure selon 4 variables :

0.2.1 Ajouter deux autres variables :

  • MG La moyenne générale de chaque étudiants: Variable Quantitative (note sur 20)
  • Sexe Le sexe de l’étudiants : Variable Qualitative ave deux modalités (M,F)
MG <- apply(Note,1,mean)
Sexe <- c("M","M","M","M","F","F","F","F","F")
Note<- data.frame(Note,MG,Sexe)
summary(Note)
##       MATH             STAT            ARABE          ANGLAIS     
##  Min.   : 5.500   Min.   : 6.000   Min.   : 5.00   Min.   : 5.50  
##  1st Qu.: 6.000   1st Qu.: 7.000   1st Qu.: 8.00   1st Qu.: 8.00  
##  Median : 9.000   Median : 9.500   Median :11.00   Median : 9.50  
##  Mean   : 9.667   Mean   : 9.833   Mean   :10.22   Mean   :10.06  
##  3rd Qu.:13.000   3rd Qu.:12.500   3rd Qu.:12.50   3rd Qu.:12.00  
##  Max.   :14.500   Max.   :14.500   Max.   :15.50   Max.   :15.00  
##        MG             Sexe          
##  Min.   : 5.625   Length:9          
##  1st Qu.: 8.375   Class :character  
##  Median : 9.500   Mode  :character  
##  Mean   : 9.944                     
##  3rd Qu.:10.875                     
##  Max.   :14.875
str(Note)
## 'data.frame':    9 obs. of  6 variables:
##  $ MATH   : num  6 8 6 14.5 14 11 5.5 13 9
##  $ STAT   : num  6 8 7 14.5 14 10 7 12.5 9.5
##  $ ARABE  : num  5 8 11 15.5 12 5.5 14 8.5 12.5
##  $ ANGLAIS: num  5.5 8 9.5 15 12.5 7 11.5 9.5 12
##  $ MG     : num  5.62 8 8.38 14.88 13.12 ...
##  $ Sexe   : chr  "M" "M" "M" "M" ...

0.3 Matrice de corrélation :

On visualise la matrice des corrélations entre les quatre variables actives pour avoir une idée sur **la pertinance** de l’ACP.

En effet :

\(1^{er}\) Méthode :

round(cor(Note[,-(5:6)]),2) ## Pour la pertinence de la méthode ACP.
##         MATH STAT ARABE ANGLAIS
## MATH    1.00 0.98  0.23    0.51
## STAT    0.98 1.00  0.40    0.65
## ARABE   0.23 0.40  1.00    0.95
## ANGLAIS 0.51 0.65  0.95    1.00

\(2^{ème}\) Méthode :

library(PerformanceAnalytics)
chart.Correlation(Note[,-c(5,6)],histogram=TRUE)

On constate qu’on a une :

Donc on peut regrouper nos variables en deux groupes :

\(1^{er}\) groupe (MATH et STAT) qui reflète la discipline Scientifique. \(2^{ème}\) groupe (ARABE et ANGLAIS) qui reflète la discipline Littéraire. On peut alors “espérer” réduire notre dimension de 4 à seulement deux dimensions, l’une “peut être” la discipline Scientifique et l’autre “peut être” la discipline Littéraire (à vérifier). Mais la chose dont on est sûr c’est que l’ACP réduira le dimension du Nuage.

0.4 Lancement de l’ACP :

Pour ce faire on doit décider entre l’ACP non Normée et l’ACP Normée.

boxplot(Note[,-(5:6)]) ## autre façon de comparer les variables et leurs dispersions relatives, points extrèmes, méthode normée ou non.

Il n’y a pas de raison apparente pour normer, même si on va choisir l’ACP Normée.

On lance alors l’ACP :

require(FactoMineR)
Note.acp <- PCA(Note,quanti.sup=5 , quali.sup=6)

summary(Note.acp) ## résumé des sorties ACP.
## 
## Call:
## PCA(X = Note, quanti.sup = 5, quali.sup = 6) 
## 
## 
## Eigenvalues
##                        Dim.1   Dim.2   Dim.3   Dim.4
## Variance               2.876   1.120   0.004   0.001
## % of var.             71.892  27.992   0.089   0.026
## Cumulative % of var.  71.892  99.884  99.974 100.000
## 
## Individuals
##              Dist    Dim.1    ctr   cos2    Dim.2    ctr   cos2    Dim.3    ctr
## Mohamed  |  2.776 | -2.743 29.068  0.976 | -0.427  1.813  0.024 | -0.023  1.647
## Ali      |  1.250 | -1.241  5.947  0.985 | -0.153  0.232  0.015 | -0.004  0.060
## Ilyas    |  1.472 | -1.031  4.106  0.490 |  1.049 10.926  0.508 |  0.058 10.552
## Anas     |  3.144 |  3.138 38.050  0.996 |  0.186  0.342  0.003 | -0.011  0.404
## Soumaya  |  2.146 |  2.051 16.261  0.914 | -0.628  3.911  0.086 |  0.025  1.871
## Houda    |  1.785 | -0.971  3.643  0.296 | -1.498 22.254  0.703 | -0.026  2.126
## Yassmine |  1.967 | -0.335  0.433  0.029 |  1.937 37.248  0.970 |  0.055  9.464
## Firdaous |  1.434 |  0.620  1.486  0.187 | -1.291 16.536  0.811 |  0.066 13.626
## Sara     |  0.979 |  0.510  1.006  0.271 |  0.824  6.739  0.708 | -0.139 60.249
##            cos2  
## Mohamed   0.000 |
## Ali       0.000 |
## Ilyas     0.002 |
## Anas      0.000 |
## Soumaya   0.000 |
## Houda     0.000 |
## Yassmine  0.001 |
## Firdaous  0.002 |
## Sara      0.020 |
## 
## Variables
##             Dim.1    ctr   cos2    Dim.2    ctr   cos2    Dim.3    ctr   cos2  
## MATH     |  0.811 22.892  0.658 | -0.584 30.465  0.341 | -0.012  4.104  0.000 |
## STAT     |  0.902 28.294  0.814 | -0.430 16.549  0.185 |  0.026 19.466  0.001 |
## ARABE    |  0.753 19.707  0.567 |  0.657 38.593  0.432 |  0.032 28.346  0.001 |
## ANGLAIS  |  0.915 29.107  0.837 |  0.401 14.393  0.161 | -0.041 48.085  0.002 |
## 
## Supplementary continuous variable
##            Dim.1  cos2   Dim.2  cos2   Dim.3  cos2  
## MG       | 1.000 1.000 | 0.014 0.000 | 0.003 0.000 |
## 
## Supplementary categories
##              Dist    Dim.1   cos2 v.test    Dim.2   cos2 v.test    Dim.3   cos2
## F        |  0.398 |  0.375  0.891  0.700 | -0.131  0.108 -0.391 | -0.004  0.000
## M        |  0.497 | -0.469  0.891 -0.700 |  0.164  0.108  0.391 |  0.005  0.000
##          v.test  
## F        -0.206 |
## M         0.206 |
summary(Note.acp,nbelements=Inf) ## sortie complète de l'ACP.
## 
## Call:
## PCA(X = Note, quanti.sup = 5, quali.sup = 6) 
## 
## 
## Eigenvalues
##                        Dim.1   Dim.2   Dim.3   Dim.4
## Variance               2.876   1.120   0.004   0.001
## % of var.             71.892  27.992   0.089   0.026
## Cumulative % of var.  71.892  99.884  99.974 100.000
## 
## Individuals
##              Dist    Dim.1    ctr   cos2    Dim.2    ctr   cos2    Dim.3    ctr
## Mohamed  |  2.776 | -2.743 29.068  0.976 | -0.427  1.813  0.024 | -0.023  1.647
## Ali      |  1.250 | -1.241  5.947  0.985 | -0.153  0.232  0.015 | -0.004  0.060
## Ilyas    |  1.472 | -1.031  4.106  0.490 |  1.049 10.926  0.508 |  0.058 10.552
## Anas     |  3.144 |  3.138 38.050  0.996 |  0.186  0.342  0.003 | -0.011  0.404
## Soumaya  |  2.146 |  2.051 16.261  0.914 | -0.628  3.911  0.086 |  0.025  1.871
## Houda    |  1.785 | -0.971  3.643  0.296 | -1.498 22.254  0.703 | -0.026  2.126
## Yassmine |  1.967 | -0.335  0.433  0.029 |  1.937 37.248  0.970 |  0.055  9.464
## Firdaous |  1.434 |  0.620  1.486  0.187 | -1.291 16.536  0.811 |  0.066 13.626
## Sara     |  0.979 |  0.510  1.006  0.271 |  0.824  6.739  0.708 | -0.139 60.249
##            cos2  
## Mohamed   0.000 |
## Ali       0.000 |
## Ilyas     0.002 |
## Anas      0.000 |
## Soumaya   0.000 |
## Houda     0.000 |
## Yassmine  0.001 |
## Firdaous  0.002 |
## Sara      0.020 |
## 
## Variables
##             Dim.1    ctr   cos2    Dim.2    ctr   cos2    Dim.3    ctr   cos2  
## MATH     |  0.811 22.892  0.658 | -0.584 30.465  0.341 | -0.012  4.104  0.000 |
## STAT     |  0.902 28.294  0.814 | -0.430 16.549  0.185 |  0.026 19.466  0.001 |
## ARABE    |  0.753 19.707  0.567 |  0.657 38.593  0.432 |  0.032 28.346  0.001 |
## ANGLAIS  |  0.915 29.107  0.837 |  0.401 14.393  0.161 | -0.041 48.085  0.002 |
## 
## Supplementary continuous variable
##            Dim.1  cos2   Dim.2  cos2   Dim.3  cos2  
## MG       | 1.000 1.000 | 0.014 0.000 | 0.003 0.000 |
## 
## Supplementary categories
##              Dist    Dim.1   cos2 v.test    Dim.2   cos2 v.test    Dim.3   cos2
## F        |  0.398 |  0.375  0.891  0.700 | -0.131  0.108 -0.391 | -0.004  0.000
## M        |  0.497 | -0.469  0.891 -0.700 |  0.164  0.108  0.391 |  0.005  0.000
##          v.test  
## F        -0.206 |
## M         0.206 |

Il s’agit la dessus d’une exploration simple des sorties logiciel.

D’une manière plus approfondie, une fois qu’on aura retenu les axes pertinents par la méthode de Kaiser, par exemple, on procédera ensuite à la description de ces axes factoriels retenus, par :

1- Le cercle de corrélation;

2- la description automatique des axes : dimdesc(Note.acp)

Note.acp$eig       ## les valeurs et vecteurs propres et le cumul...
##         eigenvalue percentage of variance cumulative percentage of variance
## comp 1 2.875686772            71.89216929                          71.89217
## comp 2 1.119687364            27.99218409                          99.88435
## comp 3 0.003577590             0.08943975                          99.97379
## comp 4 0.001048275             0.02620687                         100.00000
Note.acp$eig[,1]  ## les valeurs propres.
##      comp 1      comp 2      comp 3      comp 4 
## 2.875686772 1.119687364 0.003577590 0.001048275

Commençons d’abord par préciser le nombre d’axes à retenir.

0.5 Le nombre d’axes à retenir :

0.5.1 méthode de Kaiser :

1- Par seuil

i0 <- which(Note.acp$eig[,1]>=1) # les n° des axes dont les val-proprs>=1
if(length(i0)==1) {
lambda <- data.frame(Note.acp$eig[1:2,1]) # réecrire comme data.frame pour pouvoir ajouter les noms (lignes et colonnes)
names(lambda) <- "Kaiser nous permet de retenir le 1er axe mais on sera contraint de prendre aussi le deuxieme:" # ajout nom de la colonne 
row.names(lambda) <- paste("F",c(i0,2),sep="") # ajout noms des lignes (les components)
lambda
} else {
lambda <- data.frame(Note.acp$eig[i0,1])
names(lambda) <- paste("Kaiser nous a permis de retenir les",length(i0),"axes suivants :")
row.names(lambda) <- paste("F",i0,sep="")
lambda}    # Il y a une autre méthode de l'ebouli des valeurs propres
##    Kaiser nous a permis de retenir les 2 axes suivants :
## F1                                              2.875687
## F2                                              1.119687

2- Graphiquement

require(LeLogicielR)
barplot(Note.acp$eig[,1])
abline(h=1)

0.5.2 méthode de l’ebouli des valeurs propres ( tuyaux d’orgue : barplot)

require(factoextra)
fviz_eig(Note.acp, addlabels = TRUE, ylim = c(0,Note.acp$eig[1,2]+5))

Le premier plan principale nous rapporte donc 71.89 % de l’inertie totale (l’information) du jeu de données ce qui est nettement supérieure au seuil (86.1 %) donnée par les tables statistiques citées dans le livre de F.HUSSON et al. la variabilité expliquée par ce plan est donc significative.

0.6 Représentation des Variables quantitatives actives et Supplémentaires :

0.6.1 Cercle de corrélation :

plot(Note.acp, choix="var", col.var=rainbow(4))  ## cercle  en couleur.

d’une façon bien précise et ordonnée on a :

0.6.2 Description automatique des axes :

dimdesc(Note.acp, axes = 1:2) ## même chose que Cercle-Corrélation mais avec la significativité et très utile lorsque  p est très grand.
## $Dim.1
## $quanti
##         correlation      p.value
## MG        0.9998870 5.045635e-14
## ANGLAIS   0.9148940 5.443832e-04
## STAT      0.9020171 8.799312e-04
## MATH      0.8113552 7.940276e-03
## ARABE     0.7528105 1.922596e-02
## 
## attr(,"class")
## [1] "condes" "list"  
## 
## $Dim.2
## named list()
## attr(,"class")
## [1] "condes" "list"  
## 
## $call
## $call$num.var
## [1] 1
## 
## $call$proba
## [1] 0.05
## 
## $call$weights
## [1] 1 1 1 1 1 1 1 1 1
## 
## $call$X
##               Dim.1 MATH STAT ARABE ANGLAIS     MG   Sexe
## Mohamed  -2.7428277  6.0  6.0   5.0     5.5  5.625 Sexe=M
## Ali      -1.2406355  8.0  8.0   8.0     8.0  8.000 Sexe=M
## Ilyas    -1.0308943  6.0  7.0  11.0     9.5  8.375 Sexe=M
## Anas      3.1381288 14.5 14.5  15.5    15.0 14.875 Sexe=M
## Soumaya   2.0514708 14.0 14.0  12.0    12.5 13.125 Sexe=F
## Houda    -0.9709424 11.0 10.0   5.5     7.0  8.375 Sexe=F
## Yassmine -0.3347428  5.5  7.0  14.0    11.5  9.500 Sexe=F
## Firdaous  0.6201774 13.0 12.5   8.5     9.5 10.875 Sexe=F
## Sara      0.5102656  9.0  9.5  12.5    12.0 10.750 Sexe=F

Ces deux méthodes ci-dessus, nous ont permis de conclure :

1- L’axe 1 (\(F^1\)) est très corrélé positivement, dans l’ordre, à la MG (Moyenne Générale de la classe) (0.9998870) , ANGLAIS (0.914894), , STAT (0.9020171), MATH (0.8113552) et ARABE (0.7528105) alors qu’avec l’axe 2 (\(F^2\)) aucune variable n’est suffisamment significative (mais on en trouve avec une probabilité de 10%). Par conséquent, on peut dire que (\(F^1\)) est l’axe de la Moyenne Générale alors que (\(F^2\)) est l’axe qui oppose la discipline Scientifique à la discipline Littéraire mais pas assez significativement.

Remarque :

1- Notons que la variable MG est extrêmement corrélée à \(F^1\) (corrélation = 1). Cette variable pourrait donc résumer à elle seule la dimension 1.

2- Les quatre Variables ont toutes des coordonnées positives sur L’axe 1 (\(F^1\)). C’est ce qu’on appelle Effet Taille. On peut ajouter que les étudiants qui ont des fortes coordonnées sur \(F^1\) ont une grande Moyenne générale (Les meilleurs de la classe) et donc ont des bonnes notes dans toutes les matières par exemple: Anas et soumaya. Par oppostion, les étudiants ayant des faibles coordonnées sur \(F^1\) ont une trés faible Moyenne générale (Les plus faibles de la classe) et donc ont des mauvaises notes par tout par exemple: Mohammed et Ali.

On passe à l’étape suivante qui est l’étude du mapping des individus.

Commençons par essayer de différencier les étudiants selon la seule V. Quali “Sexe”.

plotellipses(Note.acp)

On remarque que les ellipses des masculins et des féminins se chevauchent donc la moyenne masculine n’est pas significativement différente de la moyenne féminine.

0.7 Contribution des Individus aux axes retenus :

1-

On choisira sur chaque axe (ou sur le plan) les individus les plus “contributifs” (\(|contrib| \geq \frac{1}{n}\)) parmi ceux les bien représentés (QR assez grand). Pour ce, on dispose de plusieurs méthodes :

plot(Note.acp,choix="ind",habillage=6) ## mapping des individus.

plot(Note.acp,choix="ind",select="contrib 7") ## les 6 premiers contributifs au plan.

plot(Note.acp,select="cos2 .98")  ## ceux qui ont QR >= 98% dans le plan.

2-

- les individus qui contribuent plus que la moyenne (\(\frac{1}{n}\)) sur les axes 1 et 2.

n <- nrow(Note)
seuil=1/n*100
i <- which(Note.acp$ind$contrib[,1] >= seuil)
sel <- row.names(data.frame(Note.acp$ind$contrib[i,1]))
Tab=data.frame(cbind(sign(Note.acp$ind$coord[sel,1]),Note.acp$ind$contrib[sel,1]))
names(Tab) <- c("signe", "C.I.F1")
Tabp <- Tab[which(sign(Tab[,1])==1),]
Tabn <- Tab[which(sign(Tab[,1])==-1),]
dfp <-Tabp[order(Tabp$C.I.F1,decreasing = TRUE),]
dfn <-Tabn[order(Tabn$C.I.F1,decreasing = FALSE),]
(dfT <- rbind(dfp,dfn))
##         signe   C.I.F1
## Anas        1 38.05024
## Soumaya     1 16.26097
## Mohamed    -1 29.06785
i <- which(Note.acp$ind$contrib[,2] >= seuil)
sel <- row.names(data.frame(Note.acp$ind$contrib[i,2]))
Tab=data.frame(cbind(sign(Note.acp$ind$coord[sel,2]),Note.acp$ind$contrib[sel,2]))
names(Tab) <- c("signe", "C.I.F2")
Tabp <- Tab[which(sign(Tab[,1])==1),]
Tabn <- Tab[which(sign(Tab[,1])==-1),]
dfp <-Tabp[order(Tabp$C.I.F2,decreasing = TRUE),]
dfn <-Tabn[order(Tabn$C.I.F2,decreasing = FALSE),]
(dfT <- rbind(dfp,dfn))
##          signe   C.I.F2
## Yassmine     1 37.24834
## Firdaous    -1 16.53623
## Houda       -1 22.25366

0.7.1 - Graphiques pour la qualité de représentation et la contribution par FactoMineR :

0.7.2 1- QR sur le plan :

sort(Note.acp$ind$cos2[,1]+Note.acp$ind$cos2[,2],decreasing=TRUE) -> cos
barplot(cos,col= "skyblue2",las=2)
abline(h=mean(cos),col="red",lty=2)

0.7.3 2- Contrib :

op <- par(mfrow = c(1, 2),bg="lightyellow")
sort(Note.acp$ind$contrib[,1],decreasing=TRUE) -> cont
barplot(cont,col= "skyblue2",las=2,main="contrib a Dim 1")
abline(h=mean(cont),col="red",lty=2)
sort(Note.acp$ind$contrib[,2],decreasing=TRUE)->cont
barplot(cont,col="lightblue",las=2,main="contrib a Dim 2")
abline(h=mean(cont),col="red",lty=2)

par(op)

Autre méthode simple :

plot(Note.acp, choix="ind", select="co,trib 5", axes=c(1,1))

plot(Note.acp, choix="ind", select="contrib 5", axes=c(2,2))

3- Contrib au plan par factoextra

require(factoextra)
fviz_contrib(Note.acp, choice="ind", axes=c(1,2))

0.8 Classification hierarchique des individus :

HCPC(Note.acp, nb.clust=-1) ##nb.clust=-1 ==> choix auto du nb de clusters.

## **Results for the Hierarchical Clustering on Principal Components**
##    name                   
## 1  "$data.clust"          
## 2  "$desc.var"            
## 3  "$desc.var$quanti.var" 
## 4  "$desc.var$quanti"     
## 5  "$desc.axes"           
## 6  "$desc.axes$quanti.var"
## 7  "$desc.axes$quanti"    
## 8  "$desc.ind"            
## 9  "$desc.ind$para"       
## 10 "$desc.ind$dist"       
## 11 "$call"                
## 12 "$call$t"              
##    description                                             
## 1  "dataset with the cluster of the individuals"           
## 2  "description of the clusters by the variables"          
## 3  "description of the cluster var. by the continuous var."
## 4  "description of the clusters by the continuous var."    
## 5  "description of the clusters by the dimensions"         
## 6  "description of the cluster var. by the axes"           
## 7  "description of the clusters by the axes"               
## 8  "description of the clusters by the individuals"        
## 9  "parangons of each clusters"                            
## 10 "specific individuals"                                  
## 11 "summary statistics"                                    
## 12 "description of the tree"
hc <- HCPC(Note.acp, nb.clust=-1)

hc$desc.axes
## 
## Link between the cluster variable and the quantitative variables
## ================================================================
##            Eta2    P-value
## Dim.1 0.7602861 0.01377462
## Dim.2 0.7224943 0.02137056
## 
## Description of each cluster by quantitative variables
## =====================================================
## $`1`
## NULL
## 
## $`2`
##         v.test Mean in category  Overall mean sd in category Overall sd
## Dim.2 2.400884         1.270251 -1.418618e-16      0.4806357   1.058153
##          p.value
## Dim.2 0.01635552
## 
## $`3`
##         v.test Mean in category Overall mean sd in category Overall sd
## Dim.1 2.284007         1.936592  3.94746e-16       1.031154   1.695785
##          p.value
## Dim.1 0.02237112
hc$data.clust
##          MATH STAT ARABE ANGLAIS     MG Sexe clust
## Mohamed   6.0  6.0   5.0     5.5  5.625    M     1
## Ali       8.0  8.0   8.0     8.0  8.000    M     1
## Ilyas     6.0  7.0  11.0     9.5  8.375    M     2
## Anas     14.5 14.5  15.5    15.0 14.875    M     3
## Soumaya  14.0 14.0  12.0    12.5 13.125    F     3
## Houda    11.0 10.0   5.5     7.0  8.375    F     1
## Yassmine  5.5  7.0  14.0    11.5  9.500    F     2
## Firdaous 13.0 12.5   8.5     9.5 10.875    F     3
## Sara      9.0  9.5  12.5    12.0 10.750    F     2
row.names(hc$data)[which(hc$data$clust==1)]
## [1] "Mohamed" "Ali"     "Houda"
row.names(hc$data)[which(hc$data$clust==2)]
## [1] "Ilyas"    "Yassmine" "Sara"
row.names(hc$data)[which(hc$data$clust==3)]
## [1] "Anas"     "Soumaya"  "Firdaous"

les individus appartenant à la première classe sont Mohamed, Ali, Houda. Cette classe est caractérisée par de faibles valeurs en ARABE, ANGLAIS et MG.

Ceux de la deuxième classe sont Ilyas, Yassmine, Sara. Cette classe est celle des moyens et plus au moins des littéraires.

Enfin ceux de la troisième classe sont Anas, Soumaya, Firdaous . Cette classe est caractérisée par les meilleurs partout.