MANOVA en R : comparer des groupes sur plusieurs réponses à la fois
L’analyse de variance multivariée à un facteur, version moderne — tester un facteur de groupement face à deux réponses continues ou plus simultanément, vérifier les hypothèses multivariées, puis enchaîner avec des ANOVA univariées
Apprenez à réaliser une MANOVA à un facteur en R. Testez si des groupes diffèrent sur plusieurs réponses continues simultanément avec Manova() de car et la trace de Pillai, vérifiez les hypothèses de la MANOVA — normalité multivariée, valeurs aberrantes multivariées, multicolinéarité, homogénéité des covariances (M de Box) et des variances — puis donnez suite à un résultat significatif avec des ANOVA univariées et des comparaisons par paires, avec les p-values sur le graphique.
Date de publication
23 juin 2026
Modifié
12 juillet 2026
AstucePoints clés
Une MANOVA à un facteur (analyse de variance multivariée) teste si des groupes diffèrent sur deux réponses continues ou plus à la fois, au lieu de réaliser une ANOVA distincte par réponse.
Ajustez-la avec lm(cbind(y1, y2) ~ group) puis car::Manova() ; lisez la trace de Pillai (le choix robuste par défaut, idéal quand les hypothèses sont fragiles ou que le plan est déséquilibré).
La MANOVA ajoute des hypothèses multivariées : normalité multivariée (mshapiro_test()), aucune valeur aberrante multivariée (distance de Mahalanobis), corrélation modérée entre les réponses (pas de multicolinéarité) et homogénéité des matrices de covariance (test M de Box).
Une MANOVA significative est suivie d’une ANOVA à un facteur univariée par réponse (α ajusté par Bonferroni), puis de comparaisons par paires pour voir quels groupes diffèrent sur quelle réponse.
Tracez toutes les réponses ensemble (une boîte à moustaches fusionnée) avec les p-values des comparaisons dessus.
Introduction
Une MANOVA à un facteur étend l’ANOVA à un facteur à plusieurs variables réponses mesurées ensemble. Au lieu de demander « les groupes diffèrent-ils sur ce score ? », elle demande « les groupes diffèrent-ils sur la combinaison de ces scores ? » — en testant un seul facteur de groupement face à un vecteur de réponses continues.
Utilisez-la lorsque vos réponses mesurent différentes facettes d’un même thème cohérent — plusieurs notes d’examen pour la performance académique globale, ou plusieurs mesures de fleur pour la taille de la plante — et que vous voulez un seul test de la différence conjointe plutôt que de nombreuses ANOVA distinctes (qui gonflent le taux d’erreur). Le scénario classique : les espèces d’iris diffèrent-elles sur la combinaison de Sepal.Length et Petal.Length ? Cette leçon déroule le flux de travail complet avec rstatix et car, en utilisant les données intégrées iris.
Note
Hypothèses de la MANOVA à un facteur.H₀ : les vecteurs de moyennes des groupes sont égaux (les groupes ne diffèrent pas sur les réponses combinées). Hₐ : le vecteur de moyennes d’au moins un groupe diffère. La MANOVA construit une combinaison linéaire des réponses et compare ses moyennes de groupe.
Les données : deux mesures de fleur par espèce
Nous utilisons le jeu de données intégré iris, en conservant deux réponses — Sepal.Length et Petal.Length — et le facteur de groupement Species (setosa, versicolor, virginica, 50 chacune) :
La MANOVA suppose une taille d’échantillon adéquate (n par groupe > nombre de réponses — ici 50 > 2 ✓), des observations indépendantes, aucune valeur aberrante multivariée, la normalité multivariée, une corrélation modérée (pas excessive) entre les réponses, une relation linéaire entre les réponses au sein de chaque groupe et l’homogénéité des matrices de covariance.
Valeurs aberrantes univariées
D’abord, vérifiez chaque réponse pour des valeurs extrêmes au sein de chaque groupe avec identify_outliers() (un résultat vide signifie qu’il n’y en a aucune) :
Les deux réponses sont normales dans chaque groupe (p > 0.05), et mshapiro_test() est non significatif (p = 0.86) — la normalité multivariée tient. Confortez le test avec un Q-Q plot par groupe :
Avec n > 50 par groupe, le Q-Q plot est le meilleur guide — Shapiro-Wilk devient hypersensible aux infimes écarts sur de grands échantillons. Ici, les deux concordent.
Multicolinéarité — corrélation entre les réponses
Les réponses doivent être modérément corrélées — pas au-dessus de r = 0.9 (multicolinéarité), pas proches de zéro non plus (sinon réalisez des ANOVA distinctes) :
Les réponses sont corrélées à r = 0.87 (p < 0.0001) — élevé mais en dessous de 0.9, donc acceptable.
Vérifiez l’hypothèse de linéarité
La MANOVA construit une combinaison linéaire des réponses, elle suppose donc une relation linéaire entre les variables réponses au sein de chaque groupe — une relation courbe fausserait le test multivarié. Vérifiez-la visuellement avec une matrice de nuages de points par groupe, à l’aide de ggpairs() du package GGally, en colorant les points par espèce :
Le panneau hors diagonale trace Sepal.Length en fonction de Petal.Length pour chaque espèce : au sein de chaque groupe, les points s’alignent le long d’une ligne droite, sans motif courbe ni coudé, donc l’hypothèse de linéarité tient. (Le panneau supérieur affiche aussi les corrélations par groupe — leur force varie, mais la linéarité concerne la forme de chaque nuage, pas à quel point il est resserré.)
Si au contraire le nuage d’un groupe était courbe ou en forme de U, la relation serait non linéaire. Dans ce cas, transformez ou supprimez la variable réponse fautive, ou réalisez quand même la MANOVA en acceptant de perdre un peu de puissance statistique.
Homogénéité des matrices de covariance — M de Box
Le M de Box est l’analogue multivarié de l’égalité des variances. Il est très sensible, alors jugez-le à α = 0.001 :
# A tibble: 1 × 4
statistic p.value parameter method
<dbl> <dbl> <dbl> <chr>
1 58.4 9.62e-11 6 Box's M-test for Homogeneity of Covariance Matri…
Le M de Box est significatif (p < 0.001), donc les matrices de covariance ne sont pas homogènes. Avec un plan équilibré (50 par groupe), ce n’est pas rédhibitoire — mais c’est la raison de rapporter la trace de Pillai, la statistique robuste, plutôt que le lambda de Wilks.
Homogénéité des variances — test de Levene
Pour chaque réponse séparément, restructurez en format long avec R de base, puis appliquez le test de Levene par réponse :
Le test de Levene est significatif pour les deux réponses — les variances ne sont pas égales entre les espèces, ce qui (avec le M de Box) oriente de nouveau vers la trace de Pillai et vers Games-Howell pour l’étape post-hoc.
Réaliser la MANOVA
Ajustez un modèle linéaire multivarié avec cbind() à gauche, puis Manova() avec la trace de Pillai :
Type II MANOVA Tests: Pillai test statistic
Df test stat approx F num Df den Df Pr(>F)
Species 2 0.9885 71.829 4 294 < 2.2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Il existe une différence statistiquement significative entre les espèces sur les réponses combinées, F(4, 294) = 71.83, p < 0.0001 — les espèces diffèrent sur la combinaison longueur-de-sépale/longueur-de-pétale.
Astuce
Quelle statistique multivariée ?Manova() propose Pillai, Wilks, Hotelling-Lawley et Roy. Le lambda de Wilks est le choix par défaut courant, mais la trace de Pillai est plus robuste et préférable quand le plan est déséquilibré ou que le M de Box est significatif (notre cas) — nous rapportons donc Pillai.
Post-hoc : quelles réponses, quels groupes
Une MANOVA significative se décompose en une ANOVA à un facteur univariée par réponse (ajustée par Bonferroni à α = 0.05 / 2 = 0.025 pour deux réponses), puis en comparaisons par paires. Comme les variances sont inégales, utilisez le test de Games-Howell :
Les deux réponses diffèrent significativement selon l’espèce — Sepal.LengthF(2, 147) = 119 et Petal.LengthF(2, 147) = 1180 (les deux p < 0.0001) — et chaque comparaison par paires d’espèces est significative pour chaque réponse.
Le tracer avec les p-values
La figure de restitution superpose les comparaisons par paires sur la boîte à moustaches fusionnée, avec le résultat de la MANOVA en sous-titre (construit avec create_test_label()) :
library(rstatix)library(ggpubr)iris2 <-data.frame(id =1:nrow(iris), iris[, c("Sepal.Length", "Petal.Length", "Species")])long <-data.frame(Species =rep(iris2$Species, 2),variables =rep(c("Sepal.Length", "Petal.Length"), each =nrow(iris2)),value =c(iris2$Sepal.Length, iris2$Petal.Length))pwc <- long %>%group_by(variables) %>%games_howell_test(value ~ Species) %>%add_xy_position(x ="Species")test.label <-create_test_label(description ="MANOVA", statistic.text =quote(italic("F")),statistic =71.83, p ="<0.0001", parameter ="4,294",type ="expression", detailed =TRUE)ggboxplot( iris2, x ="Species", y =c("Sepal.Length", "Petal.Length"),merge =TRUE, palette ="jco") +stat_pvalue_manual( pwc, hide.ns =TRUE, tip.length =0,step.increase =0.1, step.group.by ="variables", color ="variables" ) +labs(subtitle = test.label, caption =get_pwc_label(pwc, type ="expression"))
Rapport
Une MANOVA à un facteur a été réalisée pour déterminer l’effet de l’espèce d’iris sur la longueur de sépale et la longueur de pétale. Il y avait une différence statistiquement significative entre les espèces sur les variables dépendantes combinées, F(4, 294) = 71.83, p < 0.0001 (trace de Pillai). Les ANOVA univariées de suivi (α ajusté par Bonferroni α = 0.025) ont montré une différence significative pour la longueur de sépale, F(2, 147) = 119, et la longueur de pétale, F(2, 147) = 1180 (les deux p < 0.0001). Toutes les comparaisons par paires entre espèces étaient significatives pour chaque réponse.
NoteLes mathématiques (optionnel)
Là où l’ANOVA partitionne une seule somme de carrés, la MANOVA partitionne des matrices : une matrice inter-groupes \(H\) (hypothèse) et une matrice intra-groupes \(E\) (erreur). Les statistiques multivariées résument la relation \(H\)-vs-\(E\) à travers les valeurs propres \(\lambda_i\) de \(E^{-1}H\). La trace de Pillai vaut \(V = \sum_i \frac{\lambda_i}{1 + \lambda_i}\) — une mesure bornée et robuste de la part de la variation combinée qui se situe entre les groupes. Chaque statistique multivariée est convertie en un \(F\) approché pour la p-value.
Essayez en direct
Réalisez une MANOVA sur une nouvelle question — les espèces d’iris diffèrent-elles sur les mesures de pétale (Petal.Length et Petal.Width) ensemble ? Modifiez les réponses ou la statistique de test puis relancez ; le bac à sable démarre au premier Run.
🟢 Avec un agent IA
Demandez à Prova« J’ai un facteur de groupement et plusieurs réponses numériques — réalise une MANOVA à un facteur sur mes données, vérifie les hypothèses multivariées et donne suite à un résultat significatif avec des ANOVA univariées » — elle répond avec du code rstatix + car que vous pouvez exécuter sur vos propres données, puis vous aide à lire la trace de Pillai et les tests de suivi. The runtime is the judge.Demander à Prova →
Problèmes courants
Vous avez réalisé une ANOVA distincte par réponse au lieu d’une MANOVA. Tester chaque réponse séparément gonfle le taux d’erreur par famille et ignore la corrélation entre les réponses. Réalisez d’abord la MANOVA pour le test conjoint ; ne la décomposez en ANOVA univariées (avec un α ajusté par Bonferroni) qu’ensuite.
Le M de Box est significatif, alors vous avez utilisé le lambda de Wilks. Quand le M de Box échoue (matrices de covariance inégales) ou que le plan est déséquilibré, le lambda de Wilks n’est pas robuste. Rapportez plutôt la trace de Pillai — elle est bien moins sensible à la violation.
Vos réponses sont presque parfaitement corrélées (r > 0.9). C’est de la multicolinéarité — les réponses portent quasiment la même information, ce qui déstabilise la MANOVA. Supprimez l’une des réponses redondantes, ou combinez-les en un seul score composite.
Questions fréquentes
NoteQuelle est la différence entre ANOVA et MANOVA ?
L’ANOVA teste un facteur de groupement face à une seule réponse continue ; la MANOVA le teste face à deux réponses ou plussimultanément, en tenant compte de la corrélation entre elles. La MANOVA fournit un unique test conjoint (évitant le taux d’erreur gonflé de nombreuses ANOVA distinctes) et peut détecter des différences de groupe qui n’apparaissent que dans la combinaison des réponses.
NoteDois-je utiliser la trace de Pillai ou le lambda de Wilks ?
Le lambda de Wilks est le choix traditionnel par défaut, mais la trace de Pillai est plus robuste aux violations de l’hypothèse d’homogénéité des covariances (M de Box) et aux plans déséquilibrés. Quand le M de Box est significatif — comme dans la plupart des données réelles — rapportez la trace de Pillai. car::Manova() utilise Pillai par défaut.
NoteQuelles sont les hypothèses de la MANOVA ?
Une taille d’échantillon adéquate (n par groupe supérieur au nombre de réponses), des observations indépendantes, aucune valeur aberrante multivariée (distance de Mahalanobis), la normalité multivariée (mshapiro_test()), une relation linéaire entre les réponses, pas de multicolinéarité (corrélations des réponses en dessous de 0.9) et l’homogénéité des matrices de covariance (M de Box). La MANOVA est assez robuste aux écarts légers, surtout avec un plan équilibré.
NoteComment vérifier l’hypothèse de linéarité pour la MANOVA ?
Tracez une matrice de nuages de points des variables réponses pour chaque groupe avec ggpairs() du package GGally (colorez les points par groupe). La relation entre chaque paire de réponses doit paraître linéaire — un nuage droit sans courbure — au sein de chaque groupe. Si un groupe présente un motif courbe, transformez ou supprimez cette variable réponse, ou réalisez quand même la MANOVA en acceptant une perte de puissance.
NoteComment donner suite à une MANOVA significative ?
Décomposez-la en une ANOVA à un facteur univariée pour chaque réponse, en utilisant un seuil de signification ajusté par Bonferroni (α divisé par le nombre de réponses). Pour chaque réponse qui diffère, réalisez des comparaisons par paires — Tukey HSD si les variances sont égales, Games-Howell si elles ne le sont pas — afin de voir quels groupes diffèrent.
Testez vos connaissances
ImportantPratique
Lancez-la. Dans la cellule interactive, ajustez une MANOVA à un facteur de Sepal.Length et Sepal.Width par Species et rapportez la trace de Pillai. Remplissez les blancs. L’effet multivarié est-il significatif ?
Conceptuel. Le M de Box est significatif pour vos données. Quelle statistique multivariée devriez-vous rapporter, et pourquoi ?
NoteIndice
Remplissez les réponses par cbind(Sepal.Length, Sepal.Width) et la statistique par "Pillai". Lisez la colonne Pr(>F). Pour la question 2, rappelez-vous quelle statistique est robuste lorsque les matrices de covariance sont inégales.
NoteSolution
library(rstatix); library(car)model <-lm(cbind(Sepal.Length, Sepal.Width) ~ Species, data = iris)Manova(model, test.statistic ="Pillai")#> Species effect is highly significant (p < 2e-16).
L’effet multivarié est significatif. Pour la question 2 : rapportez la trace de Pillai — c’est la statistique robuste, la moins affectée par un M de Box significatif (matrices de covariance inégales).
M de Box / égalité des variances violée → rapportez la trace de Pillai et utilisez Games-Howell en post-hoc.
Conclusion
Vous savez maintenant réaliser une MANOVA à un facteur en R : ajuster lm(cbind(y1, y2) ~ group), la tester avec car::Manova() en rapportant la trace de Pillai, et vérifier les hypothèses multivariées — normalité multivariée, valeurs aberrantes multivariées, multicolinéarité et M de Box. Lorsque le test conjoint est significatif, décomposez-le en ANOVA univariées (ajustées par Bonferroni) et en comparaisons par paires pour voir quels groupes diffèrent sur quelle réponse, puis posez les comparaisons sur une boîte à moustaches fusionnée. La MANOVA est le bon outil chaque fois que plusieurs réponses mesurent un même thème cohérent.
Chaque résultat de cette page a été produit par le code montré, exécuté au moment du build contre un environnement R figé — modifiez n’importe quel bloc et faites Run pour le reproduire vous-même.
@online{2026,
author = {},
title = {MANOVA en R : comparer des groupes sur plusieurs réponses à
la fois},
date = {2026-06-23},
url = {https://www.datanovia.com/learn/biostatistics/anova/manova-in-r},
langid = {fr}
}