Vous êtes sur la page 1sur 12

ACP-Etude de cas

## __Lecture des données__

Nous utiliserons le jeu de données de démonstration `decathlon2` du package `factoextra`.

Pour avoir un aperçu sur les données, utiliser les fonction suivantes:

`str()` pour afficher un listing de toutes les variables et de leurs types

`head()` pour afficher les 6 premières lignes

`tail` pour afficher les 6 dernières lignes

```
Calculer les statistiques descriptives des variables à l'aide de la fonction `summary()`

summary(decathlon2)

```

Pour __opérez une sélection__ dans un dataframe, vous pouvez sélectionner selon un indice ou un
vecteur d'indice, sur les lignes, les colonnes ou les deux en même temps.

`decathlon2[c(1,2,5), ]` permet de sélectionner les lignes 1, 2 et 5

`decathlon2[, c(3,5,7)]` permet de sélectionner les colonnes 3, 5 et 7

`decathlon2[c(1,2,5), c(3,5,7)]` permet de sélectionner les lignes 1, 2 et 5 sur les colonnes 3, 5 et 7


```

## __Etude des corrélations__

Calculer la matrice de corrélation relative au jeu de données en utilisant la fonction `cor`

```

### __Visualiation des correlations__

Il y a plusieurs packages disponibles pour visualiser les matrices de corrélation dans __$R$__. L’un
des plus communs est le package `corrplot`

Pour visualiser la matrice de corrélation, procéder comme suivant :

