Méthodes statistiques robustes dans R : t-tests, ANOVA et corrélation

Quand la normalité et l’égalité des variances font défaut, les t-tests et l’ANOVA classiques induisent en erreur. Utilisez des méthodes robustes — moyennes tronquées, test de Yuen, ANOVA robuste et corrélation robuste — avec le package WRS2

Méthodes statistiques robustes dans R avec le package WRS2 — pour les cas où les hypothèses de normalité et d’égalité des variances des t-tests et de l’ANOVA ne tiennent pas. Statistiques descriptives robustes (moyennes tronquées/winsorisées, M-estimateurs), corrélation robuste (percentage-bend, winsorisée), t-test robuste de Yuen avec taille d’effet, et ANOVA robuste à un et deux facteurs sur moyennes tronquées avec tests post-hoc.

Date de publication

23 juin 2026

Modifié

7 juillet 2026

AstucePoints clés
  • Les t-tests et l’ANOVA classiques supposent la normalité et l’égalité des variances — les violer (valeurs aberrantes, asymétrie, hétéroscédasticité) peut ruiner la puissance et induire en erreur, même sur de grands échantillons.
  • Les méthodes robustes ne reposent pas sur ces hypothèses. Le package WRS2 implémente des t-tests, ANOVA, corrélations robustes et bien plus.
  • Localisation robuste : la moyenne tronquée (on retire un % de chaque extrémité), la moyenne winsorisée (on plafonne les extrémités) et les M-estimateurs — toutes résistent aux valeurs aberrantes bien mieux que la moyenne.
  • Comparaisons robustes : le test de Yuen (yuen()) pour deux groupes, t1way()/t2way() pour une ANOVA robuste à un/deux facteurs sur moyennes tronquées, avec tests post-hoc (lincon()/mcp2atm()).
  • Corrélation robuste : percentage-bend (pbcor()) et winsorisée (wincor()) résistent aux valeurs aberrantes qui faussent le r de Pearson.

Introduction

Le t-test classique et le F-test de l’ANOVA supposent la normalité et l’égalité des variances (homoscédasticité). Les données réelles violent souvent les deux — quelques valeurs aberrantes ou une distribution asymétrique peuvent effondrer la puissance de ces tests et donner des résultats trompeurs, et le théorème central limite ne vous sauve pas toujours. Les remèdes habituels (tester les hypothèses, transformer, supprimer les valeurs aberrantes) ne sont pas satisfaisants.

Les méthodes statistiques robustes sont conçues pour ne pas dépendre de ces hypothèses. Ce chapitre de synthèse parcourt le package WRS2 — les analogues robustes des statistiques descriptives, de la corrélation, du t-test et de l’ANOVA que vous connaissez déjà.

Mesures de localisation robustes

La moyenne est notoirement sensible aux valeurs aberrantes ; les alternatives robustes ne le sont pas. Sur un vecteur fortement asymétrique à droite, comparez-les :

library(WRS2)

x <- c(77, 87, 88, 114, 151, 210, 219, 246, 253, 262,
       296, 299, 306, 376, 428, 515, 666, 1310, 2611)

c(mean        = mean(x),            # classic mean — pulled up by the tail
  trimmed_10  = mean(x, trim = 0.1),# 10% trimmed mean — drop 10% each tail
  winsor_10   = winmean(x, 0.1),    # 10% Winsorized mean — cap the tails
  median      = median(x),
  M_estimator = mest(x))            # Huber M-estimator
       mean  trimmed_10   winsor_10      median M_estimator 
   448.1053    342.7059    380.1579    262.0000    285.1576 

La moyenne (448) est tirée vers le haut par les valeurs extrêmes ; la moyenne tronquée (343), la moyenne winsorisée (380), la médiane (262) et le M-estimateur (285) donnent tous un centre plus représentatif. La moyenne tronquée à 20 % est l’outil par défaut de WRS2.

Note

Tronquée vs winsorisée. Une moyenne tronquée à 10 % écarte les 10 % les plus bas et les plus hauts ; une moyenne winsorisée à 10 % les remplace par la valeur conservée la plus proche. Toutes deux maîtrisent les valeurs aberrantes ; la troncature est le choix par défaut le plus courant dans les tests de WRS2.

Corrélation robuste

La corrélation de Pearson est facilement faussée par une seule valeur aberrante. Les corrélations percentage-bend (pbcor()) et winsorisée (wincor()) y résistent :

library(WRS2)

# percentage-bend correlation between mpg and weight (mtcars)
pbcor(mtcars$mpg, mtcars$wt)
Call:
pbcor(x = mtcars$mpg, y = mtcars$wt)

Robust correlation coefficient: -0.8962
Test statistic: -11.0614
p-value: 0 

La corrélation percentage-bend entre mpg et wt est de −0.90 (p < 0.001) — une forte association négative résistante aux voitures aberrantes. Utilisez pball() / winall() pour une matrice de corrélation robuste complète.

Test robuste à deux échantillons : le test de Yuen

Le test de Yuen (yuen()) compare les moyennes tronquées de deux groupes indépendants et — contrairement au t-test classique — autorise des variances inégales. Nous utilisons les données genderweight (le même jeu de données que la leçon sur le t-test) :

library(ggpubr)

data("genderweight", package = "datarium")

ggboxplot(genderweight, x = "group", y = "weight", color = "group",
          palette = "jco", add = "jitter", legend = "none")

A boxplot of weight by gender group with jittered points, used for a robust Yuen two-sample trimmed-mean comparison.

library(WRS2)

data("genderweight", package = "datarium")

yuen(weight ~ group, data = genderweight)
Call:
yuen(formula = weight ~ group, data = genderweight)

Test statistic: 21.9556 (df = 15.18), p-value = 0

Trimmed mean difference:  -22.44647 
95 percent confidence interval:
-24.6233     -20.2697 

Explanatory measure of effect size: 0.96 

La différence des moyennes tronquées est hautement significative (statistique de test ≈ 22, p < 0.001) — hommes et femmes diffèrent en poids. Ajoutez une taille d’effet robuste. yuen.effect.ci() donne un effet robuste de type d de Cohen (il ne suppose pas l’égalité des variances, en accord avec le test de Yuen) avec un intervalle de confiance :

library(WRS2)
data("genderweight", package = "datarium")

set.seed(123)
yuen.effect.ci(weight ~ group, data = genderweight)
$effsize
[1] 0.9562265

$alpha
[1] 0.05

$CI
[1] 0.9247014 0.9900046

La taille d’effet robuste est d’≈ 0.96 (IC à 95 % ≈ 0.92–0.99) — au regard des mêmes seuils 0.2 / 0.5 / 0.8 petit/moyen/grand, un effet très grand. (akp.effect() est une alternative à variances égales, et yuend() fournit la version pour échantillons appariés.)

ANOVA robuste à un facteur

t1way() exécute une ANOVA à un facteur sur moyennes tronquées (20 % par défaut), sans exigence d’homoscédasticité — l’analogue robuste de l’ANOVA à un facteur. Nous utilisons PlantGrowth (le même jeu de données que la leçon sur l’ANOVA) :

library(ggpubr)
data("PlantGrowth")

ggboxplot(PlantGrowth, x = "group", y = "weight", color = "group",
          palette = "jco", legend = "none")

A boxplot of plant weight across the control and two treatment groups, used for a robust one-way ANOVA on trimmed means.

library(WRS2)
data("PlantGrowth")

t1way(weight ~ group, data = PlantGrowth)
Call:
t1way(formula = weight ~ group, data = PlantGrowth)

Test statistic: F = 8.2818 
Degrees of freedom 1: 2 
Degrees of freedom 2: 9.64 
p-value: 0.00807 

Explanatory measure of effect size: 0.67 
Bootstrap CI: [0.33; 1.04]

Il y a un effet global significatif (F ≈ 8.3, p = 0.008). Faites le suivi avec le post-hoc robuste lincon() :

library(WRS2)
data("PlantGrowth")

lincon(weight ~ group, data = PlantGrowth)
Call:
lincon(formula = weight ~ group, data = PlantGrowth)

                psihat ci.lower ci.upper p.value
ctrl vs. trt1  0.44500 -0.31513  1.20513 0.12801
ctrl vs. trt2 -0.46667 -1.16501  0.23168 0.12801
trt1 vs. trt2 -0.91167 -1.54306 -0.28027 0.00709

psihat est la différence des moyennes tronquées par paires ; les IC et les p-values sont ajustés pour les tests multiples. Seul trt1 vs trt2 diffère significativement (p = 0.007). (med1way() compare les médianes ; t1waybt() est la version bootstrap.)

ANOVA robuste à deux facteurs

t2way() généralise cela à un plan à deux facteurs sur moyennes tronquées. Nous utilisons jobsatisfaction (le même jeu de données que la leçon sur l’ANOVA à deux facteurs) :

library(WRS2)
data("jobsatisfaction", package = "datarium")

t2way(score ~ gender * education_level, data = jobsatisfaction)
Call:
t2way(formula = score ~ gender * education_level, data = jobsatisfaction)

                          value p.value
gender                   0.1788   0.678
education_level        339.6611   0.001
gender:education_level   8.7873   0.031

Le niveau d’éducation est hautement significatif et il existe une interaction genre × éducation significative (p = 0.031) — confirmation robuste du résultat classique à deux facteurs. Les comparaisons post-hoc proviennent de mcp2atm(). Pour les plans à trois facteurs, utilisez t3way() ; pour les plans à mesures répétées, rmanova() ; pour les plans mixtes, bwtrim().

Rapport

L’hypothèse d’égalité des variances étant douteuse, les poids des groupes ont été comparés avec le test robuste de Yuen sur des moyennes tronquées à 20 %, qui ne suppose pas l’homoscédasticité. La différence était significative (Ty = 21.96, p < 0.001) avec une grande taille d’effet robuste.

Une moyenne tronquée à γ trie les données, retire la proportion \(\gamma\) la plus basse et la plus haute (p. ex. γ = 0.2 → on retire les 20 % du bas et du haut), puis fait la moyenne du reste. Avec \(n\) observations et \(g = \lfloor \gamma n \rfloor\) tronquées à chaque extrémité, \(\bar{x}_t = \dfrac{1}{n - 2g}\sum_{i = g+1}^{n-g} x_{(i)}\). Les tests robustes (Yuen, t1way, t2way) remplacent la moyenne et la variance de chaque groupe par la moyenne tronquée et la variance winsorisée, puis appliquent une statistique de type Welch — de sorte que les queues lourdes et la dispersion inégale ne faussent plus le résultat.

Essayez en direct

Exécutez vous-même une ANOVA robuste à un facteur — changez le niveau de troncature et observez comment le résultat évolue. Le bac à sable démarre au premier Run (WRS2 est un package volumineux, laissez-lui un instant).

🟢 Avec un agent IA

Demandez à Prova « mes données ont des valeurs aberrantes et des variances inégales — quel test robuste devrais-je utiliser à la place d’un t-test ou d’une ANOVA ? » — elle choisit la bonne méthode WRS2 et fournit du code que vous pouvez exécuter sur vos propres données. The runtime is the judge. Demander à Prova →

Problèmes courants

Vous avez supprimé des valeurs aberrantes pour « réparer » les données. Retirer des points pour forcer la normalité est exactement le remède insatisfaisant que les méthodes robustes sont censées remplacer — c’est arbitraire et cela biaise le résultat. Utilisez plutôt une méthode à moyenne tronquée, qui pondère à la baisse les queues de façon systématique.

Vous avez utilisé un test robuste mais rapporté la moyenne ordinaire. Faites correspondre le résumé à la méthode : rapportez les moyennes tronquées (mean(x, trim = 0.2)) et les tailles d’effet robustes aux côtés d’un résultat Yuen/t1way, et non la moyenne ordinaire que le test n’a pas utilisée.

Les résultats robustes et classiques divergent. C’est informatif, pas un bug — un grand écart signifie généralement que des valeurs aberrantes ou de l’hétéroscédasticité pilotent le test classique. Faites confiance au résultat robuste et inspectez la distribution pour comprendre ce qui se passe.

Questions fréquentes

Utilisez-les lorsque les hypothèses des tests classiques échouent — données non normales (asymétrie, queues lourdes, valeurs aberrantes) ou variances inégales entre groupes. Les méthodes robustes (moyennes tronquées, test de Yuen, t1way/t2way) conservent leur puissance et leur validité là où les t-tests et l’ANOVA induiraient en erreur.

