Anova multiple et facet grid

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Jean-Emmanuel Longueville
Messages : 310
Enregistré le : 23 Fév 2011, 08:03

Anova multiple et facet grid

Messagepar Jean-Emmanuel Longueville » 02 Déc 2022, 11:29

Bonjour,
je cherche à afficher sur un graphique représentant sur une grille l'expression de différent gene en x et 2 calcul de cette expression en y.
Pour chaque sous graphique je cherche à exprimer un calcul anova un facteur sans test posthoc dans un premier temps. Voici un premier ecm qui permet d'avoir le graphique de base je cherche à comparer les valeurs de chaque carré indépendamment.

Code : Tout sélectionner

structure(list(Traitement = c("controle", "controle", "controle", "controle",
                              "controle", "controle", "controle", "controle",
                              "A-D1 ", "A-D1 ", "A-D1 ", "A-D1 ", "A-D1 ",
                              "A-D1 ", "A-D1 ","A-D1 ", "A-D2 ", "A-D2 ",
                              "A-D2 ", "A-D2 ", "A-D2 ", "A-D2 ", "A-D2 ",
                              "A-D2 ", "tt", "tt", " tt", " tt", " tt", " tt",
                              " tt", " tt", "A-D1 tt", "A-D1 tt", "A-D1 tt",
                              "A-D1 tt", "A-D1 tt", "A-D1 tt", "A-D1 tt", 
                              
"A-D1 tt", "A-D2 tt", "A-D2 tt", "A-D2 tt",
                              "A-D2 tt", "A-D2 tt", "A-D2 tt", "A-D2 tt", "A-D2 tt"),
               individus = c(1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1,
                             1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2),
               calcul = c("p2", "p2", "rq", "rq", "p2", "p2", "rq", "rq", "p2", "p2", "rq", "rq", "p2",
                          "p2", "rq", "rq", "p2", "p2", "rq", "rq", "p2", "p2", "rq", "rq", "p2", "p2",
                          "rq", "rq", "p2", "p2", "rq", "rq", "p2", "p2", "rq", "rq", "p2", "p2", "rq",
                          "rq", "p2", "p2", "rq", "rq", "p2",  "p2", "rq", "rq"),
               gene = c("Ab1", "AE", "Ab1", "AE", "Ab1", "AE", "Ab1", "AE", "Ab1", "AE", "Ab1", "AE",
                        "Ab1", "AE", "Ab1", "AE", "Ab1", "AE", "Ab1", "AE",
                        "Ab1", "AE", "Ab1", "AE", "Ab1", "AE", "Ab1", "AE",
                        "Ab1", "AE", "Ab1", "AE", "Ab1", "AE", "Ab1", "AE",
                        "Ab1", "AE", "Ab1", "AE", "Ab1", "AE", "Ab1", "AE",
                        "Ab1", "AE", "Ab1", "AE"),
               exemple = c(1.19155298160405, 0.0724818202710361, 2.02156962843567, 0.384370027854773, 0.54991364994453, 
                           0.00103756547537115
, 0.579273470531843, 1.94371801242812, 1.70745867059473,1.6153066453706,
                           3.30113402776652, 3.25558460945979, 0.597367907304677,
                           0.76807566193499, 0.977831588376713, 0.811469434599755, 3.33840383376832,
                           0.0223708709402352, 0.425528356825245, 0.62844516251807, 1.95106168399692,
                           2.0153249055041, 1.18796291908844, 0.0530971721093183, 0.912160997006902,
                           1.23409393372274, 0.497099437885367, 0.552044980045594, 1.13474370257865,
                           1.05750011086696, 2.22045583334724, 0.215237661268395, 1.66412954997914,
                           2.19434943809382, 2.53727405265649, 2.35800460808463, 1.89055181006916,
                           0.0243139030902235, 0.595713335097338, 0.536213734244759, 1.91057989778762,
                           1.31894320754891, 1.83627997732475, 0.604549881851668, 1.25781122754147,
                           1.50537479363401, 3.02598020999327, 0.065350196112971)),
          row.names = c(NA,-48L),
          class = c("tbl_df", "tbl", "data.frame")) %>% 
  ggplot
() +
  aes(= Traitement, y = exemple, col = calcul) +
  facet_grid(calcul~gene) +
  stat_summary(fun.data = mean_se, fun.args = list(mult = 1), geom = "pointrange", position = position_dodge(0.5)) +
  geom_point(position=position_dodge(0.5), alpha =0.3) +
  stat_compare_means(mapping = aes(= Traitement, y = exemple),
                     method = "anova", label.= 3)+
  theme(axis.text.= element_text(angle = 45))


Par ailleurs pensez vous qu'il soit possible de mettre la valeur Controle en début de graphique (cela tourne dans un script et cette valeur est stockée dans une variable et j'ai un peu de mal à jouer avec facteur pour se faire...
Jean-Emmanuel
Ingénieur d'étude LNEC

Maxime Deniaux
Messages : 68
Enregistré le : 11 Fév 2022, 22:49
Contact :

Re: Anova multiple et facet grid

Messagepar Maxime Deniaux » 04 Déc 2022, 18:33

Bonsoir,

je n'ai pas tout compris à votre demande, mais concernant le fait d'avoir la modalité "controle" en première position, vous pouvez essayer d'ajouter ça :

Code : Tout sélectionner