1. Charger la package `corrplot` (Il faut bien évidemment l'installer s'il ne l'est pas).

2. Claculer la matrice de corrélation et nommer la `corr.decathlon`

3. appliquer la fonction `corrplot` sur l'objet `corr.decathlon`


```

Comme vous pouvez constater, les corrélations positives sont affichées sur une échelle bleue tandis
que les corrélations négatives sont affichées sur une échelle rouge. La taille du cercle est
proportionnelle à l'intensité de la corrélation.

La visualisation permet d'identifier rapidement les principaux liens entre les variables, puis une
analyse plus profonde peut être entamée sur la base de les tests de corrélation.

### __Test de significativité de la corrélation (p-value)__

Le résultat de la fonction `cor()` est une table de coefficients de corrélation entre chaque variable et
les autres. Mais, cette fonction n'affiche pas la significativité de la corrélation (p-value).

La fonction `rcorr()` du package `Hmisc` peut être utilisée pour calculer le niveau de significativité
pour les corrélations de pearson et de spearman.

La fonction `rcorr()` renvoie une liste avec les éléments suivants :


-la matrice de corrélation

-la matrice du nombre d’observations utilisé dans l’analyse de chaque paire de variables

-les p-values correspondant aux niveaux de significativité des corrélations

Vous pouvez avoir plus de détail sur les éléments de l'objet renvoyé par la fonction `rcorr()` par la
fonction `str()`

## __Calcul des composantes principales__

La fonction `PCA()` du package `FactorMiner` permet de calculer les conposantes principale :

```

### __Les valeurs propres/la variabilité retenue__

Comme décrit dans les sections précédentes, les valeurs propres mesurent les quantités des
variations retenues par chaque composante principale. Ainsi, on s'attend à ce que la valeur propre de
la première composante principale soit la plus élevée, et que celles des composantes suivantes
soient de plus en plus inférieures à leurs précédentes.

Autrement dit, les premieres composantes principales indiquent les directions relatives aux
variations maximales des données.

Nous examinons les valeurs propres pour déterminer le nombre de composantes principales à
retenir. Les valeurs propres et les proportions des variations (ou bien de l’information) conservés par
les composantes principales peuvent être extraites en utilisant la fonction `get_eigenvalue()`
```

La somme des valeurs propres donne un total de 12.

La proportion de variation expliquée par chaque valeur propre est donnée dans la seconde colonne.
Par exemple, pour la première composante `Dim.1`, la valeur propre `5.16` divisé par 12 est égal à
`0,43` Ainsi, environ `43,04\%` de la variation est expliquée par cette première valeur propre.

Le pourcentage cumulatif s’obtient en additionnant les proportions successives de variation


expliquées.

Par conséquent, environ `57.59\%` de la variation est expliquée par les deux premières composantes
principales.

Les valeurs propres peuvent être utilisées pour déterminer le nombre de composants principales à
retenir :
-Une valeur propre `>1` indique que la composante principale corréspondante représentent retient
plus de variance que la variable d’origine dans les données normalisées. C'est un seuil couramment
utilisé pour lequel les composantes principales sont conservés.

-Vous pouvez également limiter le nombre de composants en fonction de la variabilité retenue. Par
exemple, si vous êtes

satisfait avec `70%` de la variance totale expliquée, conservez le nombre de composants necessaires
pour y parvenir.

Une autre méthode pour déterminer le nombre de composants principaux est de se servivr du
graphique ci-après qui retrace les valeurs propres de la plus grande à la plus petit.

Le nombre de composantes à retenir est déterminé au point au-delà duquel les valeurs propres
restantes sont toutes relativement petites et de taille comparable.

```{r Plot_eigenvalue-decath_acp, exercise=TRUE, exercise.eval=TRUE, exercise.setup="prepare-


PCA_decathlon2"}

```

```{r Plot_eigenvalue-decath_acp-hint}

fviz_eig(decath.acp, addlabels = TRUE, ylim = c(0, 50))

```

## __représentations graphiques des variables__

La fonction `get_pca_var()` permet d'extraire les résultats relatives aux variables d'origines depuis
l'objet retourné par la fonction `PCA`

Appliquer la sur l'objet `decath.acp` Nommer l'output `cmp_var`

Afficher les élément de l'objet `cmp_var` par la fonction `str()`

Les élément de l'objet `cmp_var` qui serviront à la représentation des variables sont :
## __Le cercle de corrélation__

La corrélation entre une variable et une composante principale (__CP__) est utilisée comme
coordonnée de la variable sur la __CP__ .
**La représentation des variables diffère de le graphique des observations : Les observations sont
représentées par leur les projections, mais les variables sont représentées par leurs corrélations**

Le graphique ci-dessus montre les relations entre toutes les variables. Il peut être interprété comme
suit :

-Les variables `positivement` corrélées sont regroupées.

-Les variables `négativement` corrélées sont positionnées sur les côtés opposés du graphique
(quadrants opposés).

-Les distances entre les variables et l’origine mesure la qualité de représentation des variables sur les
composantes. principales. Plus la variable est éloignée de l'origine, mieux est la représentation.

## __La qualité de représentation des variables sur les composantes__

- La qualité de représentation des variables sur les composantes est enregistré dans la matrice
`cmp_var$cos2` Taper la dans la console ci-dessous pour afficher les valeurs.

- Pour toutes les variables, la somme des `cos2` sur les composantes principales est égale à `1`

- Un `cos2` élevé indique une bonne représentation de la variable sur la composant principal. Dans ce
cas, la variable est positionnée proche de la circonférence du cercle de corrélation.

- Un `cos2` bas indique que la variable n’est pas bien représentée par la composant principal. Dans ce
cas, la variable est proche du centre du cercle.

- Vous pouvez les visualiser en utilisant le fonction `corrplot` sur `cmp_var$cos2`


## __Description des dimensions__

La fonction `dimdesc()` du package `FactoMineR` peut être utilisée pour la description des
dimensions, elle permet d'identifier les variables les plus significativement associées à une
composante principale donnée . Il peut être utilisé comme suit : $$dimdesc(cmp\_var, axes = c(...),
proba = ...)$$

Avec `axes` représente le nombre de composante à décrire et `proba` est le seuil de confiance
adopté ($=0.05$ par défaut).
## __représentations graphiques des individus__

Les résultats relatifs aux individus peuvent être extraits depuis l'objet `decath.acp` en utilisant la
fonction `get_pca_ind()` du package `factoextra`

Appliquer `get_pca_ind()` sur `decath.acp`, nommer le résultat `indiv.desc` et afficher ses éléments.

```

De la même façon que `get_pca_var()`, la fonction `get_pca_ind()` retourne une liste de matrices
contenant tous les résultats pour les individus (coordonnées, corrélation entre variables et axes,
cosinus carré et contributions)

### __Qualité de représentation et contribution__


Le graphique des individus dans l'espace des composantes peut être tracer par la fonction
`fviz_pca_ind`

Il'est aussi possible de colorier les individus en fonction de la qualité de représentation (`cos2`).

```{r Plot_indiv-Cos2-decath, exercise=TRUE, exercise.eval=TRUE, exercise.setup="CP_decathlon2"}

Plot.indiv_quality<-fviz_pca_ind(decath.acp, col.ind = "cos2", gradient.cols =c("red", "yellow",


"green"), repel = TRUE)

```

`repel = TRUE` est pour éviter le chevauchement

Les individus similaires sont regroupés dans le graphique.

Vous pouvez améliorer le graphique en mettant les points des individus en fonction du `cos2`

Vous pouvez aussi utiliser la fonction `fviz_contrib` pour visualiser les contributions des individus
dans la formation des composantes principale.

Vous aimerez peut-être aussi