FSJES FES
EMAIL:
LIEN: http://fsjes.usmba.ac.ma/

1 presentation des donnes

###On donne ci-après les consommations annuelles en 1972 (arrondies au Franc près) de 8 denrées alimentaires (les variables). Les individus sont les 8 CSP (catégories socioprofessionnelles). Les données sont donc des moyennes par CSP.

2 importation des donnes

data<-read.csv2(file.choose(),row.names = 1)
data
###on constat que on a un tableaux de ind*var de 8 variable et de 8 individuals.

3 On écrit la matrice de corrélation:

round(cor(data),2) 
##       PAO   PAA   The    JE   POT   LEC   RAI   PLP
## PAO  1.00 -0.77  0.93 -0.91  0.66  0.89 -0.83 -0.86
## PAA -0.77  1.00 -0.60  0.90 -0.33 -0.67  0.96  0.77
## The  0.93 -0.60  1.00 -0.75  0.52  0.79 -0.67 -0.83
## JE  -0.91  0.90 -0.75  1.00 -0.42 -0.84  0.92  0.72
## POT  0.66 -0.33  0.52 -0.42  1.00  0.60 -0.41 -0.55
## LEC  0.89 -0.67  0.79 -0.84  0.60  1.00 -0.82 -0.75
## RAI -0.83  0.96 -0.67  0.92 -0.41 -0.82  1.00  0.83
## PLP -0.86  0.77 -0.83  0.72 -0.55 -0.75  0.83  1.00
####data est une matrice carré de taille p x p
####data est une matrice symétrique
#####data possède une diagonale de 1
#####La matrice de corrélation peut être visualisée à l'aide d'un corrélogramme .
########Dans le tableau ci-dessus , les coefficients de corrélation entre les paires possibles de variables sont indiqués.

4 calculer les niveaux de signification des corrélations

require(Hmisc)
## Loading required package: Hmisc
## Loading required package: lattice
## Loading required package: survival
## Loading required package: Formula
## Loading required package: ggplot2
## 
## Attaching package: 'Hmisc'
## The following objects are masked from 'package:base':
## 
##     format.pval, units
rcorr(as.matrix(data))
##       PAO   PAA   The    JE   POT   LEC   RAI   PLP
## PAO  1.00 -0.77  0.93 -0.91  0.66  0.89 -0.83 -0.86
## PAA -0.77  1.00 -0.60  0.90 -0.33 -0.67  0.96  0.77
## The  0.93 -0.60  1.00 -0.75  0.52  0.79 -0.67 -0.83
## JE  -0.91  0.90 -0.75  1.00 -0.42 -0.84  0.92  0.72
## POT  0.66 -0.33  0.52 -0.42  1.00  0.60 -0.41 -0.55
## LEC  0.89 -0.67  0.79 -0.84  0.60  1.00 -0.82 -0.75
## RAI -0.83  0.96 -0.67  0.92 -0.41 -0.82  1.00  0.83
## PLP -0.86  0.77 -0.83  0.72 -0.55 -0.75  0.83  1.00
## 
## n= 8 
## 
## 
## P
##     PAO    PAA    The    JE     POT    LEC    RAI    PLP   
## PAO        0.0243 0.0010 0.0019 0.0771 0.0032 0.0102 0.0067
## PAA 0.0243        0.1128 0.0020 0.4204 0.0672 0.0002 0.0250
## The 0.0010 0.1128        0.0320 0.1894 0.0192 0.0696 0.0111
## JE  0.0019 0.0020 0.0320        0.3020 0.0093 0.0010 0.0441
## POT 0.0771 0.4204 0.1894 0.3020        0.1136 0.3131 0.1543
## LEC 0.0032 0.0672 0.0192 0.0093 0.1136        0.0118 0.0318
## RAI 0.0102 0.0002 0.0696 0.0010 0.3131 0.0118        0.0100
## PLP 0.0067 0.0250 0.0111 0.0441 0.1543 0.0318 0.0100
#####La sortie de la fonction rcorr() est une liste avec les éléments suivants :
#####- r : la matrice de corrélation 
#######- n : la matrice du nombre d'observations utilisées dans l'analyse de chaque paire de variables 
#######- P : les p-values correspondant à la significativité niveaux de corrélations 

5 Visualiser une matrice de corrélation à l’aide de la fonction symnum

