Begin'R
Les statistiques avec R
Navigation
[Retour au sommaire]
# Choix de la métrique :Objectifs {#ACP2} * Choisir la métrique * Normaliser les variables d'un jeu de données :Remarque : Besoin de quelques rappels pour l'importation et la préparation du jeu de données? {#rq_ACP_presentation_jeu_donnees, toggle=collapse, title-display=show} Le jeu de données utilisé dans les exemples est celui sur les données `Tomates`. Les liens ci-dessous permettent de télécharger les fichiers de données, de voir une 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 | |----------------|--------|-------------|----------------|------------|-------------| | Données Tomates | [](donnees/DonneesTomates.xlsx) | [](donnees/DonneesTomates.csv) | [Tomates](#tomatesexp) | [Importer le jeu de données](#ligne_code_importation_tomates) | [Préparation du jeu de données Tomates](#explication_preparation_importation_tomates) | :Exemple{#tomatesexp, toggle=popup, title-display=hidden} Un jeu de données considéré ici est issu d'une étude expérimentale menée sur la tomate à l'UMR 1332 Biologie du fruit et Pathologie (Centre INRA Bordeaux-Nouvelle Aquitaine). L'objectif est de repérer les facteurs qui influencent le calibre des fruits de tomate. Les données se présentent sous la forme d'un tableau Individus (en lignes) x Variables (en colonnes). Chaque individu statistique correspond à un individu-fruit dont les caractéristiques sont présentées en ligne. Les individus sont décrits par 7 variables, dont 2 qualitatives (nominales ou ordinales) et 5 quantitatives (numériques) présentées en colonnes. * La variable `Genotype` (qualitative nominale): Génotype de plante de tomate sur laquelle le fruit a été récolté. Il s'agit soit de plantes de type sauvage (C), soit de lignées transgéniques (L) ; * La variable `Stade` (qualitative ordinale): Stades de développement du fruit. Les stades 1 à 3 sont des stades de croissance (fruits verts) et les stades 4 et 5 des stades de maturité (fruits rouges); * La variable `Aire_Pericarpe` (quantitative): Aire du péricarpe, la partie charnue du fruit de tomate sans le gel (en mm²) ; * La variable `PerimetreExt_Fruit` (quantitative): Périmètre externe des fruits de tomate (en mm) ; * La variable `DiametreExt_Fruit` (quantitative): Diamètre des fruits de tomate (en mm) ; * La variable `Epaisseur_Pericarpe` (quantitative): Epaisseur du péricarpe, c'est à dire la partie charnue du fruit de tomate, sans le gel (en mm) ; * La variable `Nombre_Loge` (quantitative): Nombre de carpelles formant des loges dans le fruit de tomate, dénombrés sur une coupe transversale du fruit. :Exemple {#ligne_code_importation_vins, toggle=popup} ```r Donnees <- read.csv2("DonneesVins.csv", header = TRUE, stringsAsFactors = TRUE) X <- Donnees[, 4:11] ``` :Exemple {#ligne_code_importation_tomates, toggle=popup} ```r Donnees <- read.csv2("DonneesTomates.csv", header = TRUE, stringsAsFactors = TRUE) X <- Donnees[, 4:8] ``` :Exemple {#explication_preparation_importation_tomates, toggle=popup} Dans un premier temps, [importer le jeu de données tomates sur R Studio](caps_2_3_importation_CSV.html). ```r Donnees <- read.csv2("DonneesTomates.csv", header = TRUE, stringsAsFactors = TRUE) ``` Les 6 premiers individus sont affichés ci-dessous : ``` ## Nom Genotype Stade Aire_Pericarpe PerimetreExt_Fruit DiametreExt_Fruit ## 1 C1st1_1 C1 st1 105.43 62.08 19.68 ## 2 C1st1_2 C1 st1 38.60 41.31 13.11 ## 3 C1st1_3 C1 st1 34.47 41.01 13.00 ## 4 C1st2_1 C1 st2 578.09 134.43 42.66 ## 5 C1st2_2 C1 st2 509.71 126.82 40.11 ## 6 C1st2_3 C1 st2 622.92 137.36 43.41 ## Epaisseur_Pericarpe Nombre_Loge ## 1 1.74 2 ## 2 1.00 2 ## 3 0.82 3 ## 4 4.55 3 ## 5 4.33 2 ## 6 4.95 2 ``` 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 à 8, 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:8] ``` La variable `X` contient ainsi uniquement les variables quantitatives. Les 6 premiers individus sont affichés ci-dessous ``` ## Aire_Pericarpe PerimetreExt_Fruit DiametreExt_Fruit Epaisseur_Pericarpe ## 1 105.43 62.08 19.68 1.74 ## 2 38.60 41.31 13.11 1.00 ## 3 34.47 41.01 13.00 0.82 ## 4 578.09 134.43 42.66 4.55 ## 5 509.71 126.82 40.11 4.33 ## 6 622.92 137.36 43.41 4.95 ## Nombre_Loge ## 1 2 ## 2 2 ## 3 3 ## 4 3 ## 5 2 ## 6 2 ``` :Rappel sur le choix de la métrique {\#Rappel_ACP_13_2\_metrique, toggle=collapse} Avant de mettre en place une méthode d'analyse de données multivariées sur des variables quantitatives, il faut choisir la métrique à utiliser afin de mesurer la distance entre deux individus. Deux métriques sont classiquement employées : * la métrique identité qui est équivalente à la distance euclidienne. Elle n'a de sens que si les variables ont la même unité, et elle privilégie les variables les plus dispersées. * la métrique des inverses des variances qui est équivalente à la distance euclidienne sur les variables centrées réduites. Elle ne dépend pas des unités de mesure, et elle donne la même importance à toutes les variables (quelles que soient leur dispersions). Le tableau ci-dessous donne un exemple d'utilisation d'une fonction R pour estimer la moyenne et l'écart-type de chaque variable d'un jeu de données, ainsi que l'instruction pour normaliser un jeu de données. | Rôle | Commande R | Arguments | Exemple | |-------------------------------------------------------|--------------------|-------------------------|------------------------| | Estimer la moyenne et l'écart-type de chaque variable | `numSummary()` | `data`, `statistics` | [ici](#exemplenumsummary) | | Normalisation des données | `scale()` | | [ici](#exemplescale) | :Exemple {#exemplenumsummary, toggle=popup} La fonction `numSummary()` permet d'obtenir un résumé monodimensionnel du jeu de données. Comme cette fonction fait partie du package `RcmdrMisc`, il faut au préalable [installer et charger ce package](caps_1_6_packages.html). Dans la fonction `numSummary()`, l'argument `data` permet de spécifier le jeu de données contenant les variables quantitatives (ici `X`). L'argument `statistics` contient quant à lui un vecteur de chaînes de caractères précisant les statistiques à extraire pour chaque variable. Ici, la moyenne et l'écart-type sont estimés. ```r library(RcmdrMisc) numSummary(data = X, statistics = c("mean", "sd")) ``` ``` ## mean sd n ## Aire_Pericarpe 933.435500 594.9879868 60 ## PerimetreExt_Fruit 147.322833 60.9881549 60 ## DiametreExt_Fruit 46.724000 19.3534877 60 ## Epaisseur_Pericarpe 5.811333 2.8690886 60 ## Nombre_Loge 2.400000 0.4940322 60 ``` Dans ce jeu de données, la variable `Aire_Pericarpe` possède une variabilité beaucoup plus importante que la variable `Nombre_Loge`, il est donc nécessaire de normaliser les variables. :Exemple {#exemplescale, toggle=popup} La fonction `scale()` permet de centrer et réduire un jeu de données ```r Z <- scale(X) ``` Après normalisation, les variables se trouvant dans le jeu de données `Z` ont bien une moyenne nulle et un écart-type égal à 1. ```r numSummary(data = Z, statistics = c("mean", "sd")) ``` ``` ## mean sd n ## Aire_Pericarpe -6.129356e-17 1 60 ## PerimetreExt_Fruit -3.376928e-17 1 60 ## DiametreExt_Fruit 1.595946e-16 1 60 ## Epaisseur_Pericarpe -1.531183e-16 1 60 ## Nombre_Loge 1.998401e-16 1 60 ``` Les valeurs observées de $10^{-16}$ ou $10^{-17}$ pour la moyenne sont égales à 0, à la précision de la machine près ! :suite ACP {#ACP, toggle=collapse} [Choix de la métrique](caps_13_2_acp_metrique.html) [Calcul et visualisation de la matrice de corrélation](caps_13_3_acp_matrice_correlation.html) [Mise en place de l'analyse en composantes principales](caps_13_3bis_acp_mise_en_place_acp.html) [Choix du nombre d'axes pour l'interprétation](caps_13_4_acp_valeurs_propres.html) [Analyse du cercle des corrélations](caps_13_5_acp_cercle_correlation.html) [Analyse du graphique des individus](caps_13_6_acp_graphique_individus.html) [Exercice bilan](caps_13_7_acp_exercice_bilan.html)