/
introduction_fr.Rmd
256 lines (190 loc) · 10.5 KB
/
introduction_fr.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
---
title: "Exploration interactive de résultats d'ACP/ACM avec `explor`"
author: "Julien Barnier"
date: "`r Sys.Date()`"
output:
rmarkdown::html_vignette:
fig_width: 5
toc: true
vignette: >
%\VignetteIndexEntry{[fr] Exploration interactive de résultats d'ACP/ACM avec `explor`}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
## explor
`explor` est un package R qui permet l'exploration "interactive" des résultats d'une analyse exploratoire multidimensionnelle.
Pour le moment il est utilisable avec les types d'analyses suivants :
Méthode | Fonction | Package | Notes
------------- | ------------- | ---------- | --------
Analyse en composantes principales | PCA | [FactoMineR](http://factominer.free.fr/) | -
Analyse des correspondances | CA | [FactoMineR](http://factominer.free.fr/) | -
Analyse des correspondances multiples | MCA | [FactoMineR](http://factominer.free.fr/) | -
Analyse en composantes principales | dudi.pca | [ade4](https://cran.r-project.org/package=ade4) | Les variables supplémentaires qualitatives ne sont pas prises en charge
Analyse des correspondances | dudi.coa | [ade4](https://cran.r-project.org/package=ade4) | -
Analyse des correspondances multiples | dudi.acm | [ade4](https://cran.r-project.org/package=ade4) | Les variables supplémentaires quantitatives ne sont pas prises en charge
Analyse des correspondances multiples spécifique | speMCA | [GDAtools](https://cran.r-project.org/package=GDAtools) | Les variables supplémentaires ne sont pas prises en charge
Analyse des correspondances multiples | mca | [MASS](https://cran.r-project.org/package=MASS) | Les variables supplémentaires ne sont pas prises en charge
Analyse en composantes principales | princomp | stats | Les variables supplémentaires ne sont pas prises en charge
Analyse en composantes principales | prcomp | stats | Les variables supplémentaires ne sont pas prises en charge
La philosophie d'`explor` est de n'être qu'une interface de visualisation, et de ne rien "exécuter" par elle-même. Les analyses et calculs se font dans votre script R, et `explor` vous aide seulement à visualiser leurs résultats. L'idée est de conserver l'ensemble des commandes dans les scripts et de ne pas risquer d'être un obstacle à la reproductibilité des analyses.
## Fonctionnalités
Pour chaque méthode, `explor` lance une interface Web interactive qui s'affiche soit directement dans RStudio, soit dans votre navigateur. Cette interface comprend une série d'onglets présentant différents tableaux et graphiques. Ceux-ci sont, autant que possible, "interactifs" : les résultats numériques sont affichés sous forme de tableaux dynamiques triables et filtrables (grâce au package `DT`), et les graphiques, générés pour la plupart par le package `scatterD3`, ont les fonctionnalités suivantes :
- zoom avec la molette de la souris
- déplacement avec la souris
- affichage de *tooltips* au survol des points
- mise en valeur des données correspondantes au survol des items de légendes
- étiquettes déplaçables
- sélection de points à l'aide d'un outil de type "lasso"
- possibilité d'export du graphique actuel au format SVG
- possibilité de récupérer le code R permettant de reproduire le graphique actuel dans un script ou un document
- les modifications du graphique se font sous la forme de transitions animées
À noter que les interfaces sont traduites en français.
## Utilisation
L'utilisation du package est très simple : il suffit d'appliquer la fonction `explor()` à l'objet résultant d'une méthode prise en charge.
### `prcomp`, `princomp` et `MASS::mca`
Pour visualiser les résultats de ces fonctions, il suffit de passer l'objet
résultat à `explor()`.
Voici un exemple avec une ACP réalisée avec `princomp` :
```r
data(USArrests)
pca <- princomp(USArrests, cor = TRUE)
explor(pca)
```
`explor` permet de visualiser des individus supplémentaires dont les
coordonnées ont été calculées avec `predict`. Il suffit de les ajouter comme
un élément nommé `supi` de l'objet résultat.
Voici un exemple avec `prcomp` :
```r
pca <- prcomp(USArrests[6:50,], scale. = TRUE)
pca$supi <- predict(pca, USArrests[1:5,])
explor(pca)
```
Pour `MASS::mca`, `explor()` permet également la visualisation de variables
qualitatives supplémentaires. Leurs coordonnées doivent être ajoutées comme un
élément nommé `supv` de l'objet résultat. À noter qu'il est également
préférable d'ajouter manuellement les noms de lignes à l'élément `supi` car
`predict` ne les conserve pas :
```r
library(MASS)
mca <- MASS::mca(farms[4:20, 2:4], nf = 11)
supi_df <- farms[1:3, 2:4]
supi <- predict(mca, supi_df, type="row")
rownames(supi) <- rownames(supi_df)
mca$supi <- supi
mca$supv <- predict(mca, farms[4:20, 1, drop=FALSE], type="factor")
explor(mca)
```
À noter que les réultats de ces trois fonctions sont assez limités, elles ne
fournissent que les coordonnées des variables et des individus, pas de
contributions ou de cosinus carrés par exemple.
### Fonctions de `FactoMineR`
Pour les fonctions de `FactoMineR` prises en charge, il suffit de passer l'objet contenant les résultats directement à`explor()`.
Exemple d'analyse en composantes principales avec `FactoMineR::PCA` :
```r
library(FactoMineR)
data(decathlon)
pca <- PCA(decathlon[,1:12], quanti.sup = 11:12)
explor(pca)
```
Exemple d'analyse des correspondances simples avec `FactoMiner::CA` :
```r
data(children)
res.ca <- CA(children, row.sup = 15:18, col.sup = 6:8)
explor(res.ca)
```
Exemple d'analyse des correspondances multiples avec `FactoMineR::MCA` :
```r
library(FactoMineR)
data(hobbies)
mca <- MCA(hobbies[1:1000, c(1:8,21:23)], quali.sup = 9:10,
quanti.sup = 11, ind.sup = 1:100)
explor(mca)
```
### Fonctions d'`ade4`
Les résultats des fonctions d'`ade4` prises en charge peuvent également être directement passées à `explor()`.
Par exemple, pour visualiser les résultats d'une ACP :
```r
library(ade4)
data(deug)
pca <- dudi.pca(deug$tab, scale = TRUE, scannf = FALSE, nf = 5)
explor(pca)
```
Des étapes supplémentaires sont nécessaires si on souhaite ajouter des éléments supplémentaires, car `ade4` ne les inclut pas directement dans l'objet résultat. Il faut donc calculer les coordonnées de ces éléments avec `suprow` ou `supcol`, et les ajouter comme éléments `supi` (pour les individus supplémentaires) ou `supv` (pour les variables supplémentaires) de l'objet résultat.
Voici un exemple de comment faire tout cela pour une ACP :
```r
data(deug)
d <- deug$tab
sup_var <- d[-(1:10), 8:9]
sup_ind <- d[1:10, -(8:9)]
pca <- dudi.pca(d[-(1:10), -(8:9)], scale = TRUE, scannf = FALSE, nf = 5)
## Individus supplémentaires
supi <- suprow(pca, sup_ind)
pca$supi <- supi$lisup
## Variables supplémentaires
supv <- supcol(pca, dudi.pca(sup_var, scale = TRUE, scannf = FALSE)$tab)
pca$supv <- supv$cosup
explor(pca)
```
Il est nécessaire de faire la même chose en cas d'éléments supplémentaires pour une analyse des correspondances multiples :
```r
data(banque)
d <- banque[-(1:100),-(19:21)]
ind_sup <- banque[1:100, -(19:21)]
var_sup <- banque[-(1:100),19:21]
acm <- dudi.acm(d, scannf = FALSE, nf = 5)
## Variables supplémentaires
acm$supv <- supcol(acm, dudi.acm(var_sup, scannf = FALSE, nf = 5)$tab)$cosup
## Individus supplémentaires
acm$supi <- suprow(acm, ind_sup)$lisup
explor(acm)
```
Pour une analyse des correspondances simples, on peut afficher des lignes ou colonnes supplémentaires en ajoutant leurs coordonnées à des éléments nommés `supr` ou `supc` :
```r
data(bordeaux)
tab <- bordeaux
row_sup <- tab[5,-4]
col_sup <- tab[-5,4]
coa <- dudi.coa(tab[-5,-4], nf = 5, scannf = FALSE)
coa$supr <- suprow(coa, row_sup)$lisup
coa$supc <- supcol(coa, col_sup)$cosup
explor(coa)
```
### Fonctions de `GDAtools`
Les résultats des fonctions de `GDAtools` prises en charge peuvent également être directement passées à `explor()`.
```r
library(GDAtools)
data(Music)
mca <- speMCA(Music[,1:5],excl=c(3,6,9,12,15))
explor(mca)
```
Pour ajouter des individus supplémentaires, il est nécessaire de calculer leurs données associées à l'aide de la fonction `indsup`, puis de les ajouter manuellement comme un éléménet nommé `supi` de l'objet résultat.
Voici un exemple :
```r
library(GDAtools)
data(Music)
mca <- speMCA(Music[3:nrow(Music),1:5],excl=c(3,6,9,12,15))
mca$supi <- indsup(mca,Music[1:2,1:5])
explor(mca)
```
## Export des graphiques
`explor` offre deux possibilités pour exporter les graphiques affichés dans l'interface.
### Export SVG
Pour exporter le graphique actuellement affiché au format SVG, cliquez sur le bouton *Exporter en SVG* (icône en bas de la barre latérale gauche), ou choisissez l'entrée *Export to SVG* du menu "engrenage" du graphique.
Le SVG est un format de dessin vectoriel, éditable et redimensionnable sans perte à l'aide d'un logiciel comme [Inkscape](https://inkscape.org/).
La fonction d'export SVG peut rencontrer des problèmes quand elle est effectuée depuis RStudio. Si c'est le cas, ouvrez d'abord `explor` dans un navigateur en cliquant sur *Open in Browser*, avant d'exporter.
### Récupérer le code R
L'autre possibilité est de récupérer le code R permettant de générer le graphique actuellement affiché, ce qui permet de le reproduire ensuite dans un script ou un document *Rmarkdown*.
Pour cela, cliquez sur le bouton *Obtenir le code R* en bas de la barre latérale. Une boîte de dialogue s'affiche, vous n'avez plus qu'à copier/coller le code R qui s'y trouve.
À noter que ce code R respecte le zoom effectué sur le graphique au moment de l'export, mais pas les positions des labels. Si vous souhaitez conserver celles-ci, il faut d'abord les enregistrer dans un fichier CSV avec l'entrée *Export labels positions* du menu "Engrenage". Ensuite, dans votre script, chargez ce fichier CSV dans un objet à l'aide de `read.csv` puis passez cet objet à l'argument `export_labels_positions` dans le code généré :
```r
labels <- read.csv("position_labels.csv")
res <- explor::prepare_results(mca)
explor::MCA_var_plot(res, xax = 1, yax = 2,
var_sup = TRUE, , var_lab_min_contrib = 0,
col_var = "Variable", symbol_var = "Type",
size_var = NULL, size_range = c(10, 300),
labels_size = 10, point_size = 56,
transitions = TRUE, labels_positions = labels)
```
## Bugs et commentaires
`explor` est un package très récent, qui comporte donc certainement des bugs et autres problèmes. N'hésitez pas à les signaler par mail ou en créant une [*issue* sur GitHub](https://github.com/juba/explor/issues).