symnum(cor(data))
##     PAO PAA T J PO L R PL
## PAO 1                    
## PAA ,   1                
## The *   ,   1            
## JE  *   *   , 1          
## POT ,   .   . . 1        
## LEC +   ,   , + ,  1     
## RAI +   B   , * .  + 1   
## PLP +   ,   + , .  , + 1 
## attr(,"legend")
## [1] 0 ' ' 0.3 '.' 0.6 ',' 0.8 '+' 0.9 '*' 0.95 'B' 1
########Comme indiqué dans la légende, les coefficients de corrélation entre 0 et 0,3 #####sont remplacés par un espace (" "); les coefficients de corrélation entre 0,3 et #######0,6 sont remplacés par " ; " ; etc …

6 Visualiser une matrice de corrélation à l’aide d’un corrélogramme

#####install.packages("corrplot")
library(corrplot)
## corrplot 0.92 loaded
corrplot(cor(data), type="upper", tl.col="black", tl.srt=45)

####Les corrélations positives sont affichées en bleu (PLP*PLP=1)et les corrélations négatives en rouge (PLP*THE=-0.67) . L'intensité de la couleur et la taille du cercle sont proportionnelles aux coefficients de corrélation . Dans la partie droite du corrélogramme , la couleur de la légende indique les coefficients de corrélation et les couleurs correspondantes.


####La matrice de corrélation est réordonnée en fonction du coefficient de corrélation à l' aide de la méthode "hclust" .
####tl.col (pour la couleur des étiquettes de texte) et tl.srt (pour la rotation des chaînes d'étiquettes de texte) sont utilisés pour modifier les couleurs et les rotations du texte.
#####Les valeurs possibles pour le type d'argument sont : "upper", "lower", "full"

7 On effectue une ACP : normée par le logiciel R

7.1 Lancement de PCA

require(FactoMineR)
## Loading required package: FactoMineR
require(factoextra)
## Loading required package: factoextra
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
res.pca <- PCA(data,graph = FALSE)

7.1.1 Visualiser une matrice de corrélation à l’aide de nuages de points

library(GGally)
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
ggpairs(data)

####ce graphique montre le degré de corrélation entre deux valeurs. 1 et -1 indiquent une relation linéaire parfaite, tandis que 0 indique aucune relation linéaire.
#####Par exemple : La relation entre The et PAO (0.93) est vraiment forte, au contraire POT et PAA (-0.33) est plus faible
###La distribution de chaque variable est représentée sur la diagonale.
####En bas de la diagonale : les nuages ​​de points bivariés avec une ligne ajustée sont affichés
###En haut de la diagonale : la valeur de la corrélation plus le niveau de signification sous forme d'étoiles.
#####Chaque niveau de signification est associé à un symbole :

####p-values(0, 0.001, 0.01, 0.05, 0.1, 1) <=> symboles("***", "**", "*", ".", " ")

8 Visualiser la matrice de corrélation à l’aide d’une carte thermique

# Get some colors
col<- colorRampPalette(c("blue", "white", "red"))(20)
heatmap(x =cor(data), col = col, symm = TRUE)

####x : la matrice de corrélation à tracer
###col : palettes de couleurs
###symm : logique indiquant si x doit être traité de manière symétrique ; ne peut être vraie que si x est une matrice carrée.

9 nombre des Axes a retenir:

res.pca$eig
##         eigenvalue percentage of variance cumulative percentage of variance
## comp 1 6.207946839            77.59933549                          77.59934
## comp 2 0.879681393            10.99601741                          88.59535
## comp 3 0.415961123             5.19951404                          93.79487
## comp 4 0.306454670             3.83068337                          97.62555
## comp 5 0.168441497             2.10551872                          99.73107
## comp 6 0.018067709             0.22584636                          99.95692
## comp 7 0.003446769             0.04308461                         100.00000
res.pca$eig[2,3]
## [1] 88.59535

10 pour trouver la trace dematrice

trace<-function(A)sum(diag(A))
M<-matrix(c(1:3,4:6,7:9),ncol = 3)
M
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6    9
trace(M)
## [1] 15
###on constate que Deux composantes ont suffi pour expliquer plus de 88% (88.59535)de
###l’information (Inertie totale).

11 METHODE DE KAISER

i0 <- which(res.pca$eig[,1]>=1) # les n? des axes dont les val-proprs>=1
lambda <- data.frame(res.pca$eig[i0,1]) # r?ecrire comme data.frame pour pouvoir ajouter les noms (lignes et colonnes)
row.names(lambda)<- row.names(res.pca$eig)[i0] # ajout noms des lignes (les components)
names(lambda) <- "Les axes retenus sont"  # ajout nom de la colonne 
lambda # Il y a une autre m?thode (voir plus loin): m?thode de l'ebouli des valeurs propres ( tuyaux d'orgue : barplot)
barplot(res.pca$eig[,2],ylim = c(0,100))
lines(res.pca$eig[,3])
dec<-sort(res.pca$eig[,3],decreasing = TRUE)
dec
##    comp 7    comp 6    comp 5    comp 4    comp 3    comp 2    comp 1 
## 100.00000  99.95692  99.73107  97.62555  93.79487  88.59535  77.59934
lines(dec,col=2)
lines(dec,col=2,lwid=4)
## Warning in plot.xy(xy.coords(x, y), type = type, ...): "lwid" is not a graphical
## parameter