mutate(Traitement_bis = fct_relevel(Traitement,
            "controle", "tt", "AD-1",
            "AD-1 tt", "AD-2", "AD-2 tt")) %>%
           


juste avant le ggplot, ce qui donne ce code :

Code : Tout sélectionner

structure(list(Traitement = c("controle", "controle", "controle", "controle",
                              "controle", "controle", "controle", "controle",
                              "A-D1 ", "A-D1 ", "A-D1 ", "A-D1 ", "A-D1 ",
                              "A-D1 ", "A-D1 ","A-D1 ", "A-D2 ", "A-D2 ",
                              "A-D2 ", "A-D2 ", "A-D2 ", "A-D2 ", "A-D2 ",
                              "A-D2 ", "tt", "tt", " tt", " tt", " tt", " tt",
                              " tt", " tt", "A-D1 tt", "A-D1 tt", "A-D1 tt",
                              "A-D1 tt", "A-D1 tt", "A-D1 tt", "A-D1 tt",
                              "A-D1 tt", "A-D2 tt", "A-D2 tt", "A-D2 tt",
                              "A-D2 tt", "A-D2 tt", "A-D2 tt", "A-D2 tt", "A-D2 tt"),
               individus = c(1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1,
                             1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2),
               calcul = c("p2", "p2", "rq", "rq", "p2", "p2", "rq", "rq", "p2", "p2", "rq", "rq", "p2",
                          "p2", "rq", "rq", "p2", "p2", "rq", "rq", "p2", "p2", "rq", "rq", "p2", "p2",
                          "rq", "rq", "p2", "p2", "rq", "rq", "p2", "p2", "rq", "rq", "p2", "p2", "rq",
                          "rq", "p2", "p2", "rq", "rq", "p2",  "p2", "rq", "rq"),
               gene = c("Ab1", "AE", "Ab1", "AE", "Ab1", "AE", "Ab1", "AE", "Ab1", "AE", "Ab1", "AE",
                        "Ab1", "AE", "Ab1", "AE", "Ab1", "AE", "Ab1", "AE",
                        "Ab1", "AE", "Ab1", "AE", "Ab1", "AE", "Ab1", "AE",
                        "Ab1", "AE", "Ab1", "AE", "Ab1", "AE", "Ab1", "AE",
                        "Ab1", "AE", "Ab1", "AE", "Ab1", "AE", "Ab1", "AE",
                        "Ab1", "AE", "Ab1", "AE"),
               exemple = c(1.19155298160405, 0.0724818202710361, 2.02156962843567, 0.384370027854773, 0.54991364994453,
                           0.00103756547537115, 0.579273470531843, 1.94371801242812, 1.70745867059473,1.6153066453706,
                           3.30113402776652, 3.25558460945979, 0.597367907304677,
                           0.76807566193499, 0.977831588376713, 0.811469434599755, 3.33840383376832,
                           0.0223708709402352, 0.425528356825245, 0.62844516251807, 1.95106168399692,
                           2.0153249055041, 1.18796291908844, 0.0530971721093183, 0.912160997006902,
                           1.23409393372274, 0.497099437885367, 0.552044980045594, 1.13474370257865,
                           1.05750011086696, 2.22045583334724, 0.215237661268395, 1.66412954997914,
                           2.19434943809382, 2.53727405265649, 2.35800460808463, 1.89055181006916,
                           0.0243139030902235, 0.595713335097338, 0.536213734244759, 1.91057989778762,
                           1.31894320754891, 1.83627997732475, 0.604549881851668, 1.25781122754147,
                           1.50537479363401, 3.02598020999327, 0.065350196112971)),
          row.names = c(NA,-48L),
          class = c("tbl_df", "tbl", "data.frame")) %>% 
  mutate(Traitement_bis = fct_relevel(Traitement,
            "controle", "tt", "AD-1",
            "AD-1 tt", "AD-2", "AD-2 tt")) %>%
  ggplot() +
  aes(x = Traitement_bis, y = exemple, col = calcul) +
  facet_grid(calcul~gene) +
  stat_summary(fun.data = mean_se, fun.args = list(mult = 1), geom = "pointrange", position = position_dodge(0.5)) +
  geom_point(position=position_dodge(0.5), alpha =0.3) +
  stat_compare_means(mapping = aes(x = Traitement_bis, y = exemple),
                     method = "anova", label.y = 3)+
  theme(axis.text.x = element_text(angle = 45))


Pour le reste, faudra reposer le problème autrement pour que je puisse tenter de vous aider, car actuellement je n'y arrive pas.

Bonne soirée

Jean-Emmanuel Longueville
Messages : 310
Enregistré le : 23 Fév 2011, 08:03

Re: Anova multiple et facet grid

Messagepar Jean-Emmanuel Longueville » 05 Déc 2022, 12:30

Merci.
Pour la première partie de ma question elle consiste à calculer automatiquement une anova 1 facteur y = y du graph et les groupes de comparaison son les valeurs en x du graph ?
L'idée est d'avoir pour chaque encart un affichage
anova = p-value df = val_df

Sachant que c'est statistiquement valide du points de vue de ces données...
J'espère être plus clair sinon j’essaierai de faire une modif d'image :
Image
Dans un premier temps j'essaie de faire ça avant de faire un posthoc...
Jean-Emmanuel
Ingénieur d'étude LNEC


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité