{"id":11066,"date":"2019-12-08T01:31:25","date_gmt":"2019-12-07T23:31:25","guid":{"rendered":"https:\/\/www.datanovia.com\/en\/?post_type=dt_lessons&#038;p=11066"},"modified":"2019-12-08T01:31:25","modified_gmt":"2019-12-07T23:31:25","slug":"anova-mixte-dans-r","status":"publish","type":"dt_lessons","link":"https:\/\/www.datanovia.com\/en\/fr\/lessons\/anova-mixte-dans-r\/","title":{"rendered":"ANOVA Mixte dans R"},"content":{"rendered":"<div id=\"rdoc\">\n<p><strong>L\u2019ANOVA mixte<\/strong> sert \u00e0 comparer les moyennes des groupes class\u00e9s selon deux types diff\u00e9rents de variables categorielles, incluant:<\/p>\n<ul>\n<li>des <strong>facteurs inter-sujets<\/strong>, qui ont des cat\u00e9gories ind\u00e9pendantes (p.\u00a0ex., sexe : homme\/femme)<\/li>\n<li>des <strong>facteurs intra-sujets<\/strong>, qui ont des cat\u00e9gories apparent\u00e9es aussi appel\u00e9es mesures r\u00e9p\u00e9t\u00e9es (p.\u00a0ex., temps : avant\/apr\u00e8s le traitement).<\/li>\n<\/ul>\n<p>Le test ANOVA mixte est \u00e9galement appel\u00e9 <em>ANOVA \u00e0 mod\u00e8le mixte<\/em> et <em>ANOVA \u00e0 mesures mixtes<\/em>..<\/p>\n<p>Ce chapitre d\u00e9crit diff\u00e9rents types d\u2019ANOVA mixte, notamment:<\/p>\n<ul>\n<li><strong>ANOVA \u00e0 deux facteurs mixtes<\/strong>, utilis\u00e9e pour comparer les moyennes des groupes crois\u00e9es par deux variables cat\u00e9gorielles ind\u00e9pendantes, incluant un facteur inter-sujets et un facteur intra-sujets.<\/li>\n<li><strong>ANOVA \u00e0 trois facteurs mixtes<\/strong>, utilis\u00e9e pour \u00e9valuer s\u2019il y a une interaction entre trois variables ind\u00e9pendantes, incluant les facteurs inter-sujets et intra-sujets. Vous pouvez avoir deux mod\u00e8les diff\u00e9rents pour l\u2019ANOVA mixte \u00e0 trois facteur:\n<ol style=\"list-style-type: decimal\">\n<li>un facteur inter-sujets et deux facteurs intra-sujets<\/li>\n<li>deux facteurs inter-sujets et un facteur intra-sujets<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<p>Vous apprendrez \u00e0:<\/p>\n<ul>\n<li><strong>Calculer et interpr\u00e9ter les diff\u00e9rents tests d\u2019ANOVA mixtes dans R<\/strong>.<\/li>\n<li><strong>V\u00e9rifier les hypoth\u00e8ses de l\u2019ANOVA mixte<\/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> avec des boxplots, ajouter au graphique, les p-values de l\u2019ANOVA et celles des comparaisons multiples 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=\"#two-way-mixed\">ANOVA \u00e0 deux facteurs mixtes<\/a>\n<ul>\n<li><a href=\"#preparation-des-donnees\">Pr\u00e9paration des donn\u00e9es<\/a><\/li>\n<li><a href=\"#statistiques-descriptives\">Statistiques descriptives<\/a><\/li>\n<li><a href=\"#visualisation\">Visualisation<\/a><\/li>\n<li><a href=\"#verifier-les-hypotheses\">V\u00e9rifier les hypoth\u00e8ses<\/a><\/li>\n<li><a href=\"#calculs\">Calculs<\/a><\/li>\n<li><a href=\"#tests-post-hoc\">Tests post-hoc<\/a><\/li>\n<li><a href=\"#rapporter\">Rapporter<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#three-way-bbw-b\">ANOVA mixte \u00e0 trois facteurs : 2 facteurs inter-sujets et 1 intra-sujets<\/a>\n<ul>\n<li><a href=\"#preparation-des-donnees-1\">Pr\u00e9paration des donn\u00e9es<\/a><\/li>\n<li><a href=\"#statistiques-descriptives-1\">Statistiques descriptives<\/a><\/li>\n<li><a href=\"#visualisation-1\">Visualisation<\/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=\"#tests-post-hoc-1\">Tests post-hoc<\/a><\/li>\n<li><a href=\"#rapporter-1\">Rapporter<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#three-way-bww-b\">ANOVA mixte \u00e0 trois facteurs : 1 facteur inter-sujets et 2 intra-sujets<\/a>\n<ul>\n<li><a href=\"#preparation-des-donnees-2\">Pr\u00e9paration des donn\u00e9es<\/a><\/li>\n<li><a href=\"#statistiques-descriptives-2\">Statistiques descriptives<\/a><\/li>\n<li><a href=\"#visualisation-2\">Visualisation<\/a><\/li>\n<li><a href=\"#verifier-les-hypotheses-2\">V\u00e9rifier les hypoth\u00e8ses<\/a><\/li>\n<li><a href=\"#calculs-2\">Calculs<\/a><\/li>\n<li><a href=\"#tests-post-hoc-2\">Tests post-hoc<\/a><\/li>\n<li><a href=\"#rapporter-2\">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\u2019ANOVA mixte formule les hypoth\u00e8ses suivantes au sujet des donn\u00e9es:<\/p>\n<ul>\n<li><strong>Aucune valeur aberrante significative<\/strong> dans aucune cellule du plan. Ceci peut \u00eatre v\u00e9rifi\u00e9 en visualisant les donn\u00e9es \u00e0 l\u2019aide de boxplots et en utilisant la fonction <code>identify_outliers()<\/code> [package rstatix].<\/li>\n<li><strong>Normalit\u00e9<\/strong> : la variable-r\u00e9ponse (ou d\u00e9pendante) doit \u00eatre distribu\u00e9e approximativement normalement dans chaque cellule du plan exp\u00e9rimental. Ceci peut \u00eatre v\u00e9rifi\u00e9 en utilisant le test de normalit\u00e9 de <strong>Shapiro-Wilk<\/strong> (<code>shapiro_test()<\/code> [rstatix]) ou par inspection visuelle en utilisant le <strong>QQ plot<\/strong> (<code>ggqqplot()<\/code> [ggpubr package]).<\/li>\n<li><strong>Homog\u00e9n\u00e9it\u00e9 des variances<\/strong> : la variance de la variable-r\u00e9ponse doit \u00eatre \u00e9gale entre les groupes des facteurs inter-sujets. Ceci peut \u00eatre \u00e9valu\u00e9 \u00e0 l\u2019aide du <strong>test de Levene pour l\u2019\u00e9galit\u00e9 des variances<\/strong> (<code>levene_test()<\/code> [rstatix]).<\/li>\n<li><strong>Hypoth\u00e8se de sph\u00e9ricit\u00e9<\/strong> : la variance des diff\u00e9rences entre les groupes intra-sujets doit \u00eatre \u00e9gale. Ceci peut \u00eatre v\u00e9rifi\u00e9 en utilisant le <strong>test de sph\u00e9ricit\u00e9 de Mauchly<\/strong>, qui est automatiquement rapport\u00e9 en utilisant la fonction R <code>anova_test()<\/code>.<\/li>\n<li><strong>Homog\u00e9n\u00e9it\u00e9 des covariances<\/strong> test\u00e9es par la m\u00e9thode M de Box. Les matrices de covariance devraient \u00eatre \u00e9gales dans les cellules form\u00e9es par les facteurs inter-sujets.<\/li>\n<\/ul>\n<p>Avant de calculer le test ANOVA mixte, vous devez effectuer quelques tests pr\u00e9liminaires pour v\u00e9rifier si les hypoth\u00e8ses sont respect\u00e9es.<\/p>\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> contient des fonctions R facilitant les analyses statistiques<\/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 paquets R suivants:<\/p>\n<pre class=\"r\"><code>library(tidyverse)\r\nlibrary(ggpubr)\r\nlibrary(rstatix)<\/code><\/pre>\n<p>Fonctions R cl\u00e9s:<\/p>\n<ul>\n<li><code>anova_test()<\/code> [paquet rstatix], un wrapper autour de <code>car::Anova()<\/code> pour faciliter le calcul de l\u2019ANOVA sur mesures r\u00e9p\u00e9t\u00e9es. Principaux arguments pour executer l\u2019ANOVA sur mesures r\u00e9p\u00e9t\u00e9es:\n<ul>\n<li><code>data<\/code>: data frame<\/li>\n<li><code>dv<\/code>: (num\u00e9rique) le nom de la variable d\u00e9pendante (ou variable-r\u00e9ponse).<\/li>\n<li><code>wid<\/code>: nom de la variable sp\u00e9cifiant l\u2019identificateur de cas\/\u00e9chantillon.<\/li>\n<li><code>between<\/code>: facteur inter-sujets ou variable de groupement<\/li>\n<li><code>within<\/code>: facteur ou variable de groupement intra-sujets<\/li>\n<\/ul>\n<\/li>\n<li><code>get_anova_table()<\/code> [paquet rstatix]. Extrait le tableau ANOVA \u00e0 partir du r\u00e9sultat de <code>anova_test()<\/code>. Elle retourne le tableau ANOVA qui est automatiquement corrig\u00e9 pour tenir compte d\u2019un \u00e9ventuel \u00e9cart par rapport \u00e0 l\u2019hypoth\u00e8se de sph\u00e9ricit\u00e9. Par d\u00e9faut, la correction de sph\u00e9ricit\u00e9 de Greenhouse-Geisser est appliqu\u00e9e automatiquement aux seuls facteurs intra-sujets violant l\u2019hypoth\u00e8se de sph\u00e9ricit\u00e9 (c.-\u00e0-d. la valeur p du test de Mauchly est significative, p &lt;= 0,05). Pour en savoir plus, lisez le chapitre @ref(mauchly-s-test-of-sphericity-in-r).<\/li>\n<\/ul>\n<\/div>\n<div id=\"two-way-mixed\" class=\"section level2\">\n<h2>ANOVA \u00e0 deux facteurs mixtes<\/h2>\n<div id=\"preparation-des-donnees\" class=\"section level3\">\n<h3>Pr\u00e9paration des donn\u00e9es<\/h3>\n<p>Nous utiliserons le jeu de donn\u00e9es <code>anxiety<\/code> [package datarium], qui contient le score d\u2019anxi\u00e9t\u00e9, mesur\u00e9 \u00e0 trois moments (t1, t2 et t3), de trois groupes d\u2019individus pratiquant des exercices physiques \u00e0 diff\u00e9rents niveaux (grp1 : basal, grp2 : moyen et grp3 : \u00e9lev\u00e9)<\/p>\n<div class=\"block\">\n<p>\nL\u2019ANOVA mixte \u00e0 deux facteurs peut \u00eatre utilis\u00e9e pour \u00e9valuer s\u2019il y a interaction entre le groupe et le temps pour expliquer le score d\u2019anxi\u00e9t\u00e9.\n<\/p>\n<\/div>\n<p>Charger et afficher une ligne al\u00e9atoire par groupe:<\/p>\n<pre class=\"r\"><code># Format large\r\nset.seed(123)\r\ndata(&quot;anxiety&quot;, package = &quot;datarium&quot;)\r\nanxiety %&gt;% sample_n_by(group, size = 1)<\/code><\/pre>\n<pre><code>## # A tibble: 3 x 5\r\n##   id    group    t1    t2    t3\r\n##   &lt;fct&gt; &lt;fct&gt; &lt;dbl&gt; &lt;dbl&gt; &lt;dbl&gt;\r\n## 1 5     grp1   16.5  15.8  15.7\r\n## 2 27    grp2   17.8  17.7  16.9\r\n## 3 37    grp3   17.1  15.6  14.3<\/code><\/pre>\n<pre class=\"r\"><code># Rassemblez les colonnes t1, t2 et t3 en format long.\r\n# Convertir l&#39;identifiant et le temps en facteurs\r\nanxiety &lt;- anxiety %&gt;%\r\n  gather(key = &quot;time&quot;, value = &quot;score&quot;, t1, t2, t3) %&gt;%\r\n  convert_as_factor(id, time)\r\n# Inspecter quelques lignes al\u00e9atoires des donn\u00e9es par groupes\r\nset.seed(123)\r\nanxiety %&gt;% sample_n_by(group, time, size = 1)<\/code><\/pre>\n<pre><code>## # A tibble: 9 x 4\r\n##   id    group time  score\r\n##   &lt;fct&gt; &lt;fct&gt; &lt;fct&gt; &lt;dbl&gt;\r\n## 1 5     grp1  t1     16.5\r\n## 2 12    grp1  t2     17.7\r\n## 3 7     grp1  t3     16.5\r\n## 4 29    grp2  t1     18.4\r\n## 5 30    grp2  t2     18.9\r\n## 6 16    grp2  t3     12.7\r\n## # \u2026 with 3 more rows<\/code><\/pre>\n<\/div>\n<div id=\"statistiques-descriptives\" class=\"section level3\">\n<h3>Statistiques descriptives<\/h3>\n<p>Regrouper les donn\u00e9es par <code>time<\/code> et <code>group<\/code>, puis calculer quelques statistiques descriptives de la variable <code>score<\/code> : moyenne et sd (\u00e9cart-type)<\/p>\n<pre class=\"r\"><code>anxiety %&gt;%\r\n  group_by(time, group) %&gt;%\r\n  get_summary_stats(score, type = &quot;mean_sd&quot;)<\/code><\/pre>\n<pre><code>## # A tibble: 9 x 6\r\n##   group time  variable     n  mean    sd\r\n##   &lt;fct&gt; &lt;fct&gt; &lt;chr&gt;    &lt;dbl&gt; &lt;dbl&gt; &lt;dbl&gt;\r\n## 1 grp1  t1    score       15  17.1  1.63\r\n## 2 grp2  t1    score       15  16.6  1.57\r\n## 3 grp3  t1    score       15  17.0  1.32\r\n## 4 grp1  t2    score       15  16.9  1.70\r\n## 5 grp2  t2    score       15  16.5  1.70\r\n## 6 grp3  t2    score       15  15.0  1.39\r\n## # \u2026 with 3 more rows<\/code><\/pre>\n<\/div>\n<div id=\"visualisation\" class=\"section level3\">\n<h3>Visualisation<\/h3>\n<p>Cr\u00e9er un boxplot:<\/p>\n<pre class=\"r\"><code>bxp &lt;- ggboxplot(\r\n  anxiety, x = &quot;time&quot;, y = &quot;score&quot;,\r\n  color = &quot;group&quot;, palette = &quot;jco&quot;\r\n  )\r\nbxp<\/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\/047-mixed-anova-two-way-boxplots-1.png\" width=\"384\" \/><\/p>\n<\/div>\n<div id=\"verifier-les-hypotheses\" class=\"section level3\">\n<h3>V\u00e9rifier les hypoth\u00e8ses<\/h3>\n<div id=\"valeurs-aberrantes\" class=\"section level4\">\n<h4>Valeurs aberrantes<\/h4>\n<p>Les valeurs aberrantes peuvent \u00eatre facilement identifi\u00e9es \u00e0 l\u2019aide de m\u00e9thodes des boxplots, impl\u00e9ment\u00e9es dans la fonction R <code>identify_outliers()<\/code> [paquet rstatix].<\/p>\n<pre class=\"r\"><code>anxiety %&gt;%\r\n  group_by(time, group) %&gt;%\r\n  identify_outliers(score)<\/code><\/pre>\n<pre><code>## [1] group      time       id         score      is.outlier is.extreme\r\n## &lt;0 rows&gt; (or 0-length row.names)<\/code><\/pre>\n<div class=\"success\">\n<p>\nIl n\u2019y avait pas de valeurs extr\u00eames aberrantes.\n<\/p>\n<\/div>\n<div class=\"warning\">\n<p>\nNotez que, dans le cas o\u00f9 vous avez des valeurs extr\u00eames aberrantes, cela peut \u00eatre d\u00fb \u00e0 : 1) erreurs de saisie de donn\u00e9es, erreurs de mesure ou valeurs inhabituelles.\n<\/p>\n<p>\nVous pouvez de toute fa\u00e7on inclure la valeur aberrante dans l\u2019analyse si vous ne croyez pas que le r\u00e9sultat sera affect\u00e9 de fa\u00e7on substantielle. Ceci peut \u00eatre \u00e9valu\u00e9 en comparant le r\u00e9sultat de l\u2019ANOVA avec et sans la valeur aberrante.\n<\/p>\n<p>\nIl est \u00e9galement possible de conserver les valeurs aberrantes dans les donn\u00e9es et d\u2019effectuer un test ANOVA robuste en utilisant le package WRS2.\n<\/p>\n<\/div>\n<\/div>\n<div id=\"hypothese-de-normalite\" class=\"section level4\">\n<h4>Hypoth\u00e8se de normalit\u00e9<\/h4>\n<p>L\u2019hypoth\u00e8se de normalit\u00e9 peut \u00eatre v\u00e9rifi\u00e9e en calculant le test de Shapiro-Wilk pour chaque combinaison de niveaux des facteurs. Si les donn\u00e9es sont normalement distribu\u00e9es, la p-value doit \u00eatre sup\u00e9rieure \u00e0 0,05.<\/p>\n<pre class=\"r\"><code>anxiety %&gt;%\r\n  group_by(time, group) %&gt;%\r\n  shapiro_test(score)<\/code><\/pre>\n<pre><code>## # A tibble: 9 x 5\r\n##   group time  variable statistic     p\r\n##   &lt;fct&gt; &lt;fct&gt; &lt;chr&gt;        &lt;dbl&gt; &lt;dbl&gt;\r\n## 1 grp1  t1    score        0.964 0.769\r\n## 2 grp2  t1    score        0.977 0.949\r\n## 3 grp3  t1    score        0.954 0.588\r\n## 4 grp1  t2    score        0.956 0.624\r\n## 5 grp2  t2    score        0.935 0.328\r\n## 6 grp3  t2    score        0.952 0.558\r\n## # \u2026 with 3 more rows<\/code><\/pre>\n<div class=\"success\">\n<p>\nLe score \u00e9tait normalement distribu\u00e9 (p &gt; 0,05) pour chaque cellule, tel qu\u2019\u00e9valu\u00e9 par le test de normalit\u00e9 de Shapiro-Wilk.\n<\/p>\n<\/div>\n<p>Notez que, si la taille de votre \u00e9chantillon est sup\u00e9rieure \u00e0 50, le graphique de normalit\u00e9 QQ plot est pr\u00e9f\u00e9r\u00e9 parce qu\u2019avec des \u00e9chantillons de plus grande taille, le test de Shapiro-Wilk devient tr\u00e8s sensible m\u00eame \u00e0 un \u00e9cart mineur par rapport \u00e0 la distribution normale.<\/p>\n<p>Le graphique QQ plot dessine la corr\u00e9lation entre une donn\u00e9e d\u00e9finie et la distribution normale.<\/p>\n<pre class=\"r\"><code>ggqqplot(anxiety, &quot;score&quot;, ggtheme = theme_bw()) +\r\n  facet_grid(time ~ group)<\/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\/047-mixed-anova-two-way-qq-plot-1.png\" width=\"576\" \/><\/p>\n<div class=\"success\">\n<p>\nTous les points se situent approximativement le long de la ligne de r\u00e9f\u00e9rence, pour chaque cellule. Nous pouvons donc supposer la normalit\u00e9 des donn\u00e9es.\n<\/p>\n<\/div>\n<div class=\"warning\">\n<p>\nDans le cas o\u00f9 les hypoth\u00e8ses ne sont pas satisfaites, vous pourriez envisager d\u2019ex\u00e9cuter l\u2019ANOVA sur les donn\u00e9es transform\u00e9es ou d\u2019effectuer une ANOVA robuste \u00e0 l\u2019aide du package R WRS2.\n<\/p>\n<\/div>\n<\/div>\n<div id=\"lhypothese-dhomogeneite-des-variances\" class=\"section level4\">\n<h4>L\u2019hypoth\u00e8se d\u2019homog\u00e9n\u00e9it\u00e9 des variances<\/h4>\n<p>L\u2019homog\u00e9n\u00e9it\u00e9 de l\u2019hypoth\u00e8se de variance du facteur inter-sujets (<code>group<\/code>) peut \u00eatre v\u00e9rifi\u00e9e \u00e0 l\u2019aide du test de Levene. Le test est effectu\u00e9 \u00e0 chaque niveau de la variable <code>time<\/code>:<\/p>\n<pre class=\"r\"><code>anxiety %&gt;%\r\n  group_by(time) %&gt;%\r\n  levene_test(score ~ group)<\/code><\/pre>\n<pre><code>## # A tibble: 3 x 5\r\n##   time    df1   df2 statistic     p\r\n##   &lt;fct&gt; &lt;int&gt; &lt;int&gt;     &lt;dbl&gt; &lt;dbl&gt;\r\n## 1 t1        2    42     0.176 0.839\r\n## 2 t2        2    42     0.249 0.781\r\n## 3 t3        2    42     0.335 0.717<\/code><\/pre>\n<div class=\"success\">\n<p>\nL\u2019homog\u00e9n\u00e9it\u00e9 des variances, telle qu\u2019\u00e9valu\u00e9e par le test de Levene (p &gt; 0,05), a \u00e9t\u00e9 observ\u00e9e.\n<\/p>\n<\/div>\n<div class=\"warning\">\n<p>\nNotez que, si vous n\u2019avez pas d\u2019homog\u00e9n\u00e9it\u00e9 des variances, vous pouvez essayer de transformer la variable-r\u00e9ponse (d\u00e9pendante) pour corriger l\u2019in\u00e9galit\u00e9 des variances.\n<\/p>\n<p>\nIl est \u00e9galement possible d\u2019effectuer un test ANOVA robuste \u00e0 l\u2019aide du package R WRS2.\n<\/p>\n<\/div>\n<\/div>\n<div id=\"homogeneite-de-lhypothese-de-covariances\" class=\"section level4\">\n<h4>Homog\u00e9n\u00e9it\u00e9 de l\u2019hypoth\u00e8se de covariances<\/h4>\n<p>L\u2019homog\u00e9n\u00e9it\u00e9 des covariances du facteur inter-sujets (<code>group<\/code>) peut \u00eatre \u00e9valu\u00e9e \u00e0 l\u2019aide du <strong>test M de Box<\/strong> impl\u00e9ment\u00e9 dans le package <code>rstatix<\/code>. Si ce test est statistiquement significatif (p &lt; 0,001), vous n\u2019avez pas les m\u00eames covariances, mais si le test n\u2019est pas statistiquement significatif (p &gt; 0,001), vous avez les m\u00eames covariances et vous n\u2019avez pas viol\u00e9 l\u2019hypoth\u00e8se de l\u2019homog\u00e9n\u00e9it\u00e9 des covariances.<\/p>\n<div class=\"warning\">\n<p>\nNotez que le test M de Box est tr\u00e8s sensible, donc \u00e0 moins que p &lt; 0.001 et que vos tailles d\u2019\u00e9chantillon soient in\u00e9gales, ignorez le. Cependant, si significatif et que la taille des \u00e9chantillons est in\u00e9gale, le test n\u2019est pas robuste (<a href=\"https:\/\/en.wikiversity.org\/wiki\/Box%27s_M\">https:\/\/en.wikiversity.org\/wiki\/Box%27s_M<\/a>, Tabachnick &amp; Fidell, 2001).\n<\/p>\n<\/div>\n<p>Calculer le test M de Box:<\/p>\n<pre class=\"r\"><code>box_m(anxiety[, &quot;score&quot;, drop = FALSE], anxiety$group)<\/code><\/pre>\n<pre><code>## # A tibble: 1 x 4\r\n##   statistic p.value parameter method                                             \r\n##       &lt;dbl&gt;   &lt;dbl&gt;     &lt;dbl&gt; &lt;chr&gt;                                              \r\n## 1      1.93   0.381         2 Box&#39;s M-test for Homogeneity of Covariance Matrices<\/code><\/pre>\n<div class=\"success\">\n<p>\nIl y avait homog\u00e9n\u00e9it\u00e9 des covariances, telle qu\u2019\u00e9valu\u00e9e par le test M de Box (p &gt; 0,001).\n<\/p>\n<\/div>\n<div class=\"warning\">\n<p>\nNotez que, si vous n\u2019avez pas d\u2019homog\u00e9n\u00e9it\u00e9 des covariances, vous pourriez envisager de s\u00e9parer vos analyses en plusieurs ANOVA \u00e0 mesures r\u00e9p\u00e9t\u00e9es pour chaque groupe. Vous pouvez \u00e9galement omettre l\u2019interpr\u00e9tation du terme d\u2019interaction.\n<\/p>\n<p>\nMalheureusement, il est difficile de rem\u00e9dier \u00e0 un \u00e9chec de cette hypoth\u00e8se. Souvent, une ANOVA mixte est ex\u00e9cut\u00e9e de toute fa\u00e7on et la violation not\u00e9e.\n<\/p>\n<\/div>\n<\/div>\n<div id=\"hypothese-de-sphericite\" class=\"section level4\">\n<h4>Hypoth\u00e8se de sph\u00e9ricit\u00e9<\/h4>\n<p>Comme mentionn\u00e9 dans les sections pr\u00e9c\u00e9dentes, l\u2019hypoth\u00e8se de sph\u00e9ricit\u00e9 sera automatiquement v\u00e9rifi\u00e9e lors du calcul du test ANOVA en utilisant la fonction R <code>anova_test()<\/code> [package rstatix]. Le test de Mauchly est utilis\u00e9 en interne pour \u00e9valuer l\u2019hypoth\u00e8se de sph\u00e9ricit\u00e9.<\/p>\n<p>En utilisant la fonction <code>get_anova_table()<\/code> [rstatix] pour extraire la table ANOVA, la correction de sph\u00e9ricit\u00e9 de Greenhouse-Geisser est automatiquement appliqu\u00e9e aux facteurs qui violent l\u2019hypoth\u00e8se de sph\u00e9ricit\u00e9.<\/p>\n<\/div>\n<\/div>\n<div id=\"calculs\" class=\"section level3\">\n<h3>Calculs<\/h3>\n<pre class=\"r\"><code># Test ANOVA \u00e0 deux facteurs mixtes\r\nres.aov &lt;- anova_test(\r\n  data = anxiety, dv = score, wid = id,\r\n  between = group, within = time\r\n  )\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      group   2  42   4.35 1.90e-02     * 0.168\r\n## 2       time   2  84 394.91 1.91e-43     * 0.179\r\n## 3 group:time   4  84 110.19 1.38e-32     * 0.108<\/code><\/pre>\n<div class=\"success\">\n<p>\nD\u2019apr\u00e8s les r\u00e9sultats ci-dessus, on peut voir qu\u2019il existe une interaction statistiquement significative entre le groupe et le temps sur le score d\u2019anxi\u00e9t\u00e9, F(4, 84) = 110.18, p &lt; 0.0001.\n<\/p>\n<\/div>\n<\/div>\n<div id=\"tests-post-hoc\" class=\"section level3\">\n<h3>Tests post-hoc<\/h3>\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 <strong>d\u2019une 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\u2019ANOVA.<\/p>\n<div id=\"procedure-pour-une-interaction-significative-a-deux-facteurs\" class=\"section level4\">\n<h4>Proc\u00e9dure pour une interaction significative \u00e0 deux facteurs<\/h4>\n<p><strong>Effet principal la variable <code>group<\/code><\/strong>. Dans notre exemple, nous \u00e9tudierons l\u2019effet du facteur inter-sujets <code>group<\/code> sur le score d\u2019anxi\u00e9t\u00e9 \u00e0 chaque point de <code>time<\/code>.<\/p>\n<pre class=\"r\"><code># Effet de `group` \u00e0 chaque point de `time`\r\none.way &lt;- anxiety %&gt;%\r\n  group_by(time) %&gt;%\r\n  anova_test(dv = score, wid = id, between = group) %&gt;%\r\n  get_anova_table() %&gt;%\r\n  adjust_pvalue(method = &quot;bonferroni&quot;)\r\none.way<\/code><\/pre>\n<pre><code>## # A tibble: 3 x 9\r\n##   time  Effect   DFn   DFd      F         p `p&lt;.05`   ges     p.adj\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;     &lt;dbl&gt;\r\n## 1 t1    group      2    42  0.365 0.696     &quot;&quot;      0.017 1        \r\n## 2 t2    group      2    42  5.84  0.006     *       0.218 0.018    \r\n## 3 t3    group      2    42 13.8   0.0000248 *       0.396 0.0000744<\/code><\/pre>\n<pre class=\"r\"><code># Comparaisons par paires entre les niveaux de groupe\r\npwc &lt;- anxiety %&gt;%\r\n  group_by(time) %&gt;%\r\n  pairwise_t_test(score ~ group, p.adjust.method = &quot;bonferroni&quot;)\r\npwc<\/code><\/pre>\n<pre><code>## # A tibble: 9 x 10\r\n##   time  .y.   group1 group2    n1    n2       p p.signif   p.adj p.adj.signif\r\n## * &lt;fct&gt; &lt;chr&gt; &lt;chr&gt;  &lt;chr&gt;  &lt;int&gt; &lt;int&gt;   &lt;dbl&gt; &lt;chr&gt;      &lt;dbl&gt; &lt;chr&gt;       \r\n## 1 t1    score grp1   grp2      15    15 0.43    ns       1       ns          \r\n## 2 t1    score grp1   grp3      15    15 0.895   ns       1       ns          \r\n## 3 t1    score grp2   grp3      15    15 0.51    ns       1       ns          \r\n## 4 t2    score grp1   grp2      15    15 0.435   ns       1       ns          \r\n## 5 t2    score grp1   grp3      15    15 0.00212 **       0.00636 **          \r\n## 6 t2    score grp2   grp3      15    15 0.0169  *        0.0507  ns          \r\n## # \u2026 with 3 more rows<\/code><\/pre>\n<div class=\"success\">\n<p>\nSi l\u2019on consid\u00e8re la p-value ajust\u00e9e de Bonferroni (p.adj), on peut voir que l\u2019effet principal de <code>group<\/code> \u00e9tait significatif \u00e0 t2 (p = 0,018) et t3 (p &lt; 0,0001) mais pas \u00e0 t1 (p = 1).\n<\/p>\n<p>\nLes comparaisons par paires montrent que le score d\u2019anxi\u00e9t\u00e9 moyen \u00e9tait significativement diff\u00e9rent dans les comparaisons grp1 vs grp3 \u00e0 t2 (p = 0,0063) ; dans grp1 vs grp3 (p &lt; 0,0001) et dans grp2 vs grp3 (p = 0,0013) \u00e0 t3.\n<\/p>\n<\/div>\n<p><strong>Effets principaux de la variable <code>time<\/code><\/strong>. Il est \u00e9galement possible d\u2019effectuer la m\u00eame analyse pour la variable intra-sujet <code>time<\/code> \u00e0 chaque niveau de la variable <code>group<\/code>, comme indiqu\u00e9 dans le code R suivant. Vous n\u2019avez pas n\u00e9cessairement besoin de faire cette analyse.<\/p>\n<pre class=\"r\"><code># Effet du temps \u00e0 chaque niveau du groupe d&#39;exercices\r\none.way2 &lt;- anxiety %&gt;%\r\n  group_by(group) %&gt;%\r\n  anova_test(dv = score, wid = id, within = time) %&gt;%\r\n  get_anova_table() %&gt;%\r\n  adjust_pvalue(method = &quot;bonferroni&quot;)\r\none.way2<\/code><\/pre>\n<pre><code>## # A tibble: 3 x 9\r\n##   group Effect   DFn   DFd     F        p `p&lt;.05`   ges    p.adj\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;    &lt;dbl&gt;\r\n## 1 grp1  time       2    28  14.8 4.05e- 5 *       0.024 1.21e- 4\r\n## 2 grp2  time       2    28  77.5 3.88e-12 *       0.086 1.16e-11\r\n## 3 grp3  time       2    28 490.  1.64e-22 *       0.531 4.92e-22<\/code><\/pre>\n<pre class=\"r\"><code># Comparaisons par paires entre les points de temps (`time`) \r\n# \u00e0 chaque niveau de groupe (`group`)\r\n# Le test t appari\u00e9 est utilis\u00e9 parce que \r\n# nous avons r\u00e9p\u00e9t\u00e9 les mesures en fonction du temps\r\npwc2 &lt;- anxiety %&gt;%\r\n  group_by(group) %&gt;%\r\n  pairwise_t_test(\r\n    score ~ time, paired = TRUE, \r\n    p.adjust.method = &quot;bonferroni&quot;\r\n    ) %&gt;%\r\n  select(-df, -statistic, -p) # Supprimer les d\u00e9tails\r\npwc2<\/code><\/pre>\n<pre><code>## # A tibble: 9 x 8\r\n##   group .y.   group1 group2    n1    n2        p.adj p.adj.signif\r\n## * &lt;fct&gt; &lt;chr&gt; &lt;chr&gt;  &lt;chr&gt;  &lt;int&gt; &lt;int&gt;        &lt;dbl&gt; &lt;chr&gt;       \r\n## 1 grp1  score t1     t2        15    15 0.194        ns          \r\n## 2 grp1  score t1     t3        15    15 0.002        **          \r\n## 3 grp1  score t2     t3        15    15 0.006        **          \r\n## 4 grp2  score t1     t2        15    15 0.268        ns          \r\n## 5 grp2  score t1     t3        15    15 0.000000151  ****        \r\n## 6 grp2  score t2     t3        15    15 0.0000000612 ****        \r\n## # \u2026 with 3 more rows<\/code><\/pre>\n<div class=\"success\">\n<p>\nIl y avait un effet statistiquement significatif du temps sur le score d\u2019anxi\u00e9t\u00e9 pour chacun des trois groupes. En utilisant des comparaisons par paires de tests t appari\u00e9s, on peut voir que pour grp1 et grp2, le score moyen d\u2019anxi\u00e9t\u00e9 n\u2019\u00e9tait pas statistiquement significativement diff\u00e9rent entre les temps t1 et t2.\n<\/p>\n<p>\nLes comparaisons par paires t1 vs t3 et t2 vs t3 \u00e9taient statistiquement significativement diff\u00e9rentes pour tous les groupes.\n<\/p>\n<\/div>\n<\/div>\n<div id=\"procedure-pour-une-interaction-non-significative-a-deux-facteurs\" class=\"section level4\">\n<h4>Proc\u00e9dure pour une interaction non significative \u00e0 deux facteurs<\/h4>\n<p>Si l\u2019interaction n\u2019est pas significative, il faut interpr\u00e9ter les effets principaux pour chacune des deux variables : <code>group<\/code> et<code>time<\/code>. Un effet principal significatif peut \u00eatre suivi par des comparaisons par paires.<\/p>\n<div class=\"success\">\n<p>\nDans notre exemple, il y avait un effet principal statistiquement significatif de la variable groupe (F(2, 42) = 4,35, p = 0,02) et du temps (F(2, 84) = 394,91, p &lt; 0,0001) sur le score d\u2019anxi\u00e9t\u00e9.\n<\/p>\n<\/div>\n<p>Effectuer plusieurs t-tests appari\u00e9s par paires pour la variable <code>time<\/code>, en ignorant <code>group<\/code>. Les p-values sont ajust\u00e9es \u00e0 l\u2019aide de la m\u00e9thode de correction des tests multiples de Bonferroni.<\/p>\n<pre class=\"r\"><code>anxiety %&gt;%\r\n  pairwise_t_test(\r\n    score ~ time, paired = TRUE, \r\n    p.adjust.method = &quot;bonferroni&quot;\r\n  )<\/code><\/pre>\n<div class=\"success\">\n<p>\nToutes les comparaisons par paires sont significatives.\n<\/p>\n<\/div>\n<p>Vous pouvez effectuer une analyse similaire pour la variable <code>group<\/code>.<\/p>\n<pre class=\"r\"><code>anxiety %&gt;%\r\n  pairwise_t_test(\r\n    score ~ group, \r\n    p.adjust.method = &quot;bonferroni&quot;\r\n  )<\/code><\/pre>\n<div class=\"success\">\n<p>\nToutes les comparaisons par paires sont significatives sauf pour grp1 vs grp2.\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"rapporter\" class=\"section level3\">\n<h3>Rapporter<\/h3>\n<p>Il y avait une interaction statistiquement significative entre la variable <code>exercises<\/code> et <code>time<\/code> pour expliquer le score d\u2019anxi\u00e9t\u00e9, F(4, 84) = 110.19, p &lt; 0.0001.<\/p>\n<p>Si l\u2019on consid\u00e8re la p-value ajust\u00e9e de Bonferroni, l\u2019effet principal de la variable exercices \u00e9tait significatif \u00e0 t2 (p = 0,018) et t3 (p &lt; 0,0001) mais pas \u00e0 t1 (p = 1).<\/p>\n<p>Les comparaisons par paires montrent que le score d\u2019anxi\u00e9t\u00e9 moyen \u00e9tait significativement diff\u00e9rent dans les comparaisons grp1 vs grp3 \u00e0 t2 (p = 0,0063) ; dans grp1 vs grp3 (p &lt; 0,0001) et dans grp2 vs grp3 (p = 0,0013) \u00e0 t3.<\/p>\n<div class=\"warning\">\n<p>\nNotez que, pour le graphique ci-dessous, nous n\u2019avons besoin que des r\u00e9sultats de la comparaison par paires pour t2 et t3 mais pas pour t1 (parce que l\u2019effet principal de la variable exercice n\u2019\u00e9tait pas significatif \u00e0 ce temps pr\u00e9cis). Nous filtrerons les r\u00e9sultats de la comparaison en cons\u00e9quence.\n<\/p>\n<\/div>\n<pre class=\"r\"><code># Visualisation : boxplots avec p-values\r\npwc &lt;- pwc %&gt;% add_xy_position(x = &quot;time&quot;)\r\npwc.filtered &lt;- pwc %&gt;% filter(time != &quot;t1&quot;)\r\nbxp + \r\n  stat_pvalue_manual(pwc.filtered, tip.length = 0, hide.ns = TRUE) +\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\/047-mixed-anova-two-way-mixed-boxplots-with-p-values-1.png\" width=\"576\" \/><\/p>\n<\/div>\n<\/div>\n<div id=\"three-way-bbw-b\" class=\"section level2\">\n<h2>ANOVA mixte \u00e0 trois facteurs : 2 facteurs inter-sujets et 1 intra-sujets<\/h2>\n<p>Cette section d\u00e9crit comment calculer l\u2019ANOVA \u00e0 trois facteurs, dans R, pour une situation o\u00f9 vous avez <strong>deux facteurs inter-sujets et un facteur intra-sujets<\/strong>.<\/p>\n<p>Ce param\u00e8tre permet d\u2019\u00e9tudier les diff\u00e9rences entre les groupes au fil du temps (c.-\u00e0-d. le facteur intra-sujets) lorsque les groupes sont form\u00e9s par la combinaison de deux facteurs inter-sujets. Par exemple, vous voudrez peut-\u00eatre comprendre comment le score de performance change au fil du temps (p.\u00a0ex., 0, 4 et 8 mois) selon le sexe (p.\u00a0ex., homme\/femme) et le stress (faible, moyen et \u00e9lev\u00e9).<\/p>\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 de <code>performance<\/code> [package datarium] contenant les mesures de performance des participants \u00e0 deux temps diff\u00e9rents. Le but de cette \u00e9tude est d\u2019\u00e9valuer l\u2019effet du genre et du stress sur le score de performance.<\/p>\n<p>Les donn\u00e9es contiennent les variables suivantes:<\/p>\n<ol style=\"list-style-type: decimal\">\n<li>Score de performance (variable-r\u00e9ponse ou variable-d\u00e9pendante) mesur\u00e9 \u00e0 deux points dans le temps, <code>t1<\/code> et <code>t2<\/code>.<\/li>\n<li>Deux facteurs inter-sujets : le sexe (niveaux : masculin et f\u00e9minin) et le stress (faible, mod\u00e9r\u00e9, \u00e9lev\u00e9)<\/li>\n<\/ol>\n<ol start=\"3\" style=\"list-style-type: decimal\">\n<li>Un facteur intra-sujets, <code>time<\/code>, qui comporte deux points dans le temps : <code>t1<\/code> et <code>t2<\/code>.<\/li>\n<\/ol>\n<p>Charger et inspecter les donn\u00e9es en affichant une ligne al\u00e9atoire par groupe:<\/p>\n<pre class=\"r\"><code># Charger et inspecter les donn\u00e9es\r\n# Format large\r\nset.seed(123)\r\ndata(&quot;performance&quot;, package = &quot;datarium&quot;)\r\nperformance %&gt;% sample_n_by(gender, stress, size = 1)<\/code><\/pre>\n<pre><code>## # A tibble: 6 x 5\r\n##      id gender stress      t1    t2\r\n##   &lt;int&gt; &lt;fct&gt;  &lt;fct&gt;    &lt;dbl&gt; &lt;dbl&gt;\r\n## 1     3 male   low       5.63  5.47\r\n## 2    18 male   moderate  5.57  5.78\r\n## 3    25 male   high      5.48  5.74\r\n## 4    39 female low       5.50  5.66\r\n## 5    50 female moderate  5.96  5.32\r\n## 6    51 female high      5.59  5.06<\/code><\/pre>\n<pre class=\"r\"><code># Rassemblez les colonnes t1, t2 et t3 en format long.\r\n# Convertir l&#39;identifiant et le temps en facteurs\r\nperformance &lt;- performance %&gt;%\r\n  gather(key = &quot;time&quot;, value = &quot;score&quot;, t1, t2) %&gt;%\r\n  convert_as_factor(id, time)\r\n# Inspecter quelques lignes al\u00e9atoires des donn\u00e9es par groupes\r\nset.seed(123)\r\nperformance %&gt;% sample_n_by(gender, stress, time, size = 1)<\/code><\/pre>\n<pre><code>## # A tibble: 12 x 5\r\n##   id    gender stress   time  score\r\n##   &lt;fct&gt; &lt;fct&gt;  &lt;fct&gt;    &lt;fct&gt; &lt;dbl&gt;\r\n## 1 3     male   low      t1     5.63\r\n## 2 8     male   low      t2     5.92\r\n## 3 15    male   moderate t1     5.96\r\n## 4 19    male   moderate t2     5.76\r\n## 5 30    male   high     t1     5.38\r\n## 6 21    male   high     t2     5.64\r\n## # \u2026 with 6 more rows<\/code><\/pre>\n<\/div>\n<div id=\"statistiques-descriptives-1\" class=\"section level3\">\n<h3>Statistiques descriptives<\/h3>\n<p>Regroupez les donn\u00e9es par <code>gender<\/code>, <code>stress<\/code> et <code>time<\/code>, puis calculez quelques statistiques descriptives de la variable <code>score<\/code> : moyenne et sd (\u00e9cart-type)<\/p>\n<pre class=\"r\"><code>performance %&gt;%\r\n  group_by(gender, stress, time ) %&gt;%\r\n  get_summary_stats(score, type = &quot;mean_sd&quot;)<\/code><\/pre>\n<pre><code>## # A tibble: 12 x 7\r\n##   gender stress   time  variable     n  mean    sd\r\n##   &lt;fct&gt;  &lt;fct&gt;    &lt;fct&gt; &lt;chr&gt;    &lt;dbl&gt; &lt;dbl&gt; &lt;dbl&gt;\r\n## 1 male   low      t1    score       10  5.72 0.19 \r\n## 2 male   low      t2    score       10  5.70 0.143\r\n## 3 male   moderate t1    score       10  5.72 0.193\r\n## 4 male   moderate t2    score       10  5.77 0.155\r\n## 5 male   high     t1    score       10  5.48 0.121\r\n## 6 male   high     t2    score       10  5.64 0.195\r\n## # \u2026 with 6 more rows<\/code><\/pre>\n<\/div>\n<div id=\"visualisation-1\" class=\"section level3\">\n<h3>Visualisation<\/h3>\n<p>Cr\u00e9ez des box plots du score de performance par sexe, color\u00e9s par les niveaux de stress et facett\u00e9s par <code>time<\/code>:<\/p>\n<pre class=\"r\"><code>bxp &lt;- ggboxplot(\r\n  performance, x = &quot;gender&quot;, y = &quot;score&quot;,\r\n  color = &quot;stress&quot;, palette = &quot;jco&quot;,\r\n  facet.by =  &quot;time&quot;\r\n  )\r\nbxp<\/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\/047-mixed-anova-three-way-bbw-boxplots-1.png\" width=\"576\" \/><\/p>\n<\/div>\n<div id=\"verifier-les-hypotheses-1\" class=\"section level3\">\n<h3>V\u00e9rifier les hypoth\u00e8ses<\/h3>\n<div id=\"valeurs-aberrantes-1\" class=\"section level4\">\n<h4>Valeurs aberrantes<\/h4>\n<pre class=\"r\"><code>performance %&gt;%\r\n  group_by(gender, stress, time) %&gt;%\r\n  identify_outliers(score)<\/code><\/pre>\n<pre><code>## # A tibble: 1 x 7\r\n##   gender stress time  id    score is.outlier is.extreme\r\n##   &lt;fct&gt;  &lt;fct&gt;  &lt;fct&gt; &lt;fct&gt; &lt;dbl&gt; &lt;lgl&gt;      &lt;lgl&gt;     \r\n## 1 female low    t2    36     6.15 TRUE       FALSE<\/code><\/pre>\n<div class=\"success\">\n<p>\nIl n\u2019y avait pas de valeurs extr\u00eames aberrantes.\n<\/p>\n<\/div>\n<\/div>\n<div id=\"hypothese-de-normalite-1\" class=\"section level4\">\n<h4>Hypoth\u00e8se de normalit\u00e9<\/h4>\n<p>Calculer le test de Shapiro-Wilk pour chaque combinaison de niveaux des facteurs:<\/p>\n<pre class=\"r\"><code>performance %&gt;%\r\n  group_by(gender, stress, time ) %&gt;%\r\n  shapiro_test(score)<\/code><\/pre>\n<pre><code>## # A tibble: 12 x 6\r\n##   gender stress   time  variable statistic      p\r\n##   &lt;fct&gt;  &lt;fct&gt;    &lt;fct&gt; &lt;chr&gt;        &lt;dbl&gt;  &lt;dbl&gt;\r\n## 1 male   low      t1    score        0.942 0.574 \r\n## 2 male   low      t2    score        0.966 0.849 \r\n## 3 male   moderate t1    score        0.848 0.0547\r\n## 4 male   moderate t2    score        0.958 0.761 \r\n## 5 male   high     t1    score        0.915 0.319 \r\n## 6 male   high     t2    score        0.925 0.403 \r\n## # \u2026 with 6 more rows<\/code><\/pre>\n<div class=\"success\">\n<p>\nLe score \u00e9tait normalement distribu\u00e9 (p &gt; 0,05) pour chaque cellule, tel qu\u2019\u00e9valu\u00e9 par le test de normalit\u00e9 de Shapiro-Wilk.\n<\/p>\n<\/div>\n<p>Cr\u00e9er un QQ plot pour chaque cellule du plan:<\/p>\n<pre class=\"r\"><code>ggqqplot(performance, &quot;score&quot;, ggtheme = theme_bw()) +\r\n  facet_grid(time ~ stress, labeller = &quot;label_both&quot;)<\/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\/047-mixed-anova-three-way-bbw-qq-plot-1.png\" width=\"480\" \/><\/p>\n<div class=\"success\">\n<p>\nTous les points se situent approximativement le long de la ligne de r\u00e9f\u00e9rence, pour chaque cellule. Nous pouvons donc supposer la normalit\u00e9 des donn\u00e9es.\n<\/p>\n<\/div>\n<\/div>\n<div id=\"lhypothese-dhomogeneite-des-variances-1\" class=\"section level4\">\n<h4>L\u2019hypoth\u00e8se d\u2019homog\u00e9n\u00e9it\u00e9 des variances<\/h4>\n<p>Calculez le test de Levene \u00e0 chaque niveau du facteur intra-sujets, ici la variable <code>time<\/code>:<\/p>\n<pre class=\"r\"><code>performance %&gt;%\r\n  group_by(time) %&gt;%\r\n  levene_test(score ~ gender*stress)<\/code><\/pre>\n<pre><code>## # A tibble: 2 x 5\r\n##   time    df1   df2 statistic     p\r\n##   &lt;fct&gt; &lt;int&gt; &lt;int&gt;     &lt;dbl&gt; &lt;dbl&gt;\r\n## 1 t1        5    54     0.974 0.442\r\n## 2 t2        5    54     0.722 0.610<\/code><\/pre>\n<div class=\"success\">\n<p>\nIl y avait l\u2019homog\u00e9n\u00e9it\u00e9 des variances, telle qu\u2019\u00e9valu\u00e9e par le test d\u2019homog\u00e9n\u00e9it\u00e9 de la variance de Levene (p &gt; .05).\n<\/p>\n<\/div>\n<\/div>\n<div id=\"hypothese-de-sphericite-1\" class=\"section level4\">\n<h4>Hypoth\u00e8se de sph\u00e9ricit\u00e9<\/h4>\n<p>Comme mentionn\u00e9 dans la section ANOVA \u00e0 deux facteurs mixtes, le test de sph\u00e9ricit\u00e9 de Mauchly et les corrections de sph\u00e9ricit\u00e9 sont effectu\u00e9s en interne en utilisant la fonction R <code>anova_test()<\/code> et <code>get_anova_table()<\/code> [paquet rstatix].<\/p>\n<\/div>\n<\/div>\n<div id=\"calculs-1\" class=\"section level3\">\n<h3>Calculs<\/h3>\n<pre class=\"r\"><code>res.aov &lt;- anova_test(\r\n  data = performance, dv = score, wid = id,\r\n  within = time, between = c(gender, stress)\r\n  )\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             gender   1  54  2.406 1.27e-01       0.023000\r\n## 2             stress   2  54 21.166 1.63e-07     * 0.288000\r\n## 3               time   1  54  0.063 8.03e-01       0.000564\r\n## 4      gender:stress   2  54  1.554 2.21e-01       0.029000\r\n## 5        gender:time   1  54  4.730 3.40e-02     * 0.041000\r\n## 6        stress:time   2  54  1.821 1.72e-01       0.032000\r\n## 7 gender:stress:time   2  54  6.101 4.00e-03     * 0.098000<\/code><\/pre>\n<div class=\"success\">\n<p>\nIl y a une interaction statistiquement significative entre le temps, le sexe et le stress F(2, 54) = 6,10, p = 0,004.\n<\/p>\n<\/div>\n<\/div>\n<div id=\"tests-post-hoc-1\" class=\"section level3\">\n<h3>Tests post-hoc<\/h3>\n<p><strong>S\u2019il y a un effet significatif d\u2019interaction \u00e0 trois facteurs<\/strong>, vous pouvez le d\u00e9composer en:<\/p>\n<ul>\n<li><strong>Interaction \u00e0 deux facteurs<\/strong> : ex\u00e9cuter l\u2019interaction, \u00e0 deux facteurs, \u00e0 chaque niveau de la troisi\u00e8me variable,<\/li>\n<li><strong>Effet principal<\/strong> : ex\u00e9cuter un mod\u00e8le, \u00e0 un facteur, \u00e0 chaque niveau de la deuxi\u00e8me variable, et<\/li>\n<li><strong>Comparaisons par paires<\/strong> : effectuer des comparaisons par paires ou d\u2019autres comparaisons post-hoc si n\u00e9cessaire.<\/li>\n<\/ul>\n<p><strong>Si vous n\u2019avez pas d\u2019interaction \u00e0 trois facteurs statistiquement significative<\/strong>, vous devez d\u00e9terminer si vous avez une interaction \u00e0 deux facteurs statistiquement significative \u00e0 partir du r\u00e9sultat de l\u2019ANOVA. Une interaction significative, \u00e0 deux facteurs, peut \u00eatre suivie d\u2019une analyse de l\u2019effet principal, qui si elle est significative, peut \u00eatre suivie de simples comparaisons par paires.<\/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=\"calculer-linteraction-a-deux-facteurs\" class=\"section level4\">\n<h4>Calculer l\u2019interaction \u00e0 deux facteurs<\/h4>\n<p>Vous \u00eates libre de d\u00e9cider des deux variables qui formeront les interactions et de la variable qui servira de troisi\u00e8me variable.<\/p>\n<p>Dans le code R suivant, nous avons consid\u00e9r\u00e9 l\u2019interaction \u00e0 deux facteurs <code>gender*stress<\/code> \u00e0 chaque niveau de <code>time<\/code>.<\/p>\n<p>Regrouper les donn\u00e9es par le temps (<code>time<\/code>, facteur intra-sujet) et analyser l\u2019interaction entre le genre (<code>gender<\/code>) et le stress (<code>stress<\/code>), qui sont les facteurs inter-sujets.<\/p>\n<pre class=\"r\"><code># interaction \u00e0 deux facteurs \u00e0 chaque niveau de temps\r\ntwo.way &lt;- performance %&gt;%\r\n  group_by(time) %&gt;%\r\n  anova_test(dv = score, wid = id, between = c(gender, stress))\r\ntwo.way<\/code><\/pre>\n<pre><code>## # A tibble: 6 x 8\r\n##   time  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 t1    gender            1    54  0.186 0.668      &quot;&quot;      0.003\r\n## 2 t1    stress            2    54 14.9   0.00000723 *       0.355\r\n## 3 t1    gender:stress     2    54  2.12  0.131      &quot;&quot;      0.073\r\n## 4 t2    gender            1    54  5.97  0.018      *       0.1  \r\n## 5 t2    stress            2    54  9.60  0.000271   *       0.262\r\n## 6 t2    gender:stress     2    54  4.95  0.011      *       0.155<\/code><\/pre>\n<div class=\"success\">\n<p>\nOn a observ\u00e9 une interaction statistiquement significative entre le sexe et le stress \u00e0 t2, F(2, 54) = 4,95, p = 0,011, mais pas \u00e0 t1, F(2, 54) = 2,12, p = 0,13.\n<\/p>\n<\/div>\n<div class=\"warning\">\n<p>\nIl est \u00e0 noter que la significativit\u00e9 statistique d\u2019une interaction simple, \u00e0 deux facteurs, a \u00e9t\u00e9 accept\u00e9e \u00e0 un niveau alpha ajust\u00e9 de Bonferroni de 0,025. Cela correspond au niveau actuel auquel vous d\u00e9clarez une significativit\u00e9 statistique (c.-\u00e0-d. p &lt; 0,05) divis\u00e9 par le nombre d\u2019interactions \u00e0 deux facteurs que vous analys\u00e9es (c.-\u00e0-d. 2).\n<\/p>\n<\/div>\n<\/div>\n<div id=\"calculer-les-effets-principaux\" class=\"section level4\">\n<h4>Calculer les effets principaux<\/h4>\n<p>Une interaction \u00e0 deux facteurs statistiquement significative peut \u00eatre suivie par une analyse des <strong>effets principaux<\/strong>.<\/p>\n<p>Dans notre exemple, vous pourriez donc \u00e9tudier l\u2019effet du <code>stress<\/code> sur le score de performance \u00e0 tous les niveaux de <code>gender<\/code> (genre) ou \u00e9tudier l\u2019effet de <code>gender<\/code> \u00e0 tous les niveaux de <code>stress<\/code>.<\/p>\n<div class=\"warning\">\n<p>\nNotez que vous n\u2019aurez besoin de le faire que pour l\u2019interaction, \u00e0 deux facteurs, pour \u201ct2\u201d car c\u2019\u00e9tait la seule interaction qui \u00e9tait statistiquement significative.\n<\/p>\n<\/div>\n<p>Regrouper les donn\u00e9es par le temps et le sexe , et analyser l\u2019effet principal simple du stress sur le score de performance:<\/p>\n<pre class=\"r\"><code>stress.effect &lt;- performance %&gt;%\r\n  group_by(time, gender) %&gt;%\r\n  anova_test(dv = score, wid = id, between = stress)\r\nstress.effect %&gt;% filter(time == &quot;t2&quot;)<\/code><\/pre>\n<pre><code>## # A tibble: 2 x 9\r\n##   gender time  Effect   DFn   DFd     F        p `p&lt;.05`   ges\r\n##   &lt;fct&gt;  &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 male   t2    stress     2    27  1.57 0.227    &quot;&quot;      0.104\r\n## 2 female t2    stress     2    27 10.5  0.000416 *       0.438<\/code><\/pre>\n<div class=\"warning\">\n<p>\nDans le tableau ci-dessus, nous n\u2019avons besoin des r\u00e9sultats que pour <code>time = t2<\/code>. Le seuil de significativit\u00e9 statistique d\u2019un effet principal est de 0,25 apr\u00e8s ajustement de Bonferroni, soit 0,05 divis\u00e9 par le nombre d\u2019effets principaux analys\u00e9s (c\u2019est-\u00e0-dire 2).\n<\/p>\n<\/div>\n<div class=\"success\">\n<p>\nIl y avait un effet principal statistiquement significatif du stress sur le score de performance des femmes au temps t2, F(2, 27) = 10,5, p = 0,0004, mais pas pour les hommes, F(2, 27) = 1,57, p = 0,23.\n<\/p>\n<\/div>\n<\/div>\n<div id=\"calculer-les-comparaisons-entre-groupes\" class=\"section level4\">\n<h4>Calculer les comparaisons entre groupes<\/h4>\n<p>Un effet principal statistiquement significatif peut \u00eatre suivi de <strong>multiples comparaisons par paires<\/strong> pour d\u00e9terminer quelles moyennes de groupe sont diff\u00e9rentes.<\/p>\n<div class=\"warning\">\n<p>\nNotez que vous n\u2019aurez besoin de vous concentrer que sur les r\u00e9sultats de la comparaison par paires pour les femmes, car l\u2019effet du stress \u00e9tait significatif pour les femmes seulement dans la section pr\u00e9c\u00e9dente.\n<\/p>\n<\/div>\n<p>Regroupez les donn\u00e9es par <code>time<\/code> et <code>gender<\/code>, et effectuez des comparaisons par paires entre les niveaux de <code>stress<\/code> avec la correction de Bonferroni:<\/p>\n<pre class=\"r\"><code># Faire des comparaisons par paires\r\npwc &lt;- performance %&gt;%\r\n  group_by(time, gender) %&gt;%\r\n  pairwise_t_test(score ~ stress, p.adjust.method = &quot;bonferroni&quot;) %&gt;%\r\n  select(-p, -p.signif) # Supprimer les d\u00e9tails\r\n# Focus sur les r\u00e9sultats de `female` \u00e0 t2\r\npwc %&gt;% filter(time == &quot;t2&quot;, gender == &quot;female&quot;)<\/code><\/pre>\n<pre><code>## # A tibble: 3 x 9\r\n##   gender time  .y.   group1   group2      n1    n2    p.adj p.adj.signif\r\n##   &lt;fct&gt;  &lt;fct&gt; &lt;chr&gt; &lt;chr&gt;    &lt;chr&gt;    &lt;int&gt; &lt;int&gt;    &lt;dbl&gt; &lt;chr&gt;       \r\n## 1 female t2    score low      moderate    10    10 0.323    ns          \r\n## 2 female t2    score low      high        10    10 0.000318 ***         \r\n## 3 female t2    score moderate high        10    10 0.0235   *<\/code><\/pre>\n<div class=\"success\">\n<p>\nChez les femmes, le score de performance moyen \u00e9tait statistiquement significativement diff\u00e9rent entre les niveaux de stress faible et \u00e9lev\u00e9 (p &lt; 0,001) et entre les niveaux de stress mod\u00e9r\u00e9 et \u00e9lev\u00e9 (p = 0,023).\n<\/p>\n<p>\nIl n\u2019y avait pas de diff\u00e9rence significative entre les groupes de stress faible et mod\u00e9r\u00e9 (p = 0,32)\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"rapporter-1\" class=\"section level3\">\n<h3>Rapporter<\/h3>\n<p>Une ANOVA \u00e0 trois facteurs a \u00e9t\u00e9 effectu\u00e9e pour \u00e9valuer les effets du sexe, du stress et du temps sur le score de performance.<\/p>\n<p>Il n\u2019y avait pas de valeurs extr\u00eames aberrantes, telles qu\u2019\u00e9valu\u00e9es par la m\u00e9thode des boxplots. Les donn\u00e9es \u00e9taient normalement distribu\u00e9es, telles qu\u2019\u00e9valu\u00e9es par le test de normalit\u00e9 de Shapiro-Wilk (p &gt; 0,05). L\u2019homog\u00e9n\u00e9it\u00e9 des variances (p &gt; 0,05) a \u00e9t\u00e9 \u00e9valu\u00e9e par le test d\u2019homog\u00e9n\u00e9it\u00e9 des variances de Levene.<\/p>\n<p>Il y a une interaction statistiquement significative entre le sexe, le stress et le temps, F(2, 54) = 6,10, p = 0,004.<\/p>\n<p>Pour les interactions, \u00e0 deux facteurs, et les effets principaux, un ajustement de Bonferroni a \u00e9t\u00e9 appliqu\u00e9, r\u00e9sultant \u00e0 un seuil d\u2019acceptance de p &lt; 0,025 pour la significativit\u00e9 statistique.<\/p>\n<p>On a observ\u00e9 une interaction statistiquement significative entre le sexe et le stress au temps t2, F(2, 54) = 4,95, p = 0,011, mais pas \u00e0 t1, F(2, 54) = 2,12, p = 0,13.<\/p>\n<p>Il y avait un effet principal statistiquement significatif du stress sur le score de performance des femmes au temps t2, F(2, 27) = 10,5, p = 0,0004, mais pas pour les hommes, F(2, 27) = 1,57, p = 0,23.<\/p>\n<p>Toutes les comparaisons par paires ont \u00e9t\u00e9 effectu\u00e9es entre les diff\u00e9rents groupes de stress pour les femmes au temps t2. Un ajustement de Bonferroni a \u00e9t\u00e9 appliqu\u00e9.<\/p>\n<p>Le score de performance moyen \u00e9tait statistiquement significativement diff\u00e9rent entre les niveaux de stress faible et \u00e9lev\u00e9 (p &lt; 0,001) et entre les niveaux de stress mod\u00e9r\u00e9 et \u00e9lev\u00e9 (p = 0,024). Il n\u2019y avait pas de diff\u00e9rence significative entre les groupes de stress faible et mod\u00e9r\u00e9 (p = 0,32).<\/p>\n<pre class=\"r\"><code># Visualisation : Boxplots avec p-values\r\npwc &lt;- pwc %&gt;% add_xy_position(x = &quot;gender&quot;) \r\npwc.filtered &lt;- pwc %&gt;% filter(time == &quot;t2&quot;, gender == &quot;female&quot;)\r\nbxp + \r\n  stat_pvalue_manual(pwc.filtered, tip.length = 0, hide.ns = TRUE) +\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\/047-mixed-anova-three-way-bbw-boxplots-with-p-values-1.png\" width=\"576\" \/><\/p>\n<\/div>\n<\/div>\n<div id=\"three-way-bww-b\" class=\"section level2\">\n<h2>ANOVA mixte \u00e0 trois facteurs : 1 facteur inter-sujets et 2 intra-sujets<\/h2>\n<p>Cette section d\u00e9crit comment calculer l\u2019ANOVA \u00e0 trois facteurs, dans R, pour une situation o\u00f9 vous avez <strong>un facteur inter-sujets et deux facteurs intra-sujets<\/strong>. Par exemple, vous voudrez peut-\u00eatre comprendre en quoi le score de perte de poids diff\u00e8re selon que l\u2019on fasse des exercices ou non (t1, t2, t3) en fonction du r\u00e9gime alimentaire des participants (<code>diet:no<\/code> et <code>diet:yes<\/code>).<\/p>\n<div id=\"preparation-des-donnees-2\" class=\"section level3\">\n<h3>Pr\u00e9paration des donn\u00e9es<\/h3>\n<p>Nous utiliserons le jeu de donn\u00e9es <code>weightloss<\/code> (perte de poids) disponible dans le package datarium. Cet jeu de donn\u00e9es a \u00e9t\u00e9 cr\u00e9\u00e9 \u00e0 l\u2019origine pour l\u2019ANOVA sur mesures r\u00e9p\u00e9t\u00e9es \u00e0 trois facteurs. Cependant, pour notre exemple dans cet article, nous allons modifier l\u00e9g\u00e8rement les donn\u00e9es pour qu\u2019elles correspondent \u00e0 un plan mixte \u00e0 trois facteurs.<\/p>\n<p>Un chercheur voulait \u00e9valuer l\u2019effet du temps sur le score de perte de poids en fonction des programmes d\u2019exercices et <code>diet<\/code>.<\/p>\n<p>Le score de perte de poids a \u00e9t\u00e9 mesur\u00e9 dans deux groupes diff\u00e9rents : un groupe de participants faisant des exercices (<code>exercises:yes<\/code>) et un autre groupe ne faisant pas d\u2019exercices (<code>excises:no<\/code>).<\/p>\n<p>Chaque participant a \u00e9galement \u00e9t\u00e9 inscrit \u00e0 deux essais cliniques : (1) pas de r\u00e9gime alimentaire et (2) r\u00e9gime alimentaire. L\u2019ordre des essais a \u00e9t\u00e9 contrebalanc\u00e9 et un d\u00e9lai suffisant a \u00e9t\u00e9 respect\u00e9 entre les essais pour que les effets des essais pr\u00e9c\u00e9dents puissent se dissiper.<\/p>\n<p>Chaque essai a dur\u00e9 9 semaines et le score de perte de poids a \u00e9t\u00e9 mesur\u00e9 au d\u00e9but de chaque essai (t1), au milieu de chaque essai (t2) et \u00e0 la fin de chaque essai (t3).<\/p>\n<p>Dans le cadre de cette \u00e9tude, 24 personnes ont \u00e9t\u00e9 impliqu\u00e9es. Sur ces 24 participants, 12 appartiennent au groupe <code>exercises:no<\/code> et 12 \u00e9taient dans le groupe <code>exercises:yes<\/code>. Les 24 participants ont \u00e9t\u00e9 inclus dans deux essais successifs (<code>diet:no<\/code> et <code>diet:yes<\/code>) et le <code>score<\/code> de perte de poids a \u00e9t\u00e9 mesur\u00e9 \u00e0 plusieurs reprises \u00e0 trois temps diff\u00e9rents.<\/p>\n<p>Dans ce contexte, nous avons:<\/p>\n<ul>\n<li>une variable d\u00e9pendante (ou variable-r\u00e9ponse): <code>score<\/code><\/li>\n<li>Un facteur inter-sujets: <code>exercises<\/code><\/li>\n<li>deux facteurs intra-sujets: <code>diet<\/code> et <code>time<\/code><\/li>\n<\/ul>\n<div class=\"block\">\n<p>\nL\u2019ANOVA mixte \u00e0 trois facteurs peut \u00eatre effectu\u00e9e afin de d\u00e9terminer s\u2019il y a une interaction significative entre les variables <code>diet<\/code> (r\u00e9gime alimentaire), <code>exercises<\/code> (exercices) et <code>time<\/code> (le temps) sur le score de perte de poids.\n<\/p>\n<\/div>\n<p>Charger les donn\u00e9es et inspecter quelques lignes al\u00e9atoires par groupe:<\/p>\n<pre class=\"r\"><code># Charger les donn\u00e9es d&#39;origine\r\n# Format large\r\ndata(&quot;weightloss&quot;, package = &quot;datarium&quot;)\r\n# Modifiez-le pour avoir un design mixte \u00e0 trois facteurs\r\nweightloss &lt;- weightloss %&gt;%\r\n  mutate(id = rep(1:24, 2)) # deux essais\r\n# Afficher une ligne al\u00e9atoire par groupe\r\nset.seed(123)\r\nweightloss %&gt;% sample_n_by(diet, exercises, size = 1)<\/code><\/pre>\n<pre><code>## # A tibble: 4 x 6\r\n##      id diet  exercises    t1    t2    t3\r\n##   &lt;int&gt; &lt;fct&gt; &lt;fct&gt;     &lt;dbl&gt; &lt;dbl&gt; &lt;dbl&gt;\r\n## 1     4 no    no         11.1   9.5  11.1\r\n## 2    22 no    yes        10.2  11.8  17.4\r\n## 3     5 yes   no         11.6  13.4  13.9\r\n## 4    23 yes   yes        12.7  12.7  15.1<\/code><\/pre>\n<pre class=\"r\"><code># Rassemblez les colonnes t1, t2 et t3 en format long.\r\n# Convertir l&#39;identifiant et le temps en facteurs\r\nweightloss &lt;- weightloss %&gt;%\r\n  gather(key = &quot;time&quot;, value = &quot;score&quot;, t1, t2, t3) %&gt;%\r\n  convert_as_factor(id, time)\r\n# Inspecter quelques lignes al\u00e9atoires des donn\u00e9es par groupes\r\nset.seed(123)\r\nweightloss %&gt;% sample_n_by(diet, exercises, time, size = 1)<\/code><\/pre>\n<pre><code>## # A tibble: 12 x 5\r\n##   id    diet  exercises time  score\r\n##   &lt;fct&gt; &lt;fct&gt; &lt;fct&gt;     &lt;fct&gt; &lt;dbl&gt;\r\n## 1 4     no    no        t1     11.1\r\n## 2 10    no    no        t2     10.7\r\n## 3 5     no    no        t3     12.3\r\n## 4 23    no    yes       t1     10.2\r\n## 5 24    no    yes       t2     13.2\r\n## 6 13    no    yes       t3     15.8\r\n## # \u2026 with 6 more rows<\/code><\/pre>\n<\/div>\n<div id=\"statistiques-descriptives-2\" class=\"section level3\">\n<h3>Statistiques descriptives<\/h3>\n<p>Regroupez les donn\u00e9es par <code>exercises<\/code>, <code>diet<\/code> et <code>time<\/code>, puis calculez quelques statistiques descriptives de la variable <code>score<\/code>: moyenne et sd (\u00e9cart type)<\/p>\n<pre class=\"r\"><code>weightloss %&gt;%\r\n  group_by(exercises, diet, time) %&gt;%\r\n  get_summary_stats(score, type = &quot;mean_sd&quot;)<\/code><\/pre>\n<pre><code>## # A tibble: 12 x 7\r\n##   diet  exercises time  variable     n  mean    sd\r\n##   &lt;fct&gt; &lt;fct&gt;     &lt;fct&gt; &lt;chr&gt;    &lt;dbl&gt; &lt;dbl&gt; &lt;dbl&gt;\r\n## 1 no    no        t1    score       12  10.9 0.868\r\n## 2 no    no        t2    score       12  11.6 1.30 \r\n## 3 no    no        t3    score       12  11.4 0.935\r\n## 4 yes   no        t1    score       12  11.7 0.938\r\n## 5 yes   no        t2    score       12  12.4 1.42 \r\n## 6 yes   no        t3    score       12  13.8 1.43 \r\n## # \u2026 with 6 more rows<\/code><\/pre>\n<\/div>\n<div id=\"visualisation-2\" class=\"section level3\">\n<h3>Visualisation<\/h3>\n<p>Cr\u00e9ez des boxplots de scores de perte de poids par groupes d\u2019exercices, color\u00e9s par des points de temps et faire un facet en fonction du di\u00e8te:<\/p>\n<pre class=\"r\"><code>bxp &lt;- ggboxplot(\r\n  weightloss, x = &quot;exercises&quot;, y = &quot;score&quot;,\r\n  color = &quot;time&quot;, palette = &quot;jco&quot;,\r\n  facet.by = &quot;diet&quot;, short.panel.labs = FALSE\r\n  )\r\nbxp<\/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\/047-mixed-anova-three-way-bww-boxplots-1.png\" width=\"576\" \/><\/p>\n<\/div>\n<div id=\"verifier-les-hypotheses-2\" class=\"section level3\">\n<h3>V\u00e9rifier les hypoth\u00e8ses<\/h3>\n<div id=\"valeurs-aberrantes-2\" class=\"section level4\">\n<h4>Valeurs aberrantes<\/h4>\n<pre class=\"r\"><code>weightloss %&gt;%\r\n  group_by(diet, exercises, time) %&gt;%\r\n  identify_outliers(score)<\/code><\/pre>\n<pre><code>## # A tibble: 5 x 7\r\n##   diet  exercises time  id    score is.outlier is.extreme\r\n##   &lt;fct&gt; &lt;fct&gt;     &lt;fct&gt; &lt;fct&gt; &lt;dbl&gt; &lt;lgl&gt;      &lt;lgl&gt;     \r\n## 1 no    no        t3    2      13.2 TRUE       FALSE     \r\n## 2 yes   no        t1    1      10.2 TRUE       FALSE     \r\n## 3 yes   no        t1    3      13.2 TRUE       FALSE     \r\n## 4 yes   no        t1    4      10.2 TRUE       FALSE     \r\n## 5 yes   no        t2    10     15.3 TRUE       FALSE<\/code><\/pre>\n<div class=\"success\">\n<p>\nIl n\u2019y avait pas de valeurs extr\u00eames aberrantes.\n<\/p>\n<\/div>\n<\/div>\n<div id=\"hypothese-de-normalite-2\" class=\"section level4\">\n<h4>Hypoth\u00e8se de normalit\u00e9<\/h4>\n<p>Calculer le test de Shapiro-Wilk pour chaque combinaison de niveaux des facteurs:<\/p>\n<pre class=\"r\"><code>weightloss %&gt;%\r\n  group_by(diet, exercises, time) %&gt;%\r\n  shapiro_test(score)<\/code><\/pre>\n<pre><code>## # A tibble: 12 x 6\r\n##   diet  exercises time  variable statistic     p\r\n##   &lt;fct&gt; &lt;fct&gt;     &lt;fct&gt; &lt;chr&gt;        &lt;dbl&gt; &lt;dbl&gt;\r\n## 1 no    no        t1    score        0.917 0.264\r\n## 2 no    no        t2    score        0.957 0.743\r\n## 3 no    no        t3    score        0.965 0.851\r\n## 4 no    yes       t1    score        0.922 0.306\r\n## 5 no    yes       t2    score        0.912 0.229\r\n## 6 no    yes       t3    score        0.953 0.674\r\n## # \u2026 with 6 more rows<\/code><\/pre>\n<div class=\"success\">\n<p>\nLe score de perte de poids \u00e9tait normalement distribu\u00e9 (p &gt; 0,05), tel qu\u2019\u00e9valu\u00e9 par le test de normalit\u00e9 de Shapiro-Wilk.\n<\/p>\n<\/div>\n<p>Cr\u00e9er un QQ plot pour chaque cellule du plan:<\/p>\n<pre class=\"r\"><code>ggqqplot(weightloss, &quot;score&quot;, ggtheme = theme_bw()) +\r\n  facet_grid(diet + exercises ~ time, labeller = &quot;label_both&quot;)<\/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\/047-mixed-anova-three-way-bww-qq-plot-1.png\" width=\"576\" \/><\/p>\n<div class=\"success\">\n<p>\nD\u2019apr\u00e8s le graphique ci-dessus, comme tous les points se situent approximativement le long de cette ligne de r\u00e9f\u00e9rence, nous pouvons supposer une normalit\u00e9.\n<\/p>\n<\/div>\n<\/div>\n<div id=\"lhypothese-dhomogeneite-des-variances-2\" class=\"section level4\">\n<h4>L\u2019hypoth\u00e8se d\u2019homog\u00e9n\u00e9it\u00e9 des variances<\/h4>\n<p>Calculer le test de Levene apr\u00e8s avoir regroup\u00e9 les donn\u00e9es par cat\u00e9gories <code>diet<\/code> et <code>time<\/code>:<\/p>\n<pre class=\"r\"><code>weightloss %&gt;%\r\n  group_by(diet, time) %&gt;%\r\n  levene_test(score ~ exercises)<\/code><\/pre>\n<pre><code>## # A tibble: 6 x 6\r\n##   diet  time    df1   df2 statistic      p\r\n##   &lt;fct&gt; &lt;fct&gt; &lt;int&gt; &lt;int&gt;     &lt;dbl&gt;  &lt;dbl&gt;\r\n## 1 no    t1        1    22    2.44   0.132 \r\n## 2 no    t2        1    22    0.691  0.415 \r\n## 3 no    t3        1    22    2.87   0.105 \r\n## 4 yes   t1        1    22    0.376  0.546 \r\n## 5 yes   t2        1    22    0.0574 0.813 \r\n## 6 yes   t3        1    22    5.14   0.0336<\/code><\/pre>\n<div class=\"success\">\n<p>\nLes variances \u00e9taient homog\u00e8nes pour toutes les cellules (p &gt; 0,05), \u00e0 l\u2019exception de la condition avec r\u00e9gime <code>diet:yes<\/code> au temps t3 (p = 0,034), tel qu\u2019\u00e9valu\u00e9 par le test d\u2019homog\u00e9n\u00e9it\u00e9 de la variance de Levene.\n<\/p>\n<\/div>\n<div class=\"warning\">\n<p>\nNotez que, si vous n\u2019avez pas d\u2019homog\u00e9n\u00e9it\u00e9 des variances, vous pouvez essayer de transformer la variable-r\u00e9ponse (d\u00e9pendante) pour corriger l\u2019in\u00e9galit\u00e9 des variances.\n<\/p>\n<p>\nSi la taille de l\u2019\u00e9chantillon des groupes est (approximativement) \u00e9gale, ex\u00e9cutez quand m\u00eame l\u2019ANOVA, \u00e0 trois facteurs mixtes, parce qu\u2019elle est assez robuste \u00e0 l\u2019h\u00e9t\u00e9rog\u00e9n\u00e9it\u00e9 de la variance dans ces circonstances.\n<\/p>\n<p>\nIl est \u00e9galement possible d\u2019effectuer un test ANOVA robuste \u00e0 l\u2019aide du package R WRS2.\n<\/p>\n<\/div>\n<\/div>\n<div id=\"hypothese-de-sphericite-2\" class=\"section level4\">\n<h4>Hypoth\u00e8se de sph\u00e9ricit\u00e9<\/h4>\n<p>Comme mentionn\u00e9 dans la section ANOVA \u00e0 deux facteurs mixtes, le test de sph\u00e9ricit\u00e9 de Mauchly et les corrections de sph\u00e9ricit\u00e9 sont effectu\u00e9s en interne en utilisant la fonction R <code>anova_test()<\/code> et <code>get_anova_table()<\/code> [paquet rstatix].<\/p>\n<\/div>\n<\/div>\n<div id=\"calculs-2\" class=\"section level3\">\n<h3>Calculs<\/h3>\n<pre class=\"r\"><code>res.aov &lt;- anova_test(\r\n  data = weightloss, dv = score, wid = id,\r\n  between = exercises, within = c(diet, time)\r\n  )\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           exercises   1  22 38.771 2.88e-06     * 0.284\r\n## 2                diet   1  22  7.912 1.00e-02     * 0.028\r\n## 3                time   2  44 82.199 1.38e-15     * 0.541\r\n## 4      exercises:diet   1  22 51.698 3.31e-07     * 0.157\r\n## 5      exercises:time   2  44 26.222 3.18e-08     * 0.274\r\n## 6           diet:time   2  44  0.784 4.63e-01       0.013\r\n## 7 exercises:diet:time   2  44  9.966 2.69e-04     * 0.147<\/code><\/pre>\n<div class=\"success\">\n<p>\nD\u2019apr\u00e8s les r\u00e9sultats ci-dessus, on peut voir qu\u2019il existe des interactions statistiquement significatives entre les variables <code>execises<\/code>, <code>diet<\/code> et <code>time<\/code>, F(2, 44) = 9,96, p = 0,00027.\n<\/p>\n<\/div>\n<div class=\"warning\">\n<p>\nNotez que, si l\u2019interaction \u00e0 trois facteurs n\u2019est pas statistiquement significative, vous devez consulter les interactions \u00e0 deux facteurs dans le r\u00e9sultat.\n<\/p>\n<p>\nDans notre exemple, il y avait des interactions, \u00e0 deux facteurs, statistiquement significative <code>exercises:diet<\/code> (p &lt; 0,0001), et <code>exercises:time<\/code> (p &lt; 0,0001). L\u2019interaction diet*time n\u2019\u00e9tait pas statistiquement significative (p = 0.46).\n<\/p>\n<\/div>\n<\/div>\n<div id=\"tests-post-hoc-2\" class=\"section level3\">\n<h3>Tests post-hoc<\/h3>\n<p><strong>S\u2019il y a un effet significatif d\u2019interaction \u00e0 trois facteurs<\/strong>, vous pouvez le d\u00e9composer en:<\/p>\n<ul>\n<li><strong>Interaction \u00e0 deux facteurs<\/strong> : ex\u00e9cuter l\u2019interaction, \u00e0 deux facteurs, \u00e0 chaque niveau de la troisi\u00e8me variable,<\/li>\n<li><strong>Effet principal<\/strong> : ex\u00e9cuter un mod\u00e8le, \u00e0 un facteur, \u00e0 chaque niveau de la deuxi\u00e8me variable, et<\/li>\n<li><strong>Comparaisons par paires<\/strong> : effectuer des comparaisons par paires ou d\u2019autres comparaisons post-hoc si n\u00e9cessaire.<\/li>\n<\/ul>\n<p><strong>Si vous n\u2019avez pas d\u2019interaction \u00e0 trois facteurs statistiquement significative<\/strong>, vous devez d\u00e9terminer si vous avez une interaction \u00e0 deux facteurs statistiquement significative \u00e0 partir du r\u00e9sultat de l\u2019ANOVA. Vous pouvez suivre une interaction significative \u00e0 deux facteurs par des analyses simples des effets principaux et des comparaisons par paires entre les groupes si n\u00e9cessaire.<\/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=\"calculer-linteraction-a-deux-facteurs-1\" class=\"section level4\">\n<h4>Calculer l\u2019interaction \u00e0 deux facteurs<\/h4>\n<p>Dans cet exemple, nous allons consid\u00e9rer l\u2019interaction <code>diet*time<\/code> \u00e0 chaque niveau de <code>exercises<\/code>. Regroupez les donn\u00e9es par <code>exercises<\/code> et analysez l\u2019interaction entre <code>diet<\/code> et <code>time<\/code>:<\/p>\n<pre class=\"r\"><code># ANOVA \u00e0 deux facteurs au niveau de chaque groupe d&#39;exercices\r\ntwo.way &lt;- weightloss %&gt;%\r\n  group_by(exercises) %&gt;%\r\n  anova_test(dv = score, wid = id, within = c(diet, time))\r\ntwo.way<\/code><\/pre>\n<pre><code>## # A tibble: 2 x 2\r\n##   exercises anova     \r\n##   &lt;fct&gt;     &lt;list&gt;    \r\n## 1 no        &lt;anov_tst&gt;\r\n## 2 yes       &lt;anov_tst&gt;<\/code><\/pre>\n<pre class=\"r\"><code># Extraire le tableau anova\r\nget_anova_table(two.way)<\/code><\/pre>\n<pre><code>## # A tibble: 6 x 8\r\n##   exercises 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 no        diet          1    11  56.4  1.18e- 5 *       0.262\r\n## 2 no        time          2    22   5.90 9.00e- 3 *       0.181\r\n## 3 no        diet:time     2    22   2.91 7.60e- 2 &quot;&quot;      0.09 \r\n## 4 yes       diet          1    11   8.60 1.40e- 2 *       0.066\r\n## 5 yes       time          2    22 148.   1.73e-13 *       0.746\r\n## 6 yes       diet:time     2    22   7.81 3.00e- 3 *       0.216<\/code><\/pre>\n<div class=\"success\">\n<p>\nIl y avait une interaction statistiquement significative entre l\u2019alimentation et le temps pour le groupe exercises:yes, F(2, 22) = 7,81, p = 0,0027, mais pas pour le groupe exercices:no, F(2, 22) = 2,91, p = 0,075.\n<\/p>\n<\/div>\n<div class=\"warning\">\n<p>\nIl est \u00e0 noter que la significativit\u00e9 statistique d\u2019une interaction simple, \u00e0 deux facteurs, a \u00e9t\u00e9 accept\u00e9e \u00e0 un niveau alpha ajust\u00e9 de Bonferroni de 0,025. Cela correspond au niveau actuel auquel vous d\u00e9clarez une significativit\u00e9 statistique (c.-\u00e0-d. p &lt; 0,05) divis\u00e9 par le nombre d\u2019interactions \u00e0 deux facteurs que vous analys\u00e9es (c.-\u00e0-d. 2).\n<\/p>\n<\/div>\n<\/div>\n<div id=\"calculer-leffet-principal\" class=\"section level4\">\n<h4>Calculer l\u2019effet principal<\/h4>\n<p>Une interaction \u00e0 deux facteurs statistiquement significative peut \u00eatre suivie par une analyse des <strong>effets principaux<\/strong>.<\/p>\n<p>Dans notre exemple, vous pourriez donc \u00e9tudier l\u2019effet de <code>time<\/code> (temps) sur le score de perte de poids \u00e0 chaque niveau de <code>diet<\/code> (r\u00e9gime) et\/ou \u00e9tudier l\u2019effet de <code>diet<\/code> \u00e0 chaque niveau de <code>time<\/code>.<\/p>\n<div class=\"warning\">\n<p>\nNotez que vous n\u2019aurez besoin de le faire que pour l\u2019interaction \u00e0 deux facteurs pour le groupe \u201cexercises:yes\u201d, car c\u2019\u00e9tait la seule interaction statistiquement significative.\n<\/p>\n<\/div>\n<p>Regroupez les donn\u00e9es par <code>exercises<\/code> et <code>diet<\/code>, et analysez l\u2019effet principal de <code>time<\/code>:<\/p>\n<pre class=\"r\"><code>time.effect &lt;- weightloss %&gt;%\r\n  group_by(exercises, diet) %&gt;%\r\n  anova_test(dv = score, wid = id, within = time) %&gt;%\r\n  get_anova_table()\r\ntime.effect %&gt;% filter(exercises == &quot;yes&quot;)<\/code><\/pre>\n<pre><code>## # A tibble: 2 x 9\r\n##   diet  exercises Effect   DFn   DFd     F        p `p&lt;.05`   ges\r\n##   &lt;fct&gt; &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 no    yes       time       2    22  78.8 9.30e-11 *       0.801\r\n## 2 yes   yes       time       2    22  30.9 4.06e- 7 *       0.655<\/code><\/pre>\n<div class=\"warning\">\n<p>\nDans le tableau ci-dessus, nous n\u2019avons besoin des r\u00e9sultats que pour <code>exercises = yes<\/code>. Le seuil de significativit\u00e9 statistique d\u2019un effet principal est de 0,25 apr\u00e8s ajustement de Bonferroni, soit 0,05 divis\u00e9 par le nombre d\u2019effets principaux analys\u00e9s (c\u2019est-\u00e0-dire 2).\n<\/p>\n<\/div>\n<div class=\"success\">\n<p>\nL\u2019effet principal du temps sur le score de perte de poids \u00e9tait statistiquement significatif sous condition d\u2019exercices pour les deux groupes diet:no (F(2,22) = 78,81, p &lt; 0,0001) et diet:yes (F(2,22) = 30,92, p &lt; 0,0001).\n<\/p>\n<\/div>\n<\/div>\n<div id=\"calculer-les-comparaisons-entre-groupes-1\" class=\"section level4\">\n<h4>Calculer les comparaisons entre groupes<\/h4>\n<p>Un effet principal statistiquement significatif peut \u00eatre suivi de <strong>multiples comparaisons par paires<\/strong> pour d\u00e9terminer quelles moyennes de groupe sont diff\u00e9rentes.<\/p>\n<div class=\"warning\">\n<p>\nRappelez-vous que vous n\u2019aurez qu\u2019\u00e0 vous concentrer sur les r\u00e9sultats de la comparaison par paires pour <code>exercises:yes<\/code>.\n<\/p>\n<\/div>\n<p>Regroupez les donn\u00e9es par exercises<code>et<\/code>diet<code>, et effectuez des comparaisons par paires entre les points de<\/code>time` en utilisant la correction de Bonferroni. Le t-test appari\u00e9 est utilis\u00e9:<\/p>\n<pre class=\"r\"><code># calculer des comparaisons par paires\r\npwc &lt;- weightloss %&gt;%\r\n  group_by(exercises, diet) %&gt;%\r\n  pairwise_t_test(\r\n    score ~ time, paired = TRUE, \r\n    p.adjust.method = &quot;bonferroni&quot;\r\n    ) %&gt;%\r\n  select(-statistic, -df) # Supprimer les d\u00e9tails\r\n# Concentrez-vous sur les r\u00e9sultats du groupe `exercises:yes`\r\npwc %&gt;% filter(exercises == &quot;yes&quot;) %&gt;%\r\n  select(-p)    # Enlever la colonne p<\/code><\/pre>\n<pre><code>## # A tibble: 6 x 9\r\n##   diet  exercises .y.   group1 group2    n1    n2        p.adj p.adj.signif\r\n##   &lt;fct&gt; &lt;fct&gt;     &lt;chr&gt; &lt;chr&gt;  &lt;chr&gt;  &lt;int&gt; &lt;int&gt;        &lt;dbl&gt; &lt;chr&gt;       \r\n## 1 no    yes       score t1     t2        12    12 0.000741     ***         \r\n## 2 no    yes       score t1     t3        12    12 0.0000000121 ****        \r\n## 3 no    yes       score t2     t3        12    12 0.000257     ***         \r\n## 4 yes   yes       score t1     t2        12    12 0.01         **          \r\n## 5 yes   yes       score t1     t3        12    12 0.00000124   ****        \r\n## 6 yes   yes       score t2     t3        12    12 0.02         *<\/code><\/pre>\n<div class=\"success\">\n<p>\nToutes les comparaisons par paires ont \u00e9t\u00e9 effectu\u00e9es entre les diff\u00e9rents temps dans des conditions d\u2019exercices (c.-\u00e0-d. <code>exercises:yes<\/code>) pour les essais <code>diet:no<\/code> (pas de r\u00e9gime alimentaire) et <code>diet:yes<\/code> ( avec r\u00e9gime alimentaire). Un ajustement de Bonferroni a \u00e9t\u00e9 appliqu\u00e9.\n<\/p>\n<p>\nLe score moyen de perte de poids \u00e9tait significativement diff\u00e9rent dans toutes les comparaisons \u00e0 tous les temps lorsque des exercices sont effectu\u00e9s (p &lt; 0,05).\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"rapporter-2\" class=\"section level3\">\n<h3>Rapporter<\/h3>\n<p>Une ANOVA mixte \u00e0 trois facteurs a \u00e9t\u00e9 effectu\u00e9e pour \u00e9valuer les effets de l\u2019alimentation, de l\u2019exercice et du temps sur la perte de poids.<\/p>\n<p>Il n\u2019y avait pas de valeurs extr\u00eames aberrantes, telles qu\u2019\u00e9valu\u00e9es par la m\u00e9thode des boxplots. Les donn\u00e9es \u00e9taient normalement distribu\u00e9es, telles qu\u2019\u00e9valu\u00e9es par le test de normalit\u00e9 de Shapiro-Wilk (p &gt; 0,05). L\u2019homog\u00e9n\u00e9it\u00e9 des variances (p &gt; 0,05) a \u00e9t\u00e9 \u00e9valu\u00e9e par le test d\u2019homog\u00e9n\u00e9it\u00e9 des variances de Levene. Pour l\u2019effet d\u2019interaction \u00e0 trois facteurs, le test de sph\u00e9ricit\u00e9 de Mauchly indique que l\u2019hypoth\u00e8se de sph\u00e9ricit\u00e9 est respect\u00e9e (p &gt; 0,05).<\/p>\n<p>Il y a une interaction statistiquement significative entre les exercices, le r\u00e9gime alimentaire et le temps F(2, 44) = 9,96, p &lt; 0,001.<\/p>\n<p>Pour les interactions, \u00e0 deux facteurs, et les effets principaux, un ajustement de Bonferroni a \u00e9t\u00e9 appliqu\u00e9, r\u00e9sultant \u00e0 un seuil d\u2019acceptance de p &lt; 0,025 pour la significativit\u00e9 statistique.<\/p>\n<p>Il y avait une interaction statistiquement significative entre l\u2019alimentation et le temps pour le groupe exercises:yes, F(2, 22) = 7,81, p = 0,0027, mais pas pour le groupe exercices:no, F(2, 22) = 2,91, p = 0,075.<\/p>\n<p>L\u2019effet principal du temps sur le score de perte de poids \u00e9tait statistiquement significatif sous condition d\u2019exercices pour les deux groupes diet:no (F(2,22) = 78,81, p &lt; 0,0001) et diet:yes (F(2,22) = 30,92, p &lt; 0,0001).<\/p>\n<p>Toutes les comparaisons par paires ont \u00e9t\u00e9 effectu\u00e9es entre les diff\u00e9rents temps dans des conditions d\u2019exercices (c.-\u00e0-d. <code>exercises:yes<\/code>) pour les essais <code>diet:no<\/code> (pas de r\u00e9gime alimentaire) et <code>diet:yes<\/code> ( avec r\u00e9gime alimentaire). Un ajustement de Bonferroni a \u00e9t\u00e9 appliqu\u00e9. Le score moyen de perte de poids \u00e9tait significativement diff\u00e9rent dans toutes les comparaisons \u00e0 tous les temps lorsque des exercices sont effectu\u00e9s (p &lt; 0,05).<\/p>\n<pre class=\"r\"><code># Visualisation : Boxplots avec p-values\r\npwc &lt;- pwc %&gt;% add_xy_position(x = &quot;exercises&quot;)\r\npwc.filtered &lt;- pwc %&gt;% filter(exercises == &quot;yes&quot;)\r\nbxp + \r\n  stat_pvalue_manual(pwc.filtered, tip.length = 0, hide.ns = TRUE) +\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\/047-mixed-anova-three-way-bww-boxplot-with-p-values-1.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\u2019ANOVA mixte dans R. Nous expliquons \u00e9galement les hypoth\u00e8ses faites par les tests ANOVA mixtes et fournissons des exemples pratiques de codes R pour v\u00e9rifier si les hypoth\u00e8ses des tests sont respect\u00e9es.<\/p>\n<\/div>\n<\/div>\n<p><!--end rdoc--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>L&rsquo;ANOVA mixte sert \u00e0 comparer les moyennes des groupes class\u00e9s selon deux diff\u00e9rents types de variables cat\u00e9gorielles, notamment : i) les facteurs inter-sujets, qui ont des cat\u00e9gories ind\u00e9pendantes (par exemple, sexe : hommes\/femmes) ; ii) les facteurs intra-sujets, qui ont des cat\u00e9gories apparent\u00e9es, \u00e9galement d\u00e9sign\u00e9es sous l&rsquo;expression de mesures r\u00e9p\u00e9t\u00e9es (par exemple, le temps: avant\/apr\u00e8s traitement).  Ce chapitre d\u00e9crit comment calculer et interpr\u00e9ter les diff\u00e9rents tests ANOVA mixtes dans R.<\/p>\n","protected":false},"author":1,"featured_media":11067,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","class_list":["post-11066","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>ANOVA Mixte 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\/anova-mixte-dans-r\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ANOVA Mixte dans R: Excellente R\u00e9f\u00e9rence - Datanovia\" \/>\n<meta property=\"og:description\" content=\"L&#039;ANOVA mixte sert \u00e0 comparer les moyennes des groupes class\u00e9s selon deux diff\u00e9rents types de variables cat\u00e9gorielles, notamment : i) les facteurs inter-sujets, qui ont des cat\u00e9gories ind\u00e9pendantes (par exemple, sexe : hommes\/femmes) ; ii) les facteurs intra-sujets, qui ont des cat\u00e9gories apparent\u00e9es, \u00e9galement d\u00e9sign\u00e9es sous l&#039;expression de mesures r\u00e9p\u00e9t\u00e9es (par exemple, le temps: avant\/apr\u00e8s traitement). Ce chapitre d\u00e9crit comment calculer et interpr\u00e9ter les diff\u00e9rents tests ANOVA mixtes dans R.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.datanovia.com\/en\/fr\/lessons\/anova-mixte-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\/X39410210_704020863271194_6530535646589616128_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=\"41 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\/anova-mixte-dans-r\/\",\"url\":\"https:\/\/www.datanovia.com\/en\/fr\/lessons\/anova-mixte-dans-r\/\",\"name\":\"ANOVA Mixte 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\/anova-mixte-dans-r\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/lessons\/anova-mixte-dans-r\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X39410210_704020863271194_6530535646589616128_n.jpg\",\"datePublished\":\"2019-12-07T23:31:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/lessons\/anova-mixte-dans-r\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.datanovia.com\/en\/fr\/lessons\/anova-mixte-dans-r\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/lessons\/anova-mixte-dans-r\/#primaryimage\",\"url\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X39410210_704020863271194_6530535646589616128_n.jpg\",\"contentUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X39410210_704020863271194_6530535646589616128_n.jpg\",\"width\":1024,\"height\":512},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/lessons\/anova-mixte-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\":\"ANOVA Mixte 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":"ANOVA Mixte 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\/anova-mixte-dans-r\/","og_locale":"fr_FR","og_type":"article","og_title":"ANOVA Mixte dans R: Excellente R\u00e9f\u00e9rence - Datanovia","og_description":"L'ANOVA mixte sert \u00e0 comparer les moyennes des groupes class\u00e9s selon deux diff\u00e9rents types de variables cat\u00e9gorielles, notamment : i) les facteurs inter-sujets, qui ont des cat\u00e9gories ind\u00e9pendantes (par exemple, sexe : hommes\/femmes) ; ii) les facteurs intra-sujets, qui ont des cat\u00e9gories apparent\u00e9es, \u00e9galement d\u00e9sign\u00e9es sous l'expression de mesures r\u00e9p\u00e9t\u00e9es (par exemple, le temps: avant\/apr\u00e8s traitement). Ce chapitre d\u00e9crit comment calculer et interpr\u00e9ter les diff\u00e9rents tests ANOVA mixtes dans R.","og_url":"https:\/\/www.datanovia.com\/en\/fr\/lessons\/anova-mixte-dans-r\/","og_site_name":"Datanovia","og_image":[{"width":1024,"height":512,"url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X39410210_704020863271194_6530535646589616128_n.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"41 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.datanovia.com\/en\/fr\/lessons\/anova-mixte-dans-r\/","url":"https:\/\/www.datanovia.com\/en\/fr\/lessons\/anova-mixte-dans-r\/","name":"ANOVA Mixte 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\/anova-mixte-dans-r\/#primaryimage"},"image":{"@id":"https:\/\/www.datanovia.com\/en\/fr\/lessons\/anova-mixte-dans-r\/#primaryimage"},"thumbnailUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X39410210_704020863271194_6530535646589616128_n.jpg","datePublished":"2019-12-07T23:31:25+00:00","breadcrumb":{"@id":"https:\/\/www.datanovia.com\/en\/fr\/lessons\/anova-mixte-dans-r\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.datanovia.com\/en\/fr\/lessons\/anova-mixte-dans-r\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.datanovia.com\/en\/fr\/lessons\/anova-mixte-dans-r\/#primaryimage","url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X39410210_704020863271194_6530535646589616128_n.jpg","contentUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X39410210_704020863271194_6530535646589616128_n.jpg","width":1024,"height":512},{"@type":"BreadcrumbList","@id":"https:\/\/www.datanovia.com\/en\/fr\/lessons\/anova-mixte-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":"ANOVA Mixte 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\/11066","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=11066"}],"version-history":[{"count":0,"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/dt_lessons\/11066\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/media\/11067"}],"wp:attachment":[{"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/media?parent=11066"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}