####percentage of variance
fviz_eig(res.pca, addlabels = TRUE, ylim = c(0, 100)) ####addlabels pour les pourcentage 

12 PCA POUR LES VARIABLES

# PCA POUR LES VARIABLES
res.pca$var
## $coord
##          Dim.1       Dim.2       Dim.3       Dim.4      Dim.5
## PAO -0.9749797  0.12926598  0.10429757  0.06606998  0.1206810
## PAA  0.8687483  0.41323074  0.20635173  0.12063082 -0.1089416
## The -0.8700402  0.18916036  0.43897378 -0.01598936  0.1008460
## JE   0.9309151  0.24414749  0.04739248 -0.21952071 -0.1418418
## POT -0.6138529  0.69764474 -0.35966296 -0.04096049  0.0721205
## LEC -0.9089814  0.12007291  0.02089707  0.28724855 -0.2746472
## RAI  0.9294859  0.30574089  0.16397854  0.03526677  0.1114413
## PLP  0.9011429 -0.04710881 -0.10428318  0.39199413  0.1366334
## 
## $cor
##          Dim.1       Dim.2       Dim.3       Dim.4      Dim.5
## PAO -0.9749797  0.12926598  0.10429757  0.06606998  0.1206810
## PAA  0.8687483  0.41323074  0.20635173  0.12063082 -0.1089416
## The -0.8700402  0.18916036  0.43897378 -0.01598936  0.1008460
## JE   0.9309151  0.24414749  0.04739248 -0.21952071 -0.1418418
## POT -0.6138529  0.69764474 -0.35966296 -0.04096049  0.0721205
## LEC -0.9089814  0.12007291  0.02089707  0.28724855 -0.2746472
## RAI  0.9294859  0.30574089  0.16397854  0.03526677  0.1114413
## PLP  0.9011429 -0.04710881 -0.10428318  0.39199413  0.1366334
## 
## $cos2
##         Dim.1      Dim.2        Dim.3        Dim.4       Dim.5
## PAO 0.9505854 0.01670969 0.0108779840 0.0043652420 0.014563904
## PAA 0.7547236 0.17075964 0.0425810378 0.0145517953 0.011868265
## The 0.7569700 0.03578164 0.1926979829 0.0002556595 0.010169921
## JE  0.8666029 0.05960800 0.0022460470 0.0481893426 0.020119107
## POT 0.3768154 0.48670819 0.1293574416 0.0016777616 0.005201366
## LEC 0.8262471 0.01441750 0.0004366874 0.0825117286 0.075431090
## RAI 0.8639440 0.09347749 0.0268889606 0.0012437454 0.012419159
## PLP 0.8120585 0.00221924 0.0108749822 0.1536593947 0.018668686
## 
## $contrib
##         Dim.1      Dim.2      Dim.3       Dim.4     Dim.5
## PAO 15.312396  1.8995166  2.6151444  1.42443318  8.646269
## PAA 12.157378 19.4115329 10.2367831  4.74843319  7.045927
## The 12.193565  4.0675682 46.3259598  0.08342491  6.037657
## JE  13.959573  6.7760892  0.5399656 15.72478652 11.944270
## POT  6.069888 55.3277802 31.0984451  0.54747464  3.087936
## LEC 13.309507  1.6389460  0.1049827 26.92461130 44.781774
## RAI 13.916742 10.6262892  6.4642966  0.40584971  7.372980
## PLP 13.080951  0.2522777  2.6144227 50.14098653 11.083187
fviz_pca_biplot(res.pca)

fviz_pca_var(res.pca,col.var="green")

corrplot(res.pca$var$cos2, is.corr=FALSE)

fviz_cos2(res.pca,choice="var",axes=1:2)

fviz_pca_var(res.pca, alpha.var="cos2",col.var = 1:8)

corrplot(res.pca$var$contrib,is.corr=FALSE)

12.1 la contribution des variables dans l’axe 1

fviz_contrib(res.pca,choice="var",axes=1,top=10)

12.2 la contribution des variables dans l’axe 2

fviz_contrib(res.pca,choice="var",axes=2,top=10)

12.3 la contribution des variables dans les axes 1 et 2

fviz_contrib(res.pca,choice="var",axes=1:2,top=10)

