Begin'R
Les statistiques avec R
Navigation
[Retour au sommaire]
# ANOVA à un facteur : Tests de comparaison post-hoc :Remarque : Besoin de quelques rappels pour l'importation et la préparation du jeu de données? {#rq_preparation_donnees_graphiques_de_base, toggle=collapse, title-display=show} Le jeu de données utilisé dans cette partie sur l'ANOVA est le jeu de données "Cépages". Ce jeu de données répertorie les pH de vins associés à trois cépages : Merlot, Cabernet Sauvignon (CS) et Cabernet Franc (CF). Le lien ci-dessous permet de télécharger le fichier de données et d'obtenir les lignes de code pour importer le jeu de données sur R. | Jeu de données | CSV | Commande R | |-----------------|-------------|------------| | Données Cépages | [](donnees/Cepages.csv) | [Importer le jeu de données](#ligne_code_importation_cepages) | :Exemple {#ligne_code_importation_cepages, toggle=popup} ```r donnees <- read.csv2("donnees/Cepages.csv", header = TRUE, stringsAsFactors = TRUE) ``` Il est vivement conseillé de vérifier que R a bien identifié la variable et le facteur. On peut utiliser : ```r str(donnees) ``` ``` ## 'data.frame': 15 obs. of 2 variables: ## $ Cepage: Factor w/ 3 levels "CF","CS","Merlot": 3 3 3 3 3 2 2 2 2 2 ... ## $ pH : num 3.32 3.15 3.19 3.24 3.3 3.53 3.63 3.54 3.57 3.6 ... ``` Des modifications peuvent être effectuées suivant les modalités présentées dans la partie [Manipulation de données](caps_2_7_corriger_type_variables.html). :Objectifs * Réaliser des tests de comparaison post-hoc Après avoir conclu à un effet factoriel significatif lors d’une ANOVA, il est fréquent de constituer des groupes associées liés aux moyennes observées. Le tableau ci-dessous récapitule les modalités de mise en œuvre pour les tests de Bonferroni et Newman-Keuls. | Test | Commande R | Arguments | Exemple | |-----------------------|--------------------|--------------|----------| | Bonferroni | pairwise.t.test | facteur, variable, methode | [ici](#pairwise)| | Bonferroni avec groupes | LSD.test| modele, facteur, methode, group | [ici](#lsd) | | Newman-Keuls| SNK.test | modele, facteur, group | [ici](#SNK) | :Exemple {#pairwise, toggle=popup} ```r pairwise.t.test(x=donnees$pH ,g=donnees$Cepage , p.adjust.method="bonferroni") ``` ``` ## ## Pairwise comparisons using t tests with pooled SD ## ## data: donnees$pH and donnees$Cepage ## ## CF CS ## CS 0.47 - ## Merlot 5.4e-06 9.7e-07 ## ## P value adjustment method: bonferroni ``` Les p-valeurs sont à comparer à 5%. On constate ici l'existence de 2 groupes dont un contient uniquement Merlot. Le pH moyen associé au Merlot peut-être considéré comme différent des pH moyens associés à Cabernet Sauvignon et Cabernet Franc. :Exemple {#lsd, toggle=popup} La fonction `LSD.test()` est disponible dans le package `agricolae`. ```r library("agricolae") test = LSD.test(aov(donnees$pH ~ donnees$Cepage), "donnees$Cepage", p.adj= "bonferroni", group=TRUE) test ``` ``` ## $statistics ## MSerror Df Mean CV t.value MSD ## 0.002736667 12 3.446 1.518084 2.779473 0.09196094 ## ## $parameters ## test p.ajusted name.t ntr alpha ## Fisher-LSD bonferroni donnees$Cepage 3 0.05 ## ## $means ## donnees$pH std r LCL UCL Min Max Q25 Q50 Q75 ## CF 3.524 0.03646917 5 3.473026 3.574974 3.48 3.57 3.50 3.52 3.55 ## CS 3.574 0.04159327 5 3.523026 3.624974 3.53 3.63 3.54 3.57 3.60 ## Merlot 3.240 0.07176350 5 3.189026 3.290974 3.15 3.32 3.19 3.24 3.30 ## ## $comparison ## NULL ## ## $groups ## donnees$pH groups ## CS 3.574 a ## CF 3.524 a ## Merlot 3.240 b ## ## attr(,"class") ## [1] "group" ``` L'argument group affecté de TRUE permet d'afficher les groupes. On constate une nouvelle fois qu'il existe deux groupes notés a et b. On peut ne faire apparaître que les groupes en utilisant : ```r test$group ``` ``` ## donnees$pH groups ## CS 3.574 a ## CF 3.524 a ## Merlot 3.240 b ``` :Exemple {#SNK, toggle=popup} La fonction `SNK.test()` est disponible dans le package `agricolae`. Effectuons le test de Levene sur les moyennes : ```r library("agricolae") test=SNK.test(aov(donnees$pH ~ donnees$Cepage), "donnees$Cepage", group=TRUE) test ``` ``` ## $statistics ## MSerror Df Mean CV ## 0.002736667 12 3.446 1.518084 ## ## $parameters ## test name.t ntr alpha ## SNK donnees$Cepage 3 0.05 ## ## $snk ## Table CriticalRange ## 2 3.081307 0.07208765 ## 3 3.772929 0.08826826 ## ## $means ## donnees$pH std r Min Max Q25 Q50 Q75 ## CF 3.524 0.03646917 5 3.48 3.57 3.50 3.52 3.55 ## CS 3.574 0.04159327 5 3.53 3.63 3.54 3.57 3.60 ## Merlot 3.240 0.07176350 5 3.15 3.32 3.19 3.24 3.30 ## ## $comparison ## NULL ## ## $groups ## donnees$pH groups ## CS 3.574 a ## CF 3.524 a ## Merlot 3.240 b ## ## attr(,"class") ## [1] "group" ``` On retrouve le même type d'informations que pour le test LSD avec, notamment, les groupes. :Suite ANOVA {#anova, toggle=collapse} [ANOVA à un facteur : représentations graphiques](caps_12_1_anova1_gestion_graphiques.html) [ANOVA à un facteur : Réalisation et Vérification des hypothèses](caps_12_2_anova1_hypotheses.html) [ANOVA à un facteur : Récupération des résultats du tableau d'ANOVA](caps_12_3_anova1_resultats.html) [ANOVA à un facteur : Tests de comparaison post-hoc](caps_12_4_anova1_posthoc.html) [ANOVA à plusieurs facteurs](caps_12_5_anova_mult_posthoc.html) [Exercice bilan](caps_12_6_anova_exbilan.html)