Begin'R
Les statistiques avec R
Navigation
[Retour au sommaire]
# Matrice de corrélation :Objectifs {#ACP3} * Calculer la matrice de corrélation * Afficher le corrélogramme :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 ``` Le tableau ci-dessous présente les fonctions R pour calculer la matrice de corrélation et afficher le corrélogramme | Rôle | Commande R | Arguments | Exemple | |-------------------------------------------------------|--------------------|-------------------------|------------------------| | Calculer la matrice de corrélation | `cor()` | `method` | [ici](#exemple_matrice_correlation) | | Afficher le corrélogramme | `corrplot()` | `type`, `order`, `tl.col`, `tl.srt` | [ici](#exemple_correlogramme) | :Exemple {#exemple_matrice_correlation, toggle=popup} La fonction `cor()` permet d'obtenir la matrice de corrélation. L'argument `method` peut prendre les valeurs * `"pearson"` pour le coefficient de corrélation linéaire de Pearson. * `"kendall"` pour le tau de Kendall. * `"spearman"` pour le coefficient de corrélation non paramétrique de Spearman. ```r M <- cor(X, method = "pearson") M ``` ``` ## Aire_Pericarpe PerimetreExt_Fruit DiametreExt_Fruit ## Aire_Pericarpe 1.0000000 0.9613542 0.9618128 ## PerimetreExt_Fruit 0.9613542 1.0000000 0.9999822 ## DiametreExt_Fruit 0.9618128 0.9999822 1.0000000 ## Epaisseur_Pericarpe 0.9852927 0.9785253 0.9789535 ## Nombre_Loge 0.2597307 0.3057992 0.3061157 ## Epaisseur_Pericarpe Nombre_Loge ## Aire_Pericarpe 0.9852927 0.2597307 ## PerimetreExt_Fruit 0.9785253 0.3057992 ## DiametreExt_Fruit 0.9789535 0.3061157 ## Epaisseur_Pericarpe 1.0000000 0.2439138 ## Nombre_Loge 0.2439138 1.0000000 ``` Cette matrice de corrélation montre une relation très forte entre les variables `Aire_Pericarpe`, `PerimetreExt_Fruit`, `DiametreExt_Fruit` et `Epaisseur_Pericarpe`. :Exemple {#exemple_correlogramme, toggle=popup} Le corrélogramme est une représentation graphique de la matrice de corrélation. Elle s'obtient à l'aide de la fonction `corrplot()`. Comme cette fonction fait partie du package `corrplot`, il faut au préalable [installer et charger ce package](caps_1_6_packages.html). Dans la fonction `corrplot()`, l'argument `type="upper"` permet de spécifier que seule la partie triangulaire supérieure de la matrice de corrélation est affichée (la matrice de corrélation étant symétrique seule une moitié suffit). L'argument `order="hclust"` permet d'ordonner les variables selon leur corrélation. Deux variables corrélées seront proches l'une de l'autre sur le corrélogramme. Les arguments `tl.col="black"` et `tl.srt=45` précisent que le nom des variables sera écrit en noir avec une rotation d'un angle de `45°`. ```r library(corrplot) corrplot(M, type="upper", order="hclust", tl.col="black", tl.srt=45) ```  :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)