You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: inst/tutorials/B07Lb_ca/B07Lb_ca.Rmd
+24-22Lines changed: 24 additions & 22 deletions
Original file line number
Diff line number
Diff line change
@@ -40,50 +40,52 @@ L'Analyse Factorielle des Correspondances (AFC) est une variante de l'Analyse en
40
40
41
41
- Effectuer les graphiques associés à cette analyse
42
42
43
-
- Vous préparez à interpréter par vous-même les résultats de vos AFC
43
+
- Vous préparer à interpréter par vous-même les résultats de vos AFC
44
44
45
45
Avant toute chose, assurez-vous d'avoir bien compris le contenu du [module 7](https://wp.sciviews.org/sdd-umons2/?iframe=wp.sciviews.org/sdd-umons2-2022/acp-afc.html) du cours et en particulier la [section 7.3](https://wp.sciviews.org/sdd-umons2/?iframe=wp.sciviews.org/sdd-umons2-2022/analyse-factorielle-des-correspondances.html).
46
46
47
47
## Couleur des yeux et des cheveux
48
48
49
-
L'étude porte sur 5387 personnes vivant dans l'ancienne région de Caithness, se situant au nord de l'Écosse.
49
+
L'étude porte sur 5387 personnes provenant du Nord de l'Écosse. Le jeu de données se nomme `caith`.
50
50
51
51
```{r, echo=TRUE}
52
52
caith <- read("caith", package = "MASS")
53
53
caith
54
54
```
55
55
56
-
Le tableau de données est un tableau de contingence à double entrée. Observez les colonnes. On en dénombre `r dim(caith)[2]` colonnes. La première colonne est particulièrement intéressante en portant un nom particulier `.rownames`.
56
+
Il s'agit d'un tableau de contingence à double entrée. Observez les colonnes. On en dénombre `r dim(caith)[2]`. La première est de type `character`. Elle porte un nom particulier :`.rownames`.
57
57
58
-
Rappelez-vous que nous retrouvons plusieurs types d'objets pour les tableaux de données: les `data.frames`, les `data.tables` ou encore les `tibbles`. Par défaut en utilisant les fonctions `SciViews`, les tableaux de données sont des `data.tables`. Vous pouvez vérifier la classe d'un objet avec la fonction`class()`.
58
+
Rappelez-vous que nous retrouvons plusieurs types d'objets dans R pour les tableaux de données: les `data.frame`s, les `data.table`s ou encore les `tibble`s. Par défaut dans `SciViews::R`, les tableaux de données sont des `data.table`s. Vous pouvez vérifier la classe d'un objet avec `class()`.
59
59
60
60
```{r, echo=TRUE}
61
61
class(caith)
62
62
```
63
63
64
-
## Réalisation de l'ACF
64
+
## Préparation des données
65
65
66
-
Le tableau nécessaire afin de réaliser une analyse factorielle des correspondances ne doit comprendre que des valeurs numériques. La première colonne `.rownames` est donc un problème. Une solution serait de la retirer avec la fonction`sselect()`. Elle n'est cependant pas la meilleure solution. Cette colonne apporte une information très intéressante dont on ne veut pas se passer. Il est donc préférable d'employer un objet différent. Les `data.frames` supporte les noms des lignes (*rownames*).
66
+
Le tableau nécessaire afin de réaliser une analyse factorielle des correspondances ne doit comprendre que des valeurs numériques. La première colonne `.rownames` est donc un problème. Une solution serait de la retirer avec, par exemple,`sselect()`. Ce n'est cependant pas la meilleure solution. Cette colonne apporte une information très intéressante dont on ne veut pas se passer : un label pour les lignes du tableau. Il est donc préférable de convertir en un objet différent qui prendra en compte ces labels. Les `data.frame`s supportent des noms pour les lignes (*rownames*) autant que les colonnes à la différence des `data.table`s et des `tibble`s.
67
67
68
-
Convertissez l'objet `caith`un `data.tables`en `data.frames` à l'aide de la fonction`as_dtf()`. Nommez ce nouvel objet `caith_df`.
68
+
Convertissez l'objet `caith` en `data.frame` à l'aide de `as_dtf()`. Nommez ce nouvel objet `caith_df`.
69
69
70
70
```{r dtf, exercise=TRUE}
71
71
caith_df <- ___(___)
72
-
# affichez le tableau
72
+
# Afficher le tableau
73
73
caith_df
74
74
```
75
75
76
76
```{r dtf-solution}
77
77
caith_df <- as_dtf(caith)
78
-
# affichez le tableau
78
+
# Afficher le tableau
79
79
caith_df
80
80
```
81
81
82
82
```{r dtf-check}
83
-
grade_code("La conversion du tableau de données entre le `data.tables` en `data.frames` est simple avec la fonction `as_dtf()`. par defaut, la fonction reconnait la colonne .rownames et la converti en nom de ligne pour un objet de class data.frames qui les accepte.")
83
+
grade_code("La conversion du tableau en `data.frames` est simple avec la fonction `as_dtf()`. Par defaut, la fonction reconnait la colonne `.rownames` et la converti en nom de lignes. Si la colonne à transformer en nom des lignes porte un autre nom que `.rownames`, alors vous pouvez utiliser l'argument `rownames =` pour indiquer quelle colonne utiliser.")
84
84
```
85
85
86
-
Réalisez à présent une analyse factorielle des correspondances sur l'objet `caith_df` et nommez cet objet `caith_ca`. Proposez en plus le résumé de cet objet.
86
+
## Réalisation de l'ACF
87
+
88
+
Réalisez à présent une analyse factorielle des correspondances sur l'objet `caith_df` et nommez-la `caith_ca`. Réalisez ensuite le résumé de ce dernier objet.
87
89
88
90
```{r ca_h2, exercise=TRUE}
89
91
# AFC
@@ -94,7 +96,7 @@ ___(___)
94
96
95
97
```{r ca_h2-hint-1}
96
98
# AFC
97
-
caith_ca <- ca()
99
+
caith_ca <- ca(___)
98
100
# Résumé de l'objet
99
101
___(caith_ca)
100
102
```
@@ -107,10 +109,10 @@ summary(caith_ca)
107
109
```
108
110
109
111
```{r ca_h2-check}
110
-
grade_code("Le code est simple à réaliser. Le résumé de l'objet met en avant qu'avec les deux premiers axes ont couvre 99.6% de la variance. Le premier axe couvre plus de 86%. L'essentiel de l'information se lira sur ce seul axe.")
112
+
grade_code("Le code est simple. Le résumé de l'objet met en avant qu'avec les deux premiers axes on couvre 99.6% de la variance. Le premier axe couvre déjà plus de 86%. L'essentiel de l'information se lira donc dans le premier plan de projection.")
111
113
```
112
114
113
-
Proposez le graphique des éboulis associé à l'objet `caith_ca`
115
+
Réalisez le graphique des éboulis de votre analyse.
114
116
115
117
```{r scree, exercise=TRUE}
116
118
___$___()
@@ -121,10 +123,10 @@ chart$scree(caith_ca)
121
123
```
122
124
123
125
```{r scree-check}
124
-
grade_code("Ce graphique vient en complément du premier tableau proposé dans le résumé. On observe que le premier axe comprend une grande part de la variance.")
126
+
grade_code("Ce graphique vient en complément du résumé. On observe que le premier axe comprend une grande part de la variance.")
125
127
```
126
128
127
-
Proposez enfin la carte (biplot) de votre objet `caith_ca`.
129
+
Réalisez enfin la carte (biplot) de votre AFC.
128
130
129
131
```{r biplot, exercise=TRUE}
130
132
___$___()
@@ -135,12 +137,12 @@ chart$biplot(caith_ca)
135
137
```
136
138
137
139
```{r biplot-check}
138
-
grade_code("Ce graphique va s'analyser en 3 étapes. On va d'abord s'intéresser aux yeux, puis au cheveux et enfin les deux ensembles. Faites le travail par vousmême avant de vous rendre dans la section suivante pour comparer votre analyse avec celle que nous vous proposons.")
140
+
grade_code("Ce graphique va s'analyser en trois étapes. On va d'abord s'intéresser aux yeux, puis au cheveux et enfin les deux ensemble. Faites le travail par vous-même avant de vous rendre dans la section suivante pour comparer votre analyse avec celle que nous vous proposons.")
139
141
```
140
142
141
-
## Interprétation de ACF
143
+
## Interprétation d'une ACF
142
144
143
-
Les instructions réalisées pour obtenir l'AFC sont assez simples, mais toute la subtilité vient de l'analyse des résultats.
145
+
Les instructions pour obtenir l'AFC sont assez simples, au delà de la petite difficulté éventuelle liée au label des lignes du tableau, mais toute la subtilité vient de l'interprétation des résultats.
Les deux premiers axes couvrent 99.6% de la variance. Du point de vue des cheveux, on observe une transition des cheveux clairs à gauche vers les cheveux foncés à droite. Du point de vue des yeux, les yeux clairs sont à gauche et les yeux foncés à droite.
154
+
Les deux premiers axes couvrent 99.6% de la variance. Du point de vue des cheveux (représentés ici en rouge), on observe une transition des cheveux clairs (*fair* = blond) à gauche vers les cheveux foncés à droite. Du point de vue des yeux (ici en turquoise), les yeux clairs (*blue* et *light*) sont à gauche et les yeux foncés à droite.
153
155
154
-
On observe la même transition du clair vers le foncé aussi bien pour les cheveux que pour les yeux. Les individus aux yeux clairs vont être liés aux cheveux clairs et les individus aux yeux foncés sont associés aux cheveux foncés.
156
+
On observe la même transition du clair vers le foncé aussi bien pour les cheveux que pour les yeux. Les individus aux yeux clairs vont être liés aux cheveux clairs et les individus aux yeux foncés sont associés aux cheveux foncés (proximité des points rouges et turquoises pour l'interprétation de ces associations).
155
157
156
158
## Conclusion
157
159
158
-
Cette AFC nous a permis d'y voir plus clair entre les différentes stations et les espèces qui y vivent. Sans rien connaître sur ces espèces, nous avons pu mettre en évidence une tendance.
160
+
Cette AFC nous a permis d'observer des tendances dans nos données. Le fait que les blonds ont tendance à avoir des yeux clairs et les bruns des yeux foncés ne devra pas vous étonner, de même que le contraste entre ces deux extrêmes aussi bien pour les cheveux que pour les yeux. Donc, vous pouvez constater que l'AFC présente une telle information assez clairement sur le biplot.
159
161
160
162
Maintenant que vous avez compris la logique, que vous maîtrisez les techniques pour préparer vos données et que vous êtes capable d'écrire le code permettant de réaliser une AFC, vous pouvez appliquer tout cela dans une assignation GitHub (voir dans le cours).
0 commit comments