Une moyenne tronquée écarte un pourcentage fixe des plus petites et des plus grandes valeurs avant de faire la moyenne — une moyenne tronquée à 20 % retire les 20 % du bas et les 20 % du haut, puis fait la moyenne des 60 % du milieu. Elle résiste aux valeurs aberrantes bien mieux que la moyenne ordinaire tout en utilisant plus de données que la médiane. Calculez-la avec mean(x, trim = 0.2).

Le test de Yuen (yuen() dans WRS2) est un t-test robuste à deux échantillons qui compare les moyennes tronquées de deux groupes et autorise des variances inégales. C’est le remplaçant robuste du t-test de Student/Welch lorsque les données présentent des valeurs aberrantes ou des queues lourdes.

Toutes deux réduisent l’influence des queues, mais une moyenne tronquée retire les valeurs extrêmes, tandis qu’une moyenne winsorisée les remplace par la valeur non extrême la plus proche (la taille d’échantillon reste donc la même). Les moyennes tronquées sous-tendent la plupart des tests robustes de WRS2 ; la winsorisation sert à la variance et à la corrélation winsorisées.

Testez vos connaissances

  1. Exécutez-le. Dans la cellule interactive, comparez t1way(weight ~ group, data = PlantGrowth, tr = 0.2) avec tr = 0 (sans troncature, ≈ ANOVA de Welch classique). La conclusion change-t-elle ?
  2. Conceptuel. Vos données comportent une valeur aberrante extrême. La moyenne ordinaire est 50 et la moyenne tronquée à 20 % est 38. Laquelle décrit le mieux la valeur typique, et pourquoi ?

Remplissez le blanc avec 0.2, puis 0. Avec tr = 0 il n’y a pas de troncature, donc le test se rapproche de l’ANOVA de Welch classique. Pour la question 2, rappelez-vous ce que la moyenne tronquée fait à une valeur extrême.

Pour ces données (assez propres), la conclusion est stable, mais avec des valeurs aberrantes le résultat tronqué (tr = 0.2) est le plus fiable. Pour la question 2 : la moyenne tronquée (38) décrit mieux la valeur typique — la valeur aberrante unique gonfle la moyenne ordinaire (50) mais est tronquée, donc 38 reflète l’essentiel des données.

AstuceQuel test, quand ?
  • Les hypothèses tiennentt-test / ANOVA classiques.
  • Valeurs aberrantes / non-normalité / variances inégales, comparaison de 2 groupestest de Yuen (yuen).
  • …comparaison de 3 groupes ou plusANOVA robuste (t1way / t2way).
  • Alternative basée sur les rangsWilcoxon / Kruskal-Wallis.

Conclusion

Vous savez désormais appliquer les méthodes statistiques robustes dans R avec WRS2 : localisation robuste (moyennes tronquées/winsorisées, M-estimateurs), corrélation robuste (pbcor/wincor), le test de Yuen robuste à deux échantillons avec taille d’effet, et l’ANOVA robuste à un/deux facteurs sur moyennes tronquées avec tests post-hoc. Quand la normalité ou l’égalité des variances ne peut être justifiée — ne supprimez pas de données et n’espérez pas que le TCL vous sauve ; optez pour une méthode robuste qui tient la route.

Leçons connexes

Cette page vous a-t-elle été utile ?

Recevez les nouvelles leçons R & Python par e-mail

Pratique, reproductible, sans spam. Désinscription à tout moment.

Double opt-in. Nous ne partageons jamais votre e-mail.

Partager cette pageXLinkedInRedditHN
Note

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.

Réutilisation

Citation

BibTeX
@online{2026,
  author = {},
  title = {Méthodes statistiques robustes dans R : t-tests, ANOVA et
    corrélation},
  date = {2026-06-23},
  url = {https://www.datanovia.com/learn/biostatistics/robust-statistical-methods-in-r},
  langid = {fr}
}
Veuillez citer ce travail comme suit :
“Méthodes statistiques robustes dans R : t-tests, ANOVA et corrélation.” 2026. June 23. https://www.datanovia.com/learn/biostatistics/robust-statistical-methods-in-r.