12.4 la contribution des variables

fviz_pca_var(res.pca,col.var="contrib",gradient.cols=c("#00AFBB","#E7B800","#FC4E07","#E7B800","#FC4E07","#E7B800","#E7B800"))

13 ACP pour les individus

plot(res.pca,choix = "var",axes = c(1:3),select = "cos2 0.6")

res.pca$ind
## $coord
##           Dim.1       Dim.2      Dim.3       Dim.4       Dim.5
## AGRI -3.3715788 -0.24581608  0.8395890 -0.62172682  0.57655700
## SAAG -3.5217117 -0.44739860  0.3515271  0.91617942 -0.49365924
## PRIN  1.4720309  0.05851415 -0.5529570  0.85448454  0.74930243
## CSUP  4.3587865  0.17610682  1.0291875  0.01517950 -0.25877162
## CMOY  1.7180777 -0.85664744 -0.1746349 -0.41188554  0.03988644
## EMPL  0.8065346 -0.80852679 -0.3448490 -0.06912202 -0.20594611
## OUVR -0.8991001 -0.18303912 -0.9776683 -0.55082419 -0.29317809
## INAC -0.5630391  2.30680707 -0.1701944 -0.13228491 -0.11419083
## 
## $cos2
##           Dim.1        Dim.2       Dim.3        Dim.4        Dim.5
## AGRI 0.88444010 0.0047013477 0.054844774 3.007468e-02 0.0258634411
## SAAG 0.89805821 0.0144939287 0.008947765 6.077961e-02 0.0176462090
## PRIN 0.57459845 0.0009079299 0.081079929 1.936150e-01 0.1488829157
## CSUP 0.94181776 0.0015374041 0.052507908 1.142223e-05 0.0033194718
## CMOY 0.75288231 0.1871740871 0.007778640 4.327076e-02 0.0004057814
## EMPL 0.42778496 0.4299008580 0.078205503 3.142044e-03 0.0278924499
## OUVR 0.36060411 0.0149452245 0.426380807 1.353445e-01 0.0383422502
## INAC 0.05551846 0.9319290611 0.005072836 3.064650e-03 0.0022836142
## 
## $contrib
##          Dim.1       Dim.2      Dim.3        Dim.4      Dim.5
## AGRI 22.889096  0.85862826 21.1831585 15.766778699 24.6686523
## SAAG 24.972938  2.84428985  3.7134275 34.237720045 18.0848730
## PRIN  4.363107  0.04865263  9.1884034 29.781885764 41.6653666
## CSUP 38.255441  0.44069383 31.8307079  0.009398506  4.9692885
## CMOY  5.943573 10.42770773  0.9164726  6.919852720  0.1180624
## EMPL  1.309809  9.28909571  3.5736754  0.194884165  3.1475171
## OUVR  1.627714  0.47607181 28.7236966 12.375700062  6.3785789
## INAC  0.638321 75.61486019  0.8704580  0.713780038  0.9676612
## 
## $dist
##     AGRI     SAAG     PRIN     CSUP     CMOY     EMPL     OUVR     INAC 
## 3.585082 3.716221 1.941935 4.491404 1.980064 1.233134 1.497244 2.389570
fviz_pca_ind(res.pca)

fviz_pca_ind(res.pca,pointsize="cos2",pointshape=21,col.ind = "green",repel=TRUE)

13.1 qualite de representation (cos2) de Axe 1

fviz_cos2(res.pca,choice="ind",axes = 1)

13.2 qualite de representation (cos2) de Axe 2

fviz_cos2(res.pca,choice="ind",axes = 2)

13.3 contribution des individus AXE1 ET 2

fviz_contrib(res.pca,choice="ind",axes=1:2)

13.4 contribution des individus

fviz_pca_ind(res.pca,col.ind="contrib",gradient.cols=c("#00AFBB","#E7B800","#FC4E07","#E7B800","#FC4E07","#E7B800","#E7B800"))

dimdesc(res.pca,proba = 0.06)
## $Dim.1
## 
## Link between the variable and the continuous variables (R-square)
## =================================================================================
##     correlation      p.value
## JE    0.9309151 7.821882e-04
## RAI   0.9294859 8.308315e-04
## PLP   0.9011429 2.239726e-03
## PAA   0.8687483 5.110853e-03
## The  -0.8700402 4.966446e-03
## LEC  -0.9089814 1.758745e-03
## PAO  -0.9749797 3.842664e-05
## 
## $Dim.2
## 
## Link between the variable and the continuous variables (R-square)
## =================================================================================
##     correlation    p.value
## POT   0.6976447 0.05437981
## 
## $Dim.3