{"id":11068,"date":"2019-12-08T01:35:36","date_gmt":"2019-12-07T23:35:36","guid":{"rendered":"https:\/\/www.datanovia.com\/en\/?post_type=dt_lessons&#038;p=11068"},"modified":"2019-12-08T01:35:36","modified_gmt":"2019-12-07T23:35:36","slug":"ancova-dans-r","status":"publish","type":"dt_lessons","link":"https:\/\/www.datanovia.com\/en\/fr\/lessons\/ancova-dans-r\/","title":{"rendered":"ANCOVA dans R"},"content":{"rendered":"<div id=\"rdoc\">\n<p>L\u2019<strong>Analyse de la covariance<\/strong> (<strong>ANCOVA<\/strong>) sert \u00e0 comparer les moyennes d\u2019une variable-r\u00e9ponse entre deux groupes ou plus en tenant compte (ou en corrigeant) la variabilit\u00e9 d\u2019autres variables, appel\u00e9es covariables. En d\u2019autres termes, l\u2019ANCOVA permet de comparer les moyennes ajust\u00e9es de deux ou plusieurs groupes ind\u00e9pendants.<\/p>\n<p>Par exemple, vous pouvez comparer le \u201cscore au test\u201d par \u201cniveau d\u2019\u00e9ducation\u201d en tenant compte du \u201cnombre d\u2019heures pass\u00e9es \u00e0 \u00e9tudier\u201d. Dans cet exemple : 1) le <code>score du test<\/code> est notre variable-r\u00e9ponse (ou variable d\u00e9pendante) ; 2) le <code>niveau de scolarit\u00e9<\/code> (secondaire, coll\u00e9gial ou sup\u00e9rieur) est notre variable de groupement ; 3) le <code>temps de travail<\/code> est notre covariable.<\/p>\n<p><strong>L\u2019ANCOVA, \u00e0 un facteur<\/strong>, peut \u00eatre consid\u00e9r\u00e9e comme une extension de l\u2019ANOVA, \u00e0 un facteur, qui incorpore une covariable. <strong>L\u2019ANCOVA \u00e0 deux facteurs<\/strong> sert \u00e0 \u00e9valuer simultan\u00e9ment l\u2019effet de deux variables de regroupement ind\u00e9pendantes (A et B) sur une variable-r\u00e9ponse, apr\u00e8s ajustement pour une ou plusieurs variables continues, appel\u00e9es covariables.<\/p>\n<p>Dans cet article, vous apprendrez \u00e0:<\/p>\n<ul>\n<li><strong>Calculer et interpr\u00e9ter<\/strong> l\u2019ANCOVA \u00e0 un facteur et deux facteurs dans R<\/li>\n<li><strong>V\u00e9rifier les hypoth\u00e8ses ANCOVA<\/strong><\/li>\n<li><strong>Effectuer des tests post-hoc<\/strong>, de multiples comparaisons par paires entre les groupes pour identifier les groupes qui sont diff\u00e9rents<\/li>\n<li><strong>Visualiser les donn\u00e9es<\/strong> \u00e0 l\u2019aide de boxplots, ajouter sur le graphique les p-values de l\u2019ANCOVA et des comparaisons par paires<\/li>\n<\/ul>\n<p>Sommaire:<\/p>\n<div id=\"TOC\">\n<ul>\n<li><a href=\"#hypotheses\">Hypoth\u00e8ses<\/a><\/li>\n<li><a href=\"#prerequis\">Pr\u00e9requis<\/a><\/li>\n<li><a href=\"#ancova-a-un-facteur\">ANCOVA \u00e0 un facteur<\/a>\n<ul>\n<li><a href=\"#preparation-des-donnees\">Pr\u00e9paration des donn\u00e9es<\/a><\/li>\n<li><a href=\"#verifier-les-hypotheses\">V\u00e9rifier les hypoth\u00e8ses<\/a><\/li>\n<li><a href=\"#normalite-des-residus\">Normalit\u00e9 des r\u00e9sidus<\/a><\/li>\n<li><a href=\"#homogeneite-des-variances\">Homog\u00e9n\u00e9it\u00e9 des variances<\/a><\/li>\n<li><a href=\"#valeurs-aberrantes\">Valeurs aberrantes<\/a><\/li>\n<li><a href=\"#calculs\">Calculs<\/a><\/li>\n<li><a href=\"#test-post-hoc\">Test post-hoc<\/a><\/li>\n<li><a href=\"#rapporter\">Rapporter<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#two-way-ancova\">ANCOVA \u00e0 deux facteurs<\/a>\n<ul>\n<li><a href=\"#preparation-des-donnees-1\">Pr\u00e9paration des donn\u00e9es<\/a><\/li>\n<li><a href=\"#verifier-les-hypotheses-1\">V\u00e9rifier les hypoth\u00e8ses<\/a><\/li>\n<li><a href=\"#calculs-1\">Calculs<\/a><\/li>\n<li><a href=\"#test-post-hoc-1\">Test post-hoc<\/a><\/li>\n<li><a href=\"#rapporter-1\">Rapporter<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#resume\">R\u00e9sum\u00e9<\/a><\/li>\n<\/ul>\n<\/div>\n<div class='dt-sc-hr-invisible-medium  '><\/div>\n<div class='dt-sc-ico-content type1'><div class='custom-icon' ><a href='https:\/\/www.datanovia.com\/en\/fr\/produit\/pratiques-des-statistiques-dans-r-pour-comparaison-de-groupes-variables-numeriques\/' target='_blank'><span class='fa fa-book'><\/span><\/a><\/div><h4><a href='https:\/\/www.datanovia.com\/en\/fr\/produit\/pratiques-des-statistiques-dans-r-pour-comparaison-de-groupes-variables-numeriques\/' target='_blank'> Livre Apparent\u00e9 <\/a><\/h4>Pratique des Statistiques dans R II - Comparaison de Groupes: Variables Num\u00e9riques<\/div>\n<div class='dt-sc-hr-invisible-medium  '><\/div>\n<div id=\"hypotheses\" class=\"section level2\">\n<h2>Hypoth\u00e8ses<\/h2>\n<p>L\u2019ANCOVA fait plusieurs hypoth\u00e8ses au sujet des donn\u00e9es, telles que:<\/p>\n<ul>\n<li><strong>Lin\u00e9arit\u00e9 entre la covariable et la variable-r\u00e9ponse<\/strong> \u00e0 chaque niveau de la variable de groupement. Ceci peut \u00eatre v\u00e9rifi\u00e9 en cr\u00e9ant un diagramme de dispersion group\u00e9 de la covariable et de la variable-r\u00e9ponse.<\/li>\n<li><strong>Homog\u00e9n\u00e9it\u00e9 des pentes de r\u00e9gression<\/strong>. Les pentes des droites de r\u00e9gression, form\u00e9es par la covariable et la variable-r\u00e9ponse, devraient \u00eatre les m\u00eames pour chaque groupe. Cette hypoth\u00e8se \u00e9value qu\u2019il n\u2019y a pas d\u2019interaction entre le r\u00e9sultat et la covariable. Les lignes de r\u00e9gression trac\u00e9es par groupes doivent \u00eatre parall\u00e8les.<\/li>\n<li><strong>La variable-r\u00e9ponse doit \u00eatre approximativement distribu\u00e9e normalement<\/strong>. Ceci peut \u00eatre v\u00e9rifi\u00e9 \u00e0 l\u2019aide du test de normalit\u00e9 Shapiro-Wilk sur les r\u00e9sidus du mod\u00e8le.<\/li>\n<li><strong>Homoscedasticit\u00e9<\/strong> ou homog\u00e9n\u00e9it\u00e9 de la variance des r\u00e9sidus pour tous les groupes. Les r\u00e9sidus sont suppos\u00e9s avoir une variance constante (homosc\u00e9dasticit\u00e9)<\/li>\n<li><strong>Aucune valeur aberrante significative<\/strong> dans les groupes<\/li>\n<\/ul>\n<div class=\"warning\">\n<p>Bon nombre de ces hypoth\u00e8ses et probl\u00e8mes potentiels peuvent \u00eatre v\u00e9rifi\u00e9s en analysant les erreurs r\u00e9siduelles. Dans le cas o\u00f9 l\u2019hypoth\u00e8se ANCOVA n\u2019est pas satisfaite, vous pouvez effectuer un <strong>test ANCOVA<\/strong> robuste en utilisant le package WRS2.<\/p>\n<\/div>\n<\/div>\n<div id=\"prerequis\" class=\"section level2\">\n<h2>Pr\u00e9requis<\/h2>\n<p>Assurez-vous d\u2019avoir install\u00e9 les paquets R suivants:<\/p>\n<ul>\n<li><code>tidyverse<\/code> pour la manipulation et la visualisation des donn\u00e9es<\/li>\n<li><code>ggpubr<\/code> pour cr\u00e9er facilement des graphiques pr\u00eats \u00e0 la publication<\/li>\n<li><code>rstatix<\/code> pour des analyses statistiques faciles<\/li>\n<li><code>broom<\/code> pour l\u2019affichage d\u2019un beau r\u00e9sum\u00e9 des tests statistiques sous forme de data frame<\/li>\n<li><code>datarium<\/code>: contient les jeux de donn\u00e9es requis pour ce chapitre<\/li>\n<\/ul>\n<p>Commencez par charger les packages requis suivants:<\/p>\n<pre class=\"r\"><code>library(tidyverse)\r\nlibrary(ggpubr)\r\nlibrary(rstatix)\r\nlibrary(broom)<\/code><\/pre>\n<\/div>\n<div id=\"ancova-a-un-facteur\" class=\"section level2\">\n<h2>ANCOVA \u00e0 un facteur<\/h2>\n<div id=\"preparation-des-donnees\" class=\"section level3\">\n<h3>Pr\u00e9paration des donn\u00e9es<\/h3>\n<p>Nous pr\u00e9parerons nos donn\u00e9es de d\u00e9monstration \u00e0 partir du jeu de donn\u00e9es sur l\u2019anxi\u00e9t\u00e9 disponible dans le package datarium.<\/p>\n<p>Les chercheurs ont \u00e9tudi\u00e9 l\u2019effet des exercices sur la r\u00e9duction du niveau d\u2019anxi\u00e9t\u00e9. Par cons\u00e9quent, ils ont men\u00e9 une exp\u00e9rience o\u00f9 ils ont mesur\u00e9 le score d\u2019anxi\u00e9t\u00e9 de trois groupes d\u2019individus pratiquant des exercices physiques \u00e0 diff\u00e9rents niveaux (grp1 : faible, grp2 : mod\u00e9r\u00e9 et grp3 : \u00e9lev\u00e9).<\/p>\n<p>Le score d\u2019anxi\u00e9t\u00e9 a \u00e9t\u00e9 mesur\u00e9 avant et six mois apr\u00e8s les programmes d\u2019exercices. On s\u2019attend \u00e0 ce que toute r\u00e9duction de l\u2019anxi\u00e9t\u00e9 par les programmes d\u2019exercices d\u00e9pende \u00e9galement du niveau basal d\u2019anxi\u00e9t\u00e9 du participant.<\/p>\n<p>Dans cette analyse, nous utilisons le score d\u2019anxi\u00e9t\u00e9 pr\u00e9-test comme covariable et nous nous int\u00e9ressons aux diff\u00e9rences possibles entre les groupes par rapport aux scores d\u2019anxi\u00e9t\u00e9 post-test.<\/p>\n<pre class=\"r\"><code># Charger et pr\u00e9parer les donn\u00e9es\r\ndata(\"anxiety\", package = \"datarium\")\r\nanxiety &lt;- anxiety %&gt;%\r\n  select(id, group, t1, t3) %&gt;%\r\n  rename(pretest = t1, posttest = t3)\r\nanxiety[14, \"posttest\"] &lt;- 19\r\n# Inspectez les donn\u00e9es en affichant une ligne al\u00e9atoire par groupe\r\nset.seed(123)\r\nanxiety %&gt;% sample_n_by(group, size = 1)<\/code><\/pre>\n<pre><code>## # A tibble: 3 x 4\r\n##   id    group pretest posttest\r\n##   &lt;fct&gt; &lt;fct&gt;   &lt;dbl&gt;    &lt;dbl&gt;\r\n## 1 5     grp1     16.5     15.7\r\n## 2 27    grp2     17.8     16.9\r\n## 3 37    grp3     17.1     14.3<\/code><\/pre>\n<\/div>\n<div id=\"verifier-les-hypotheses\" class=\"section level3\">\n<h3>V\u00e9rifier les hypoth\u00e8ses<\/h3>\n<div id=\"hypothese-de-linearite\" class=\"section level4\">\n<h4>Hypoth\u00e8se de lin\u00e9arit\u00e9<\/h4>\n<ul>\n<li>Cr\u00e9er un diagramme de dispersion entre la covariable (<code>pr\u00e9test<\/code>) et la variable-r\u00e9ponse (<code>post-test<\/code>)<\/li>\n<li>Ajouter des lignes de r\u00e9gression, montrer les \u00e9quations correspondantes et le R2 par groupes<\/li>\n<\/ul>\n<pre class=\"r\"><code>ggscatter(\r\n  anxiety, x = \"pretest\", y = \"posttest\",\r\n  color = \"group\", add = \"reg.line\"\r\n  )+\r\n  stat_regline_equation(\r\n    aes(label =  paste(..eq.label.., ..rr.label.., sep = \"~~~~\"), color = group)\r\n    )<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/r-statistics-2-comparing-groups-means\/figures\/048-ancova-analysis-of-covariance-one-way-linearity-assumption-1.png\" width=\"384\" \/><\/p>\n<div class=\"success\">\n<p>Il y avait une relation lin\u00e9aire entre le score d\u2019anxi\u00e9t\u00e9 pr\u00e9-test et post-test pour chaque groupe d\u2019entra\u00eenement, tel qu\u2019\u00e9valu\u00e9 par l\u2019inspection visuelle du nuage de points.<\/p>\n<\/div>\n<\/div>\n<div id=\"homogeneite-des-pentes-de-regression\" class=\"section level4\">\n<h4>Homog\u00e9n\u00e9it\u00e9 des pentes de r\u00e9gression<\/h4>\n<p>Cette hypoth\u00e8se v\u00e9rifie qu\u2019il n\u2019y a pas d\u2019interaction significative entre la covariable et la variable de groupement. Ceci peut \u00eatre \u00e9valu\u00e9 comme suit:<\/p>\n<pre class=\"r\"><code>anxiety %&gt;% anova_test(posttest ~ group*pretest)<\/code><\/pre>\n<pre><code>## ANOVA Table (type II tests)\r\n## \r\n##          Effect DFn DFd       F        p p&lt;.05   ges\r\n## 1         group   2  39 209.314 1.40e-21     * 0.915\r\n## 2       pretest   1  39 572.828 6.36e-25     * 0.936\r\n## 3 group:pretest   2  39   0.127 8.81e-01       0.006<\/code><\/pre>\n<div class=\"success\">\n<p>Il y avait homog\u00e9n\u00e9it\u00e9 des pentes de r\u00e9gression puisque le terme d\u2019interaction n\u2019\u00e9tait pas statistiquement significatif, F(2, 39) = 0,13, p = 0,88.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"normalite-des-residus\" class=\"section level3\">\n<h3>Normalit\u00e9 des r\u00e9sidus<\/h3>\n<p>Vous devez d\u2019abord calculer le mod\u00e8le en utilisant <code>lm()<\/code>. Dans R, vous pouvez facilement augmenter vos donn\u00e9es pour ajouter des valeurs pr\u00e9dites et des r\u00e9sidus en utilisant la fonction <code>augment(model)<\/code> [package broom]. Appelons le r\u00e9sultat <code>model.metrics<\/code> car elle contient plusieurs m\u00e9triques utiles pour les diagnostics de r\u00e9gression.<\/p>\n<pre class=\"r\"><code># Calculer le mod\u00e8le, la covariable passe en premier\r\nmodel &lt;- lm(posttest ~ pretest + group, data = anxiety)\r\n# Inspecter les param\u00e8tres de diagnostic du mod\u00e8le\r\nmodel.metrics &lt;- augment(model) %&gt;%\r\n  select(-.hat, -.sigma, -.fitted, -.se.fit) # Supprimer les d\u00e9tails\r\nhead(model.metrics, 3)<\/code><\/pre>\n<pre><code>## # A tibble: 3 x 6\r\n##   posttest pretest group .resid .cooksd .std.resid\r\n##      &lt;dbl&gt;   &lt;dbl&gt; &lt;fct&gt;  &lt;dbl&gt;   &lt;dbl&gt;      &lt;dbl&gt;\r\n## 1     14.1    14.1 grp1   0.550  0.101       1.46 \r\n## 2     14.3    14.5 grp1   0.338  0.0310      0.885\r\n## 3     14.9    15.7 grp1  -0.295  0.0133     -0.750<\/code><\/pre>\n<pre class=\"r\"><code># \u00c9valuer la normalit\u00e9 des r\u00e9sidus \u00e0 l'aide du test de Shapiro-Wilk\r\nshapiro_test(model.metrics$.resid)<\/code><\/pre>\n<pre><code>## # A tibble: 1 x 3\r\n##   variable             statistic p.value\r\n##   &lt;chr&gt;                    &lt;dbl&gt;   &lt;dbl&gt;\r\n## 1 model.metrics$.resid     0.975   0.444<\/code><\/pre>\n<div class=\"success\">\n<p>Le test de Shapiro-Wilk n\u2019\u00e9tait pas significatif (p &gt; 0,05), on peut donc supposer une normalit\u00e9 des r\u00e9sidus<\/p>\n<\/div>\n<\/div>\n<div id=\"homogeneite-des-variances\" class=\"section level3\">\n<h3>Homog\u00e9n\u00e9it\u00e9 des variances<\/h3>\n<p>L\u2019ANCOVA suppose que la variance des r\u00e9sidus est \u00e9gale pour tous les groupes. Ceci peut \u00eatre v\u00e9rifi\u00e9 \u00e0 l\u2019aide du test de Levene:<\/p>\n<pre class=\"r\"><code>model.metrics %&gt;% levene_test(.resid ~ group)<\/code><\/pre>\n<pre><code>## # A tibble: 1 x 4\r\n##     df1   df2 statistic     p\r\n##   &lt;int&gt; &lt;int&gt;     &lt;dbl&gt; &lt;dbl&gt;\r\n## 1     2    42      2.27 0.116<\/code><\/pre>\n<div class=\"success\">\n<p>Le test de Levene n\u2019\u00e9tait pas significatif (p &gt; 0,05), nous pouvons donc supposer l\u2019homog\u00e9n\u00e9it\u00e9 des variances r\u00e9siduelles pour tous les groupes.<\/p>\n<\/div>\n<\/div>\n<div id=\"valeurs-aberrantes\" class=\"section level3\">\n<h3>Valeurs aberrantes<\/h3>\n<p>Une valeur aberrante est un point qui a une valeur extr\u00eame de variable-r\u00e9ponse. La pr\u00e9sence de valeurs aberrantes peut influer sur l\u2019interpr\u00e9tation du mod\u00e8le.<\/p>\n<p>Les valeurs aberrantes peuvent \u00eatre identifi\u00e9es en examinant les r\u00e9sidus normalis\u00e9 (ou r\u00e9sidus studentis\u00e9s), qui est le r\u00e9sidu divis\u00e9 par son erreur type estim\u00e9e. Les r\u00e9sidus normalis\u00e9s peuvent \u00eatre interpr\u00e9t\u00e9s comme le nombre d\u2019erreurs-types en dehors de la ligne de r\u00e9gression.<\/p>\n<div class=\"warning\">\n<p>Les observations dont les r\u00e9sidus normalis\u00e9s sont sup\u00e9rieurs \u00e0 3 en valeur absolue sont des valeurs aberrantes possibles.<\/p>\n<\/div>\n<pre class=\"r\"><code>model.metrics %&gt;% \r\n  filter(abs(.std.resid) &gt; 3) %&gt;%\r\n  as.data.frame()<\/code><\/pre>\n<pre><code>## [1] posttest   pretest    group      .resid     .cooksd    .std.resid\r\n## &lt;0 rows&gt; (or 0-length row.names)<\/code><\/pre>\n<div class=\"success\">\n<p>Il n\u2019y avait pas de valeurs aberrantes dans les donn\u00e9es, telles qu\u2019\u00e9valu\u00e9es par l\u2019absence de cas avec des r\u00e9sidus normalis\u00e9s sup\u00e9rieurs \u00e0 3 en valeur absolue.<\/p>\n<\/div>\n<\/div>\n<div id=\"calculs\" class=\"section level3\">\n<h3>Calculs<\/h3>\n<p>L\u2019ordre des variables est important dans le calcul de l\u2019ANCOVA. Vous voulez d\u2019abord supprimer l\u2019effet de la covariable - c\u2019est-\u00e0-dire, vous voulez le contr\u00f4ler - avant d\u2019entrer votre variable principale ou votre int\u00e9r\u00eat.<\/p>\n<div class=\"warning\">\n<p>La covariable passe en premier (et il n\u2019y a pas d\u2019interaction) ! Si vous ne le faites pas dans l\u2019ordre, vous obtiendrez des r\u00e9sultats diff\u00e9rents.<\/p>\n<\/div>\n<pre class=\"r\"><code>res.aov &lt;- anxiety %&gt;% anova_test(posttest ~ pretest + group)\r\nget_anova_table(res.aov)<\/code><\/pre>\n<pre><code>## ANOVA Table (type II tests)\r\n## \r\n##    Effect DFn DFd   F        p p&lt;.05   ges\r\n## 1 pretest   1  41 598 4.48e-26     * 0.936\r\n## 2   group   2  41 219 1.35e-22     * 0.914<\/code><\/pre>\n<div class=\"success\">\n<p>Apr\u00e8s ajustement pour tenir compte du score d\u2019anxi\u00e9t\u00e9 pr\u00e9-test, il y avait une diff\u00e9rence statistiquement significative du score d\u2019anxi\u00e9t\u00e9 post-test entre les groupes, F(2, 41) = 218,63, p &lt; 0,0001.<\/p>\n<\/div>\n<\/div>\n<div id=\"test-post-hoc\" class=\"section level3\">\n<h3>Test post-hoc<\/h3>\n<p>Des comparaisons par paires peuvent \u00eatre effectu\u00e9es pour identifier les groupes qui sont statistiquement diff\u00e9rents. La correction de tests multiples de Bonferroni est appliqu\u00e9e. Ceci peut \u00eatre fait facilement en utilisant la fonction <code>emmeans_test()<\/code> [paquet rstatix], un wrapper autour du paquet <code>emmeans<\/code>, qui doit \u00eatre install\u00e9. Emmeans (estimated marginal means en anglais) signifie <strong>moyennes marginales estim\u00e9es<\/strong> (c\u2019est-\u00e0-dire moyennes des moindres carr\u00e9s ou moyennes ajust\u00e9es).<\/p>\n<pre class=\"r\"><code># Comparaisons par paires\r\nlibrary(emmeans)\r\npwc &lt;- anxiety %&gt;% \r\n  emmeans_test(\r\n    posttest ~ group, covariate = pretest,\r\n    p.adjust.method = \"bonferroni\"\r\n    )\r\npwc<\/code><\/pre>\n<pre><code>## # A tibble: 3 x 8\r\n##   .y.      group1 group2    df statistic        p    p.adj p.adj.signif\r\n## * &lt;chr&gt;    &lt;chr&gt;  &lt;chr&gt;  &lt;dbl&gt;     &lt;dbl&gt;    &lt;dbl&gt;    &lt;dbl&gt; &lt;chr&gt;       \r\n## 1 posttest grp1   grp2      41      4.24 1.26e- 4 3.77e- 4 ***         \r\n## 2 posttest grp1   grp3      41     19.9  1.19e-22 3.58e-22 ****        \r\n## 3 posttest grp2   grp3      41     15.5  9.21e-19 2.76e-18 ****<\/code><\/pre>\n<pre class=\"r\"><code># Afficher les moyennes ajust\u00e9es de chaque groupe\r\n# \u00c9galement appel\u00e9e moyenne marginale estim\u00e9e (emmeans)\r\nget_emmeans(pwc)<\/code><\/pre>\n<pre><code>## # A tibble: 3 x 8\r\n##   pretest group emmean    se    df conf.low conf.high method      \r\n##     &lt;dbl&gt; &lt;fct&gt;  &lt;dbl&gt; &lt;dbl&gt; &lt;dbl&gt;    &lt;dbl&gt;     &lt;dbl&gt; &lt;chr&gt;       \r\n## 1    16.9 grp1    16.4 0.106    41     16.2      16.7 Emmeans test\r\n## 2    16.9 grp2    15.8 0.107    41     15.6      16.0 Emmeans test\r\n## 3    16.9 grp3    13.5 0.106    41     13.2      13.7 Emmeans test<\/code><\/pre>\n<div class=\"success\">\n<p>Les donn\u00e9es sont des moyennes +\/- erreur-type ajust\u00e9es. Le score moyen d\u2019anxi\u00e9t\u00e9 \u00e9tait statistiquement significativement plus \u00e9lev\u00e9 dans grp1 (16,4 +\/- 0,15) que dans grp2 (15,8 +\/- 0,12) et grp3 (13,5 +\/_ 0,11), p &lt; 0,001.<\/p>\n<\/div>\n<\/div>\n<div id=\"rapporter\" class=\"section level3\">\n<h3>Rapporter<\/h3>\n<p>Une ANCOVA a \u00e9t\u00e9 effectu\u00e9e pour d\u00e9terminer l\u2019effet des exercices sur le score d\u2019anxi\u00e9t\u00e9 apr\u00e8s contr\u00f4le du score d\u2019anxi\u00e9t\u00e9 basale des participants.<\/p>\n<p>Apr\u00e8s ajustement pour tenir compte du score d\u2019anxi\u00e9t\u00e9 pr\u00e9-test, il y avait une diff\u00e9rence statistiquement significative du score d\u2019anxi\u00e9t\u00e9 post-test entre les groupes, F(2, 41) = 218,63, p &lt; 0,0001.<\/p>\n<p>L\u2019analyse post-hoc a \u00e9t\u00e9 effectu\u00e9e avec un ajustement de Bonferroni. Le score moyen d\u2019anxi\u00e9t\u00e9 \u00e9tait statistiquement significativement plus \u00e9lev\u00e9 dans grp1 (16,4 +\/- 0,15) que dans grp2 (15,8 +\/- 0,12) et grp3 (13,5 +\/_ 0,11), p &lt; 0,001.<\/p>\n<pre class=\"r\"><code># Visualisation : Line plots avec p-values\r\npwc &lt;- pwc %&gt;% add_xy_position(x = \"group\", fun = \"mean_se\")\r\nggline(get_emmeans(pwc), x = \"group\", y = \"emmean\") +\r\n  geom_errorbar(aes(ymin = conf.low, ymax = conf.high), width = 0.2) + \r\n  stat_pvalue_manual(pwc, hide.ns = TRUE, tip.length = FALSE) +\r\n  labs(\r\n    subtitle = get_test_label(res.aov, detailed = TRUE),\r\n    caption = get_pwc_label(pwc)\r\n  )<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/r-statistics-2-comparing-groups-means\/figures\/048-ancova-analysis-of-covariance-one-way-line-plot-with-p-values-1.png\" width=\"576\" \/><\/p>\n<\/div>\n<\/div>\n<div id=\"two-way-ancova\" class=\"section level2\">\n<h2>ANCOVA \u00e0 deux facteurs<\/h2>\n<div id=\"preparation-des-donnees-1\" class=\"section level3\">\n<h3>Pr\u00e9paration des donn\u00e9es<\/h3>\n<p>Nous utiliserons le jeu de donn\u00e9es <code>stress<\/code> disponible dans le package datarium. Dans cette \u00e9tude, un chercheur veut \u00e9valuer l\u2019effet du traitement (<code>treatment<\/code>) et de l\u2019 exercice (<code>exercise<\/code>) sur le <code>score<\/code> de r\u00e9duction du stress apr\u00e8s ajustement pour <code>age<\/code>.<\/p>\n<p>Dans cet exemple : 1) le <code>score de stress<\/code> est notre variable-r\u00e9ponse (ou variable d\u00e9pendante) ; 2) <code>treatment<\/code> (groups : non et oui) et <code>exercises<\/code> (groups : faible, moyen et \u00e9lev\u00e9) sont nos variables de regroupement ; 3) <code>age<\/code> est notre covariable.<\/p>\n<p>Charger les donn\u00e9es et afficher quelques lignes al\u00e9atoires par groupes:<\/p>\n<pre class=\"r\"><code>data(\"stress\", package = \"datarium\")\r\nstress %&gt;% sample_n_by(treatment, exercise)<\/code><\/pre>\n<pre><code>## # A tibble: 6 x 5\r\n##      id score treatment exercise   age\r\n##   &lt;int&gt; &lt;dbl&gt; &lt;fct&gt;     &lt;fct&gt;    &lt;dbl&gt;\r\n## 1     8  83.8 yes       low         61\r\n## 2    15  86.9 yes       moderate    55\r\n## 3    29  71.5 yes       high        55\r\n## 4    40  92.4 no        low         67\r\n## 5    41 100   no        moderate    75\r\n## 6    56  82.4 no        high        53<\/code><\/pre>\n<\/div>\n<div id=\"verifier-les-hypotheses-1\" class=\"section level3\">\n<h3>V\u00e9rifier les hypoth\u00e8ses<\/h3>\n<div id=\"hypothese-de-linearite-1\" class=\"section level4\">\n<h4>Hypoth\u00e8se de lin\u00e9arit\u00e9<\/h4>\n<ul>\n<li>Cr\u00e9ez un diagramme de dispersion entre la covariable (<code>age<\/code>) et la variable-r\u00e9ponse (<code>score<\/code>) pour chaque combinaison des groupes des deux variables de groupement:<\/li>\n<li>Ajoutez des lignes lisses de loess, ce qui aide \u00e0 d\u00e9cider si la relation est lin\u00e9aire ou non<\/li>\n<\/ul>\n<pre class=\"r\"><code>ggscatter(\r\n  stress, x = \"age\", y = \"score\",\r\n  facet.by  = c(\"exercise\", \"treatment\"), \r\n  short.panel.labs = FALSE\r\n  )+\r\n  stat_smooth(method = \"loess\", span = 0.9)<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/r-statistics-2-comparing-groups-means\/figures\/048-ancova-analysis-of-covariance-linearity-assumption-1.png\" width=\"480\" \/><\/p>\n<div class=\"success\">\n<p>Il y a une relation lin\u00e9aire entre la covariable (variable de l\u2019\u00e2ge) et la variable-r\u00e9ponse (score) pour chaque groupe, telle qu\u2019\u00e9valu\u00e9e par une inspection visuelle du diagramme de dispersion.<\/p>\n<\/div>\n<\/div>\n<div id=\"homogeneite-des-pentes-de-regression-1\" class=\"section level4\">\n<h4>Homog\u00e9n\u00e9it\u00e9 des pentes de r\u00e9gression<\/h4>\n<p>Cette hypoth\u00e8se v\u00e9rifie qu\u2019il n\u2019y a pas d\u2019interaction significative entre la covariable et les variables de groupement. Ceci peut \u00eatre \u00e9valu\u00e9 comme suit:<\/p>\n<pre class=\"r\"><code>stress %&gt;%\r\n  anova_test(\r\n    score ~ age + treatment + exercise + \r\n     treatment*exercise + age*treatment +\r\n     age*exercise + age*exercise*treatment\r\n  )<\/code><\/pre>\n<pre><code>## ANOVA Table (type II tests)\r\n## \r\n##                   Effect DFn DFd      F        p p&lt;.05      ges\r\n## 1                    age   1  48  8.359 6.00e-03     * 0.148000\r\n## 2              treatment   1  48  9.907 3.00e-03     * 0.171000\r\n## 3               exercise   2  48 18.197 1.31e-06     * 0.431000\r\n## 4     treatment:exercise   2  48  3.303 4.50e-02     * 0.121000\r\n## 5          age:treatment   1  48  0.009 9.25e-01       0.000189\r\n## 6           age:exercise   2  48  0.235 7.91e-01       0.010000\r\n## 7 age:treatment:exercise   2  48  0.073 9.30e-01       0.003000<\/code><\/pre>\n<p>Une autre solution simple consiste \u00e0 cr\u00e9er une nouvelle variable de regroupement, par exemple <code>groupe<\/code>, \u00e0 partir des combinaisons des variables existantes, puis \u00e0 calculer le mod\u00e8le ANOVA:<\/p>\n<pre class=\"r\"><code>stress %&gt;%\r\n  unite(col = \"group\", treatment, exercise) %&gt;%\r\n  anova_test(score ~ group*age)<\/code><\/pre>\n<pre><code>## ANOVA Table (type II tests)\r\n## \r\n##      Effect DFn DFd      F        p p&lt;.05   ges\r\n## 1     group   5  48 10.912 4.76e-07     * 0.532\r\n## 2       age   1  48  8.359 6.00e-03     * 0.148\r\n## 3 group:age   5  48  0.126 9.86e-01       0.013<\/code><\/pre>\n<div class=\"success\">\n<p>Les pentes de r\u00e9gression \u00e9taient homog\u00e8nes, car les termes d\u2019interaction entre les covariables (\u00e2ge) et les variables de groupement (traitement et exercice) n\u2019\u00e9taient pas statistiquement significatifs, p &gt; 0,05.<\/p>\n<\/div>\n<\/div>\n<div id=\"normalite-des-residus-1\" class=\"section level4\">\n<h4>Normalit\u00e9 des r\u00e9sidus<\/h4>\n<pre class=\"r\"><code># Calculer le mod\u00e8le, la covariable passe en premier\r\nmodel &lt;- lm(score ~ age + treatment*exercise, data = stress)\r\n# Inspecter les param\u00e8tres de diagnostic du mod\u00e8le\r\nmodel.metrics &lt;- augment(model) %&gt;%\r\n  select(-.hat, -.sigma, -.fitted, -.se.fit) # Supprimer les d\u00e9tails\r\nhead(model.metrics, 3)<\/code><\/pre>\n<pre><code>## # A tibble: 3 x 7\r\n##   score   age treatment exercise .resid .cooksd .std.resid\r\n##   &lt;dbl&gt; &lt;dbl&gt; &lt;fct&gt;     &lt;fct&gt;     &lt;dbl&gt;   &lt;dbl&gt;      &lt;dbl&gt;\r\n## 1  95.6    59 yes       low        9.10  0.0647       1.93\r\n## 2  82.2    65 yes       low       -7.32  0.0439      -1.56\r\n## 3  97.2    70 yes       low        5.16  0.0401       1.14<\/code><\/pre>\n<pre class=\"r\"><code># \u00c9valuer la normalit\u00e9 des r\u00e9sidus \u00e0 l'aide du test de Shapiro-Wilk\r\nshapiro_test(model.metrics$.resid)<\/code><\/pre>\n<pre><code>## # A tibble: 1 x 3\r\n##   variable             statistic p.value\r\n##   &lt;chr&gt;                    &lt;dbl&gt;   &lt;dbl&gt;\r\n## 1 model.metrics$.resid     0.982   0.531<\/code><\/pre>\n<div class=\"success\">\n<p>Le test de Shapiro-Wilk n\u2019\u00e9tait pas significatif (p &gt; 0,05), on peut donc supposer une normalit\u00e9 des r\u00e9sidus<\/p>\n<\/div>\n<\/div>\n<div id=\"homogeneite-des-variances-1\" class=\"section level4\">\n<h4>Homog\u00e9n\u00e9it\u00e9 des variances<\/h4>\n<p>L\u2019ANCOVA suppose que la variance des r\u00e9sidus est \u00e9gale pour tous les groupes. Ceci peut \u00eatre v\u00e9rifi\u00e9 \u00e0 l\u2019aide du test de Levene:<\/p>\n<pre class=\"r\"><code>levene_test(.resid ~ treatment*exercise, data = model.metrics)<\/code><\/pre>\n<div class=\"success\">\n<p>Le test de Levene n\u2019\u00e9tait pas significatif (p &gt; 0,05), nous pouvons donc supposer l\u2019homog\u00e9n\u00e9it\u00e9 des variances r\u00e9siduelles pour tous les groupes.<\/p>\n<\/div>\n<\/div>\n<div id=\"valeurs-aberrantes-1\" class=\"section level4\">\n<h4>Valeurs aberrantes<\/h4>\n<p>Les observations dont les r\u00e9sidus normalis\u00e9s sont sup\u00e9rieurs \u00e0 3 en valeur absolue sont des valeurs aberrantes possibles.<\/p>\n<pre class=\"r\"><code>model.metrics %&gt;% \r\n  filter(abs(.std.resid) &gt; 3) %&gt;%\r\n  as.data.frame()<\/code><\/pre>\n<pre><code>## [1] score      age        treatment  exercise   .resid     .cooksd    .std.resid\r\n## &lt;0 rows&gt; (or 0-length row.names)<\/code><\/pre>\n<div class=\"success\">\n<p>Il n\u2019y avait pas de valeurs aberrantes dans les donn\u00e9es, telles qu\u2019\u00e9valu\u00e9es par l\u2019absence de cas avec des r\u00e9sidus normalis\u00e9s sup\u00e9rieurs \u00e0 3 en valeur absolue.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"calculs-1\" class=\"section level3\">\n<h3>Calculs<\/h3>\n<pre class=\"r\"><code>res.aov &lt;- stress %&gt;% \r\n  anova_test(score ~ age + treatment*exercise)\r\nget_anova_table(res.aov)<\/code><\/pre>\n<pre><code>## ANOVA Table (type II tests)\r\n## \r\n##               Effect DFn DFd     F        p p&lt;.05   ges\r\n## 1                age   1  53  9.11 4.00e-03     * 0.147\r\n## 2          treatment   1  53 11.10 2.00e-03     * 0.173\r\n## 3           exercise   2  53 20.82 2.13e-07     * 0.440\r\n## 4 treatment:exercise   2  53  4.45 1.60e-02     * 0.144<\/code><\/pre>\n<div class=\"success\">\n<p>Apr\u00e8s ajustement pour l\u2019\u00e2ge, il y avait une interaction statistiquement significative entre le traitement et l\u2019exercice sur le score de stress, F(2, 53) = 4,45, p = 0,016. Cela indique que l\u2019effet de l\u2019exercice sur le score d\u00e9pend du traitement, et vice-versa.<\/p>\n<\/div>\n<\/div>\n<div id=\"test-post-hoc-1\" class=\"section level3\">\n<h3>Test post-hoc<\/h3>\n<p>Une interaction statistiquement significative, \u00e0 deux facteurs, peut \u00eatre suivie <strong>d\u2019analyses d\u2019effets principaux<\/strong>, c\u2019est-\u00e0-dire l\u2019\u00e9valuation de l\u2019effet d\u2019une variable \u00e0 chaque niveau de la deuxi\u00e8me variable, et vice-versa.<\/p>\n<p>Dans le cas o\u00f9 l\u2019interaction n\u2019est pas significative, vous pouvez indiquer l\u2019effet principal de chaque variable de regroupement.<\/p>\n<p>Une <strong>interaction significative \u00e0 deux facteurs<\/strong> indique que l\u2019impact d\u2019un facteur sur la variable-r\u00e9ponse d\u00e9pend du niveau de l\u2019autre facteur (et vice versa). Ainsi, vous pouvez d\u00e9composer une interaction significative, \u00e0 deux facteurs, en:<\/p>\n<ul>\n<li><strong>Effet principal<\/strong> : ex\u00e9cuter le mod\u00e8le \u00e0 un facteur avec la premi\u00e8re variable (facteur A) \u00e0 chaque niveau de la deuxi\u00e8me variable (facteur B),<\/li>\n<li><strong>Comparaisons par paires<\/strong> : si l\u2019effet principal est significatif, effectuez plusieurs comparaisons par paires pour d\u00e9terminer quels groupes sont diff\u00e9rents.<\/li>\n<\/ul>\n<p>Dans le cas d\u2019une <strong>interaction, \u00e0 deux facteurs, non significative<\/strong>, vous devez d\u00e9terminer si vous avez des <strong>effets principaux<\/strong> statistiquement significatifs dans le r\u00e9sultat de l\u2019ANCOVA.<\/p>\n<p>Dans cette section, nous d\u00e9crirons la proc\u00e9dure \u00e0 suivre pour une interaction significative \u00e0 trois facteurs<\/p>\n<div id=\"analyses-de-leffet-principal-pour-le-traitement\" class=\"section level4\">\n<h4>Analyses de l\u2019effet principal pour le traitement<\/h4>\n<p><strong>Analyser l\u2019effet principal simple<\/strong> de <code>treatment<\/code> at each level of <code>exercise<\/code>. Regroupez les donn\u00e9es par exercice (<code>exercise<\/code>) et effectuez une ANCOVA pour le traitement (<code>treatment<\/code>) en ajustant pour <code>age<\/code>:<\/p>\n<pre class=\"r\"><code># Effet du traitement \u00e0 chaque niveau d'exercice\r\nstress %&gt;%\r\n  group_by(exercise) %&gt;%\r\n  anova_test(score ~ age + treatment)<\/code><\/pre>\n<pre><code>## # A tibble: 6 x 8\r\n##   exercise Effect      DFn   DFd      F        p `p&lt;.05`   ges\r\n##   &lt;fct&gt;    &lt;chr&gt;     &lt;dbl&gt; &lt;dbl&gt;  &lt;dbl&gt;    &lt;dbl&gt; &lt;chr&gt;   &lt;dbl&gt;\r\n## 1 low      age           1    17  2.25  0.152    \"\"      0.117\r\n## 2 low      treatment     1    17  0.437 0.517    \"\"      0.025\r\n## 3 moderate age           1    17  6.65  0.02     *       0.281\r\n## 4 moderate treatment     1    17  0.419 0.526    \"\"      0.024\r\n## 5 high     age           1    17  0.794 0.385    \"\"      0.045\r\n## 6 high     treatment     1    17 18.7   0.000455 *       0.524<\/code><\/pre>\n<div class=\"warning\">\n<p>Notez que nous devons appliquer l\u2019ajustement de Bonferroni pour les corrections de tests multiples. Une approche courante consiste \u00e0 baisser le niveau auquel vous d\u00e9clarez la significativit\u00e9 en divisant la valeur alpha (0,05) par le nombre de tests effectu\u00e9s. Dans notre exemple, c\u2019est-\u00e0-dire 0,05\/3 = 0,01666667.<\/p>\n<\/div>\n<div class=\"success\">\n<p>La significativit\u00e9 statistique a \u00e9t\u00e9 accept\u00e9e au niveau alpha ajust\u00e9 de Bonferroni de 0,01667, soit 0,05\/3. L\u2019effet du traitement \u00e9tait statistiquement significatif dans le groupe des exercices d\u2019intensit\u00e9 \u00e9lev\u00e9e (p = 0,00045), mais pas dans le groupe des exercices de faible intensit\u00e9 (p = 0,517) et dans le groupe des exercices d\u2019intensit\u00e9 moyenne (p = 0,526).<\/p>\n<\/div>\n<p><strong>Calculer des comparaisons par paires entre les groupes de traitement<\/strong> \u00e0 chaque niveau d\u2019exercice. La correction de tests multiples de Bonferroni est appliqu\u00e9e.<\/p>\n<pre class=\"r\"><code># Comparaisons par paires\r\npwc &lt;- stress %&gt;% \r\n  group_by(exercise) %&gt;%\r\n  emmeans_test(\r\n    score ~ treatment, covariate = age,\r\n    p.adjust.method = \"bonferroni\"\r\n    )\r\npwc %&gt;% filter(exercise == \"high\")<\/code><\/pre>\n<pre><code>## # A tibble: 1 x 9\r\n##   exercise .y.   group1 group2    df statistic         p     p.adj p.adj.signif\r\n##   &lt;fct&gt;    &lt;chr&gt; &lt;chr&gt;  &lt;chr&gt;  &lt;dbl&gt;     &lt;dbl&gt;     &lt;dbl&gt;     &lt;dbl&gt; &lt;chr&gt;       \r\n## 1 high     score yes    no        53     -4.36 0.0000597 0.0000597 ****<\/code><\/pre>\n<div class=\"warning\">\n<p>Dans le tableau de comparaison par paires, vous n\u2019aurez besoin du r\u00e9sultat que pour le groupe \u201cexercices:high\u201d, car c\u2019\u00e9tait la seule condition o\u00f9 l\u2019effet principal du traitement \u00e9tait statistiquement significatif.<\/p>\n<\/div>\n<div class=\"success\">\n<p>Les comparaisons par paires entre le groupe treatment:no et treatment:yes \u00e9taient statistiquement significatives chez les participants qui entreprenaient des exercices \u00e0 haute intensit\u00e9 (p &lt; 0,0001).<\/p>\n<\/div>\n<\/div>\n<div id=\"effet-principal-simple-pour-lexercice\" class=\"section level4\">\n<h4>Effet principal simple pour l\u2019exercice<\/h4>\n<p>Vous pouvez faire les m\u00eames analyses post-hoc pour la variable exercice \u00e0 chaque niveau de la variable traitement.<\/p>\n<pre class=\"r\"><code># Effet de l'exercice \u00e0 chaque niveau de traitement\r\nstress %&gt;%\r\n  group_by(treatment) %&gt;%\r\n  anova_test(score ~ age + exercise)<\/code><\/pre>\n<pre><code>## # A tibble: 4 x 8\r\n##   treatment Effect     DFn   DFd     F         p `p&lt;.05`   ges\r\n##   &lt;fct&gt;     &lt;chr&gt;    &lt;dbl&gt; &lt;dbl&gt; &lt;dbl&gt;     &lt;dbl&gt; &lt;chr&gt;   &lt;dbl&gt;\r\n## 1 yes       age          1    26  2.37 0.136     \"\"      0.083\r\n## 2 yes       exercise     2    26 17.3  0.0000164 *       0.572\r\n## 3 no        age          1    26  7.26 0.012     *       0.218\r\n## 4 no        exercise     2    26  3.99 0.031     *       0.235<\/code><\/pre>\n<div class=\"success\">\n<p>La significativit\u00e9 statistique a \u00e9t\u00e9 accept\u00e9e au niveau alpha ajust\u00e9 de Bonferroni de 0,025, soit 0,05\/2 (le nombre de tests). L\u2019effet de l\u2019exercice \u00e9tait statistiquement significatif dans le groupe <code>treatment=yes<\/code> (p &lt; 0,0001), mais pas dans le groupe treatment=no (p = 0,031).<\/p>\n<\/div>\n<p>Effectuer plusieurs comparaisons par paires entre <code>exercise<\/code> groups at each level of <code>treatment<\/code>. Il n\u2019est pas n\u00e9cessaire d\u2019interpr\u00e9ter les r\u00e9sultats pour le groupe \u201cno treatment\u201d (sans traitement), car l\u2019effet de l\u2019exercice n\u2019\u00e9tait pas significatif pour ce groupe.<\/p>\n<pre class=\"r\"><code>pwc2 &lt;- stress %&gt;% \r\n  group_by(treatment) %&gt;%\r\n  emmeans_test(\r\n    score ~ exercise, covariate = age,\r\n    p.adjust.method = \"bonferroni\"\r\n    ) %&gt;%\r\n  select(-df, -statistic, -p) # Supprimer les d\u00e9tails\r\npwc2 %&gt;% filter(treatment == \"yes\")<\/code><\/pre>\n<pre><code>## # A tibble: 3 x 6\r\n##   treatment .y.   group1   group2         p.adj p.adj.signif\r\n##   &lt;fct&gt;     &lt;chr&gt; &lt;chr&gt;    &lt;chr&gt;          &lt;dbl&gt; &lt;chr&gt;       \r\n## 1 yes       score low      moderate 1           ns          \r\n## 2 yes       score low      high     0.00000113  ****        \r\n## 3 yes       score moderate high     0.000000466 ****<\/code><\/pre>\n<div class=\"success\">\n<p>Il y avait une diff\u00e9rence statistiquement significative entre la moyenne ajust\u00e9e du groupe \u00e0 faible et forte activit\u00e9 d\u2019exercices (p &lt; 0,0001) et, entre le groupe mod\u00e9r\u00e9 et le groupe \u00e9lev\u00e9 (p &lt; 0,0001). La diff\u00e9rence entre la moyenne ajust\u00e9e des valeurs faibles et mod\u00e9r\u00e9es n\u2019\u00e9tait pas significative.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"rapporter-1\" class=\"section level3\">\n<h3>Rapporter<\/h3>\n<p>Une ANCOVA, \u00e0 deux facteurs, a \u00e9t\u00e9 effectu\u00e9e pour examiner les effets du traitement et de l\u2019exercice sur la r\u00e9duction du stress, apr\u00e8s contr\u00f4le de l\u2019\u00e2ge.<\/p>\n<p>Il y avait une interaction statistiquement significative entre le traitement et l\u2019exercice sur la concentration du score, tout en tenant compte de l\u2019\u00e2ge, F(2, 53) = 4,45, p = 0,016.<\/p>\n<p>Par cons\u00e9quent, une analyse des effets principaux de l\u2019exercice et du traitement a \u00e9t\u00e9 effectu\u00e9e avec une signification statistique recevant un ajustement de Bonferroni et \u00e9tant accept\u00e9e au niveau p &lt; 0,025 pour l\u2019exercice et p &lt; 0,0167 pour le traitement.<\/p>\n<p>L\u2019effet principal du traitement \u00e9tait statistiquement significatif dans le groupe des exercices de forte intensit\u00e9 (p = 0,00046), mais pas dans le groupe des exercices de faible intensit\u00e9 (p = 0,52) et le groupe des exercices de moyenne intensit\u00e9 (p = 0,53).<\/p>\n<p>L\u2019effet de l\u2019exercice \u00e9tait statistiquement significatif dans le groupe <code>treatment=yes<\/code> (p &lt; 0,0001), mais pas dans le groupe <code>treatment=no<\/code> (p = 0,031).<\/p>\n<p>Toutes les comparaisons par paires ont \u00e9t\u00e9 calcul\u00e9es pour les effets principaux statistiquement significatifs avec des p-values rapport\u00e9es ajust\u00e9es de Bonferroni. Pour le groupe <code>treatment=yes<\/code>, il y avait une diff\u00e9rence statistiquement significative entre la moyenne ajust\u00e9e du groupe \u00e0 faible et \u00e0 forte intensit\u00e9 d\u2019exercices (p &lt; 0,0001) et, entre le groupe mod\u00e9r\u00e9 et le groupe \u00e9lev\u00e9 (p &lt; 0,0001). La diff\u00e9rence entre les moyennes ajust\u00e9es des groupes d\u2019exercice faible et mod\u00e9r\u00e9 n\u2019\u00e9tait pas significative.<\/p>\n<ul>\n<li>Cr\u00e9er un line plot:<\/li>\n<\/ul>\n<pre class=\"r\"><code># Line plot\r\nlp &lt;- ggline(\r\n  get_emmeans(pwc), x = \"exercise\", y = \"emmean\", \r\n  color = \"treatment\", palette = \"jco\"\r\n  ) +\r\n  geom_errorbar(\r\n    aes(ymin = conf.low, ymax = conf.high, color = treatment), \r\n    width = 0.1\r\n    )<\/code><\/pre>\n<ul>\n<li>Ajouter des p-values<\/li>\n<\/ul>\n<pre class=\"r\"><code># Comparaisons entre les groupes de traitement \u00e0 chaque niveau d'exercice\r\npwc &lt;- pwc %&gt;% add_xy_position(x = \"exercise\", fun = \"mean_se\", step.increase = 0.2)\r\npwc.filtered &lt;- pwc %&gt;% filter(exercise == \"high\")\r\nlp + \r\nstat_pvalue_manual(\r\n  pwc.filtered, hide.ns = TRUE, tip.length = 0,\r\n  bracket.size = 0\r\n  ) +\r\nlabs(\r\n  subtitle = get_test_label(res.aov,  detailed = TRUE),\r\n  caption = get_pwc_label(pwc)\r\n)<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/r-statistics-2-comparing-groups-means\/figures\/048-ancova-analysis-of-covariance-two-way-ancova-line-plots-with-p-values-1.png\" width=\"576\" \/><\/p>\n<pre class=\"r\"><code># Comparaisons entre les groupes d'exercices \u00e0 chaque niveau de traitement\r\npwc2 &lt;- pwc2 %&gt;% add_xy_position(x = \"exercise\", fun = \"mean_se\")\r\npwc2.filtered &lt;- pwc2 %&gt;% filter(treatment == \"yes\")\r\nlp + \r\nstat_pvalue_manual(\r\n  pwc2.filtered, hide.ns = TRUE, tip.length = 0,\r\n  step.group.by = \"treatment\", color = \"treatment\"\r\n  ) +\r\nlabs(\r\n  subtitle = get_test_label(res.aov,  detailed = TRUE),\r\n  caption = get_pwc_label(pwc2)\r\n)<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/r-statistics-2-comparing-groups-means\/figures\/048-ancova-analysis-of-covariance-two-way-ancova-line-plots-with-p-values-2.png\" width=\"576\" \/><\/p>\n<\/div>\n<\/div>\n<div id=\"resume\" class=\"section level2\">\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>Cet article d\u00e9crit comment calculer et interpr\u00e9ter l\u2019ANCOVA \u00e0 un et deux facteurs dans R. Nous expliquons \u00e9galement les hypoth\u00e8ses faites par les tests ANCOVA et fournissons des exemples pratiques de codes R pour v\u00e9rifier si les hypoth\u00e8ses des tests sont respect\u00e9es ou non.<\/p>\n<\/div>\n<\/div>\n<p><!--end rdoc--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>L&rsquo;Analyse de la covariance (ANCOVA) sert \u00e0 comparer les moyennes d&rsquo;une variable-r\u00e9ponse entre deux ou plusieurs groupes en tenant compte (ou en corrigeant) la variabilit\u00e9 d&rsquo;autres variables, appel\u00e9es covariables.  Dans ce chapitre, vous apprendrez comment calculer et interpr\u00e9ter l&rsquo;ANCOVA \u00e0 un facteur et \u00e0 deux facteurs dans R.<\/p>\n","protected":false},"author":1,"featured_media":11069,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","class_list":["post-11068","dt_lessons","type-dt_lessons","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>ANCOVA dans R: Excellente R\u00e9f\u00e9rence - Datanovia<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.datanovia.com\/en\/fr\/lessons\/ancova-dans-r\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ANCOVA dans R: Excellente R\u00e9f\u00e9rence - Datanovia\" \/>\n<meta property=\"og:description\" content=\"L&#039;Analyse de la covariance (ANCOVA) sert \u00e0 comparer les moyennes d&#039;une variable-r\u00e9ponse entre deux ou plusieurs groupes en tenant compte (ou en corrigeant) la variabilit\u00e9 d&#039;autres variables, appel\u00e9es covariables. Dans ce chapitre, vous apprendrez comment calculer et interpr\u00e9ter l&#039;ANCOVA \u00e0 un facteur et \u00e0 deux facteurs dans R.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.datanovia.com\/en\/fr\/lessons\/ancova-dans-r\/\" \/>\n<meta property=\"og:site_name\" content=\"Datanovia\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X26814448_567195243620424_5875663421650887010_n.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"21 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/lessons\/ancova-dans-r\/\",\"url\":\"https:\/\/www.datanovia.com\/en\/fr\/lessons\/ancova-dans-r\/\",\"name\":\"ANCOVA dans R: Excellente R\u00e9f\u00e9rence - Datanovia\",\"isPartOf\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/lessons\/ancova-dans-r\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/lessons\/ancova-dans-r\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X26814448_567195243620424_5875663421650887010_n.jpg\",\"datePublished\":\"2019-12-07T23:35:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/lessons\/ancova-dans-r\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.datanovia.com\/en\/fr\/lessons\/ancova-dans-r\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/lessons\/ancova-dans-r\/#primaryimage\",\"url\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X26814448_567195243620424_5875663421650887010_n.jpg\",\"contentUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X26814448_567195243620424_5875663421650887010_n.jpg\",\"width\":1024,\"height\":512},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/lessons\/ancova-dans-r\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.datanovia.com\/en\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Le\u00e7ons\",\"item\":\"https:\/\/www.datanovia.com\/en\/fr\/lessons\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"ANCOVA dans R\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/#website\",\"url\":\"https:\/\/www.datanovia.com\/en\/fr\/\",\"name\":\"Datanovia\",\"description\":\"Exploration de Donn\u00e9es et Statistiques pour l'Aide \u00e0 la D\u00e9cision\",\"publisher\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.datanovia.com\/en\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/#organization\",\"name\":\"Datanovia\",\"url\":\"https:\/\/www.datanovia.com\/en\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png\",\"contentUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png\",\"width\":98,\"height\":99,\"caption\":\"Datanovia\"},\"image\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ANCOVA dans R: Excellente R\u00e9f\u00e9rence - Datanovia","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.datanovia.com\/en\/fr\/lessons\/ancova-dans-r\/","og_locale":"fr_FR","og_type":"article","og_title":"ANCOVA dans R: Excellente R\u00e9f\u00e9rence - Datanovia","og_description":"L'Analyse de la covariance (ANCOVA) sert \u00e0 comparer les moyennes d'une variable-r\u00e9ponse entre deux ou plusieurs groupes en tenant compte (ou en corrigeant) la variabilit\u00e9 d'autres variables, appel\u00e9es covariables. Dans ce chapitre, vous apprendrez comment calculer et interpr\u00e9ter l'ANCOVA \u00e0 un facteur et \u00e0 deux facteurs dans R.","og_url":"https:\/\/www.datanovia.com\/en\/fr\/lessons\/ancova-dans-r\/","og_site_name":"Datanovia","og_image":[{"width":1024,"height":512,"url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X26814448_567195243620424_5875663421650887010_n.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"21 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.datanovia.com\/en\/fr\/lessons\/ancova-dans-r\/","url":"https:\/\/www.datanovia.com\/en\/fr\/lessons\/ancova-dans-r\/","name":"ANCOVA dans R: Excellente R\u00e9f\u00e9rence - Datanovia","isPartOf":{"@id":"https:\/\/www.datanovia.com\/en\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.datanovia.com\/en\/fr\/lessons\/ancova-dans-r\/#primaryimage"},"image":{"@id":"https:\/\/www.datanovia.com\/en\/fr\/lessons\/ancova-dans-r\/#primaryimage"},"thumbnailUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X26814448_567195243620424_5875663421650887010_n.jpg","datePublished":"2019-12-07T23:35:36+00:00","breadcrumb":{"@id":"https:\/\/www.datanovia.com\/en\/fr\/lessons\/ancova-dans-r\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.datanovia.com\/en\/fr\/lessons\/ancova-dans-r\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.datanovia.com\/en\/fr\/lessons\/ancova-dans-r\/#primaryimage","url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X26814448_567195243620424_5875663421650887010_n.jpg","contentUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X26814448_567195243620424_5875663421650887010_n.jpg","width":1024,"height":512},{"@type":"BreadcrumbList","@id":"https:\/\/www.datanovia.com\/en\/fr\/lessons\/ancova-dans-r\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.datanovia.com\/en\/fr\/"},{"@type":"ListItem","position":2,"name":"Le\u00e7ons","item":"https:\/\/www.datanovia.com\/en\/fr\/lessons\/"},{"@type":"ListItem","position":3,"name":"ANCOVA dans R"}]},{"@type":"WebSite","@id":"https:\/\/www.datanovia.com\/en\/fr\/#website","url":"https:\/\/www.datanovia.com\/en\/fr\/","name":"Datanovia","description":"Exploration de Donn\u00e9es et Statistiques pour l'Aide \u00e0 la D\u00e9cision","publisher":{"@id":"https:\/\/www.datanovia.com\/en\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.datanovia.com\/en\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.datanovia.com\/en\/fr\/#organization","name":"Datanovia","url":"https:\/\/www.datanovia.com\/en\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.datanovia.com\/en\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png","contentUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png","width":98,"height":99,"caption":"Datanovia"},"image":{"@id":"https:\/\/www.datanovia.com\/en\/fr\/#\/schema\/logo\/image\/"}}]}},"multi-rating":{"mr_rating_results":[]},"_links":{"self":[{"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/dt_lessons\/11068","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/dt_lessons"}],"about":[{"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/types\/dt_lessons"}],"author":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/comments?post=11068"}],"version-history":[{"count":0,"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/dt_lessons\/11068\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/media\/11069"}],"wp:attachment":[{"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/media?parent=11068"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}