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.
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.
On écrit la matrice de corrélation:
## 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.
calculer les niveaux de signification des
corrélations
## 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
## 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
Visualiser une matrice de corrélation à l’aide
de la fonction symnum
## 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 …
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"
On effectue une ACP : normée par le logiciel
R
Lancement de PCA
## Loading required package: FactoMineR
## 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)
Visualiser une
matrice de corrélation à l’aide de nuages de points
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2

####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("***", "**", "*", ".", " ")
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.
nombre des Axes a retenir:
## 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
## [1] 88.59535
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
## [1] 15
###on constate que Deux composantes ont suffi pour expliquer plus de 88% (88.59535)de
###l’information (Inertie totale).
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

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_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)

la contribution des
variables dans l’axe 1
fviz_contrib(res.pca,choice="var",axes=1,top=10)

la contribution des
variables dans l’axe 2
fviz_contrib(res.pca,choice="var",axes=2,top=10)

la contribution des
variables dans les axes 1 et 2
fviz_contrib(res.pca,choice="var",axes=1:2,top=10)

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

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

## $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,pointsize="cos2",pointshape=21,col.ind = "green",repel=TRUE)

qualite de
representation (cos2) de Axe 1
fviz_cos2(res.pca,choice="ind",axes = 1)

qualite de
representation (cos2) de Axe 2
fviz_cos2(res.pca,choice="ind",axes = 2)

contribution des
individus AXE1 ET 2
fviz_contrib(res.pca,choice="ind",axes=1:2)

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