Begin'R
Les statistiques avec R
Navigation
[Retour au sommaire]
# Exercice bilan :Objectifs {#CAH4} * Evaluer ses compétences sur la classification ascendante hiérarchique. :Exercice : Analyse du jeu de données sur les vins {#exercice_CAH_vins} Le jeu de données utilisé dans cet exercice est celui sur les `Vins`. Les liens ci-dessous permettent de télécharger les fichiers de données, de visionner une vidéo expliquant la description associée et d'obtenir les lignes de code pour importer le jeu de données sur R. | Jeu de données | Excel | CSV | Présentation | Commande R | Explication | |----------------|--------|-------------|----------------|------------|-------------| | Donneées Vins | [](donnees/DonneesVins.xlsx) | [](donnees/DonneesVins.csv) | [](video/DonneesVins.html) | [Importer le jeu de données](#ligne_code_importation_vins) | [Préparation du jeu de données Vins](#explication_preparation_importation_vins) | :Exemple {#ligne_code_importation_vins, toggle=popup} ```r Donnees <- read.csv2("DonneesVins.csv", header = TRUE, stringsAsFactors = TRUE) X <- Donnees[, 4:11] ``` :Exemple {#explication_preparation_importation_vins, toggle=popup} Dans un premier temps, [importer le jeu de données vins sur R Studio](caps_2_3_importation_csv.html). ```r Donnees <- read.csv2("DonneesVins.csv", header = TRUE, stringsAsFactors = TRUE) ``` Les 6 premiers individus sont affichés ci-dessous : ``` ## Origine Couleur Libelle Alcool pH AcTot Tartrique Malique Citrique ## 1 Bordeaux Blanc 1 12.0 2.84 89 21.1 21.0 4.3 ## 2 Bordeaux Blanc 2 11.5 3.10 97 26.4 34.2 3.9 ## 3 Bordeaux Blanc 3 14.6 2.96 99 20.7 21.8 8.1 ## 4 Bordeaux Blanc 4 10.5 3.10 72 29.7 4.2 3.6 ## 5 Bordeaux Blanc 5 14.0 3.29 76 22.3 9.3 4.7 ## 6 Bordeaux Blanc 6 13.2 2.94 83 24.6 9.4 4.1 ## Acetique Lactique ## 1 16.9 9.3 ## 2 9.9 16.0 ## 3 19.7 11.2 ## 4 11.9 14.4 ## 5 20.1 21.6 ## 6 19.7 16.8 ``` Pour appliquer une méthode d'analyse de données multivariées (analyse en composantes principales, classification ascendante hiérarchique, classification par la méthode des centres mobiles), il faut extraire du jeu de données uniquement les variables quantitatives. Pour ce jeu de données, comme elles se trouvent sur les colonnes 4 à 11, il faut utiliser l'instruction suivante pour [extraire les colonnes du jeu de données](caps_2_9_extraire_sous_ensemble.html): ```r X <- Donnees[, 4:11] ``` La variable X contient ainsi uniquement les variables quantitatives. Les 6 premiers individus sont affichés ci-dessous ``` ## Alcool pH AcTot Tartrique Malique Citrique Acetique Lactique ## 1 12.0 2.84 89 21.1 21.0 4.3 16.9 9.3 ## 2 11.5 3.10 97 26.4 34.2 3.9 9.9 16.0 ## 3 14.6 2.96 99 20.7 21.8 8.1 19.7 11.2 ## 4 10.5 3.10 72 29.7 4.2 3.6 11.9 14.4 ## 5 14.0 3.29 76 22.3 9.3 4.7 20.1 21.6 ## 6 13.2 2.94 83 24.6 9.4 4.1 19.7 16.8 ``` 1. Quelle métrique utiliser pour analyser ce jeu de données ? :Corrigé {#answer_CAH_vins1, toggle=collapse, title-display=show} 1. Pour choisir quelle métrique utiliser, il faut regarder la variabilité des variables. Pour cela, la fonction `numSummary()` permet d'estimer les écart-types. ```r library(RcmdrMisc) numSummary(data = X, statistics = c("mean", "sd")) ``` ``` ## mean sd n ## Alcool 12.350000 1.3751883 36 ## pH 3.227500 0.2461286 36 ## AcTot 86.055556 13.4460710 36 ## Tartrique 30.825000 8.4322298 36 ## Malique 12.011111 12.4689277 36 ## Citrique 3.288889 2.0514494 36 ## Acetique 15.669444 3.8055463 36 ## Lactique 19.902778 8.8735397 36 ``` Les écarts-types étant très différents. Il est nécessaire de normaliser les variables. La métrique des inverses des variances est donc utilisée pour analyser ce jeu de données. De plus, comme les 8 variables quantitatives décrivent des grandeurs physico-chimiques différentes, exprimées dans des unités différentes, il est indispensable de travailler sur les variables centrées réduites. 2. Mettre en place la classification ascendante hiérarchique sur le jeu de données en utilisant la stratégie d'agrégation de Ward. :Corrigé {#answer_CAH_vins2, toggle=collapse, title-display=show} 2. Pour mettre en place la classification ascendante hiérarchique (CAH) en utilisant la métrique des inverses des variances, il faut d'abord normaliser les variables puis calculer la matrice de distances. ```r Z <- scale(X) distance <- dist(Z) model <- hclust(distance, method = "ward.D2") ``` 3. Afficher le dendrogramme. :Corrigé {#answer_CAH_vins3, toggle=collapse, title-display=show} 3. La fonction `fviz_dend()` permet de visualiser le dendrogramme. ```r library("factoextra") fviz_dend(model, k = 2, color_labels_by_k = TRUE, rect = TRUE ) ```  4. Découper le dendrogramme en 2 groupes et visualiser la partition obtenue sur le graphique des individus d'une analyse en composantes principales. :Corrigé {#answer_CAH_vins4, toggle=collapse, title-display=show} 4. Pour ajouter les classes au jeu de données, il faut d'abord découper le dendrogramme puis convertir la variable `classe` en variable qualitative. ```r classe <- cutree(model, k = 2) Donnees$classe <- as.factor(classe) ``` Cette représentation montre le graphique des individus sur les 2 premières composantes principales. Les individus en rouge sont ceux de la classe 1 et en bleu ceux de la classe 2. ```r library("FactoMineR") library("factoextra") res.pca <- PCA(X, scale.unit = TRUE, graph = FALSE) fviz_pca_ind(res.pca, axes = c(1,2), col.ind = Donnees$classe, legend.title = "classe") ```  :Remarque sur les couleurs dans le graphique des individus et dans le dendrogramme {#rq_CAH_vins_couleur, toggle=collapse, title-display=show} Attention, les individus représentés en rouge sur ce graphique des individus sont ceux représentés en bleu dans le dendrogramme. 5. Conclure sur le potentiel du jeu de données pour discriminer les vins rouges des vins blancs. :Corrigé {#answer_CAH_vins5, toggle=collapse, title-display=show} 5. En colorant cette fois-ci les individus selon les modalités de la variable `Couleur`, les vins `Blanc` (respectivement `Rouge`) sont majoritairement présents dans le groupe `1` (respectivement `2`) illustrant le potentiel du jeu de données pour discriminer les vins rouges des vins blancs. ```r fviz_pca_ind(res.pca, axes = c(1,2), col.ind = Donnees$Couleur, legend.title = "Couleur") ```  :Remarque sur le tableau de contingence{#rq_CAH_vins_table, toggle=collapse, title-display=show} Le [tableau de contingence](caps_4_2_quali_quali.html) suivant permet d'identifier que 16 individus sur 18 ayant la modalité `Blanc` sont regroupés dans la classe 1, tandis que 17 individus sur 18 ayant la modalité `Rouge` sont dans la classe 2. Cela permet de bien mettre en évidence le potentiel des variables du jeu de données à discriminer des modalités de couleur des vins. ```r table(Donnees$Couleur, Donnees$classe) ``` ``` ## ## 1 2 ## Blanc 16 2 ## Rouge 1 17 ``` :Suite Classification non supervisée :{#classif, toggle=collapse} Classification ascendante hiérarchique : [Choix de la métrique](caps_13_2_acp_metrique.html) [Mise en place de la CAH](caps_14_3_cah_dendrogramme.html) [Visualisation des classes sur le graphique des individus de l'ACP](caps_13_6_acp_graphique_individus.html) [Exercice bilan](caps_14_4_cah_exercice_bilan.html) Méthode K-means [Choix de la métrique](caps_13_2_acp_metrique.html) [Mise en place de la méthode des K-means](caps_14_6_kmeans_mise_en_oeuvre.html) [Visualisation des classes sur le graphique des individus de l'ACP](caps_13_6_acp_graphique_individus.html) [Exercice bilan](caps_14_7_kmeans_exercice_bilan.html)