Analyse de puissance et calcul de la taille d’échantillon avec R

Avant de lancer une étude, trouvez la taille d’échantillon dont vous avez besoin — ou la puissance que vous obtiendrez — avec le package pwr : t-tests, ANOVA, corrélation, proportions et chi-deux, de façon pratique

Réalisez une analyse de puissance et le calcul de la taille d’échantillon avec R grâce au package pwr. Comprenez les quatre composantes interdépendantes (taille d’échantillon, taille d’effet, seuil de signification, puissance), utilisez les tailles d’effet conventionnelles de Cohen, et calculez le n requis — ou la puissance atteinte — pour les t-tests, l’ANOVA, la corrélation, les tests de proportion et de chi-deux.

Date de publication

23 juin 2026

Modifié

7 juillet 2026

AstucePoints clés
  • L’analyse de puissance relie quatre quantités — la taille d’échantillon, la taille d’effet, le seuil de signification (α) et la puissance (1 − β) — donnez-en trois et R calcule la quatrième.
  • Utilisez le package pwr : pwr.t.test(), pwr.anova.test(), pwr.r.test(), pwr.2p.test(), pwr.chisq.test(), pwr.f2.test().
  • La puissance est la probabilité de détecter un effet réel ; les cibles habituelles sont puissance = 0.80–0.90 et α = 0.05.
  • La taille d’effet mesure à quel point l’hypothèse nulle est fausse ; les valeurs conventionnelles petite/moyenne/grande de Cohen diffèrent selon le test (p. ex. d = 0.2/0.5/0.8 pour des moyennes).
  • Faites-le avant l’étude : trop peu de sujets → étude sous-puissante (vous manquez les effets réels) ; trop nombreux → ressources gaspillées.

Introduction

Choisir la taille d’échantillon est l’une des décisions de conception les plus importantes d’une étude. Trop peu de participants et un effet réel passe inaperçu (l’étude est sous-puissante) ; trop nombreux et vous gaspillez du temps, de l’argent et des participants. L’analyse de puissance répond précisément à la question — de combien de sujets ai-je besoin ? — avant que vous ne collectiez la moindre donnée.

Le scénario : vous planifiez une expérience et devez connaître la taille d’échantillon nécessaire pour détecter de façon fiable l’effet qui vous intéresse — ou, à budget fixé, la puissance dont vous disposerez réellement.

Les quatre composantes

L’analyse de puissance relie quatre quantités — précisez-en trois, résolvez pour la quatrième :

  1. Taille d’échantillon — le nombre d’observations.
  2. Taille d’effet — à quelle distance de l’hypothèse nulle se situe la vérité (les effets plus grands sont plus faciles à détecter).
  3. Seuil de signification (α) — le taux d’erreur de Type I (faux positif) ; généralement 0.05.
  4. Puissance (1 − β) — la probabilité de détecter un effet réel (en évitant un faux négatif) ; généralement ciblée entre 0.80 et 0.90.
Note

Type I vs Type II. α (Type I), c’est trouver un effet qui n’existe pas ; β (Type II), c’est manquer un effet qui existe bel et bien. Puissance = 1 − β. Viser une puissance de 90 % revient à accepter un taux d’erreur de Type II de 10 %.

Nous utilisons le package pwr tout au long de la leçon :

library(pwr)

Tailles d’effet conventionnelles

Si vous ne pouvez pas estimer la taille d’effet à partir de données pilotes, les valeurs conventionnelles petite/moyenne/grande de Cohen sont un point de départ — et elles diffèrent selon le test :

Test petite moyenne grande
moyennes (t) 0.2 0.5 0.8
proportions (p) 0.2 0.5 0.8
corrélation (r) 0.1 0.3 0.5
chi-deux (chisq) 0.1 0.3 0.5
ANOVA (anov) 0.1 0.25 0.4
modèle linéaire (f2) 0.02 0.15 0.35

cohen.ES() les renvoie :

library(pwr)
cohen.ES(test = "t", size = "medium")

     Conventional effect size from Cohen (1982) 

           test = t
           size = medium
    effect.size = 0.5

T-tests (comparer deux moyennes)

pwr.t.test() — donnez trois éléments parmi n (par groupe), d (le d de Cohen), sig.level, power. Quelle puissance ai-je avec 30 sujets par groupe pour un effet moyen (d = 0.5) ?

library(pwr)
pwr.t.test(n = 30, d = 0.5, sig.level = 0.05, type = "two.sample")

     Two-sample t test power calculation 

              n = 30
              d = 0.5
      sig.level = 0.05
          power = 0.4778965
    alternative = two.sided

NOTE: n is number in *each* group

Seulement 48 % de puissance — une chance équivalente à pile ou face de détecter l’effet. Alors combien m’en faut-il pour 90 % de puissance ?

library(pwr)
pwr.t.test(d = 0.5, sig.level = 0.05, power = 0.9, type = "two.sample")

     Two-sample t test power calculation 

              n = 85.03128
              d = 0.5
      sig.level = 0.05
          power = 0.9
    alternative = two.sided

NOTE: n is number in *each* group

Il nous faut ~85 sujets par groupe. (Utilisez type = "one.sample" ou "paired" pour ces plans, et pwr.t2n.test() pour des groupes de tailles inégales.)

ANOVA à un facteur

pwr.anova.test()k groupes, n par groupe, taille d’effet f. Taille d’échantillon pour 5 groupes, un effet moyen (f = 0.25), 90 % de puissance :

library(pwr)
pwr.anova.test(k = 5, f = 0.25, sig.level = 0.05, power = 0.9)

     Balanced one-way analysis of variance power calculation 

              k = 5
              n = 50.25498
              f = 0.25
      sig.level = 0.05
          power = 0.9

NOTE: n is number in each group

Environ 50 par groupe (~250 au total).

Corrélation

pwr.r.test() — taille d’échantillon pour détecter une corrélation de r = 0.3 avec 90 % de puissance :

library(pwr)
pwr.r.test(r = 0.3, sig.level = 0.05, power = 0.9)

     approximate correlation power calculation (arctangh transformation) 

              n = 111.8068
              r = 0.3
      sig.level = 0.05
          power = 0.9
    alternative = two.sided

Il nous faut ~112 observations.

Proportions

Pour deux proportions, convertissez-les d’abord en taille d’effet avec ES.h(). Les chercheurs s’attendent à 55 % contre 50 % — combien de sujets par groupe pour 80 % de puissance afin de détecter cet écart de 5 points ?

library(pwr)
pwr.2p.test(h = ES.h(p1 = 0.55, p2 = 0.50), sig.level = 0.05, power = 0.80)

     Difference of proportion power calculation for binomial distribution (arcsine transformation) 

              h = 0.1001674
              n = 1564.529
      sig.level = 0.05
          power = 0.8
    alternative = two.sided

NOTE: same sample sizes

~1565 par groupe — de petites différences de proportions exigent de grands échantillons. (Utilisez pwr.p.test() pour une proportion, pwr.2p2n.test() pour des groupes inégaux.)

Tests de chi-deux

Pour un test de chi-deux, la taille d’effet est w (utilisez ES.w1() pour l’ajustement, ES.w2() pour un tableau de contingence). Taille d’échantillon pour détecter une distribution de couleurs donnée par rapport à des proportions égales, 90 % de puissance :

library(pwr)
expected <- c(1/3, 1/3, 1/3)
observed <- c(0.51, 0.32, 0.17)

pwr.chisq.test(w = ES.w1(expected, observed), df = (3 - 1),
               sig.level = 0.05, power = 0.9)

     Chi squared power calculation 

              w = 0.4173727
              N = 72.64029
             df = 2
      sig.level = 0.05
          power = 0.9

NOTE: N is the number of observations

Il nous faut ~73 enregistrements pour détecter cet écart par rapport à des couleurs équiréparties avec 90 % de puissance.

Modèles linéaires (régression)

Pour une régression linéaire, pwr.f2.test() utilise la taille d’effet f² = R²/(1 − R²). Les arguments sont u (degrés de liberté du numérateur = nombre de prédicteurs) et v (degrés de liberté du dénominateur = n − u − 1). Quelle puissance possède un modèle expliquant 42 % de la variance avec 2 prédicteurs à n = 47 ?

library(pwr)
pwr.f2.test(u = 2, v = 44, f2 = 0.42 / (1 - 0.42), sig.level = 0.001)

     Multiple regression power calculation 

              u = 2
              v = 44
             f2 = 0.7241379
      sig.level = 0.001
          power = 0.9616593

Environ 96 % de puissance. Pour résoudre pour la taille d’échantillon, laissez v = NULL et rappelez-vous que n = v + u + 1 :

library(pwr)
pwr.f2.test(u = 2, f2 = 0.42 / (1 - 0.42), sig.level = 0.001, power = 0.99)

     Multiple regression power calculation 

              u = 2
              v = 52.79266
             f2 = 0.7241379
      sig.level = 0.001
          power = 0.99

Un v d’environ 53 signifie n = 53 + 2 + 1 ≈ 56 observations pour 99 % de puissance à ce α strict.

Rapport

Une analyse de puissance a priori (package pwr) a été menée pour un t-test à deux échantillons. Pour détecter un effet moyen (d de Cohen = 0.5) avec 90 % de puissance à α = 0.05, une taille d’échantillon de 85 participants par groupe (170 au total) est requise.

La puissance vaut \(1 - \beta = P(\text{reject } H_0 \mid H_1 \text{ true})\). Elle augmente avec la taille d’échantillon, la taille d’effet et un α plus grand ; elle diminue à mesure que vous exigez un α plus petit. Chaque fonction pwr inverse la distribution non centrale du test : pour le t-test à deux échantillons, la statistique de test sous \(H_1\) suit une loi \(t\) non centrale de paramètre de non-centralité \(\delta = d\sqrt{n/2}\), et pwr.t.test() résout \(P(|t| > t_{\alpha/2} \mid \delta) = \text{power}\) pour l’argument que vous laissez à NULL. Les tailles d’effet de Cohen (d, f, h, w, r) standardisent l’effet afin que la même mécanique de puissance s’applique à tous les tests.

Essayez en direct

Modifiez la taille d’effet ou la puissance cible et observez la taille d’échantillon requise évoluer. Le bac à sable démarre au premier Run.

🟢 Avec un agent IA

Demandez à Prova « quelle taille d’échantillon me faut-il pour détecter mon effet avec 90 % de puissance ? » — elle choisit la bonne fonction pwr pour votre test et calcule la taille d’échantillon avec du code que vous pouvez exécuter. The runtime is the judge. Demander à Prova →

Problèmes courants

Vous avez fait l’analyse de puissance après l’étude. L’analyse de puissance est un outil de conception — faites-la avant de collecter les données. La « puissance observée » a posteriori calculée à partir de votre p-value est circulaire et sans intérêt ; si vous devez rapporter une sensibilité, calculez la taille d’effet que vous auriez pu détecter, et non la puissance issue de l’effet observé.

Vous avez deviné la taille d’effet à partir des mêmes données. Estimer l’effet à partir d’une étude pilote est correct ; l’estimer à partir de l’étude même que vous dimensionnez le gonfle artificiellement. Dans le doute, utilisez la valeur conventionnelle petite/moyenne de Cohen — et rappelez-vous que les petits effets exigent de grands échantillons.

Votre taille d’échantillon est « par groupe », pas au total. pwr.t.test, pwr.anova.test et pwr.2p.test renvoient la taille par groupe — multipliez par le nombre de groupes pour l’effectif total à recruter.

Questions fréquentes

Utilisez le package pwr : choisissez la fonction adaptée à votre test (pwr.t.test, pwr.anova.test, pwr.r.test, pwr.2p.test, pwr.chisq.test), fournissez la taille d’effet, le seuil de signification (0.05) et la puissance cible (0.80–0.90), et laissez n = NULL — R renvoie la taille d’échantillon requise.

La puissance est la probabilité de détecter un effet réel (1 − β, le complément du taux d’erreur de Type II). Les cibles conventionnelles sont 0.80 (acceptable) ou 0.90 (forte) ; en dessous de 0.80, une étude est généralement considérée comme sous-puissante.

Utilisez les valeurs conventionnelles de Cohen pour votre test — p. ex. d = 0.2/0.5/0.8 (petite/moyenne/grande) pour des moyennes, r = 0.1/0.3/0.5 pour la corrélation, f = 0.1/0.25/0.4 pour l’ANOVA. cohen.ES(test, size) les renvoie. Un effet moyen est un choix par défaut courant lorsqu’on ne sait rien.

L’analyse de puissance a priori (l’utile) trouve la taille d’échantillon avant l’étude, à partir d’un effet attendu. La puissance a posteriori calculée à partir de l’effet observé après l’étude est circulaire — ce n’est qu’une transformation de la p-value — et doit être évitée. Rapportez plutôt une puissance a priori ou une analyse de sensibilité.

Testez vos connaissances

  1. Exécutez-le. Dans la cellule interactive, calculez la taille d’échantillon pour un t-test à deux échantillons avec un effet petit (d = 0.2) à 80 % de puissance. Comment se compare-t-elle au n pour un effet moyen ?
  2. Conceptuel. Votre analyse de puissance indique qu’il vous faut 1565 sujets par groupe, mais vous ne pouvez en recruter que 300. Citez deux choses que vous pourriez changer pour rendre l’étude réalisable.

Remplissez le blanc avec 0.2, puis comparez avec d = 0.5. Les effets plus petits exigent des échantillons bien plus grands. Pour la question 2, réfléchissez à laquelle des quatre composantes vous pouvez ajuster (la taille d’effet que vous êtes capable de détecter, α, ou la puissance).

Un effet petit (d = 0.2) nécessite ~394 par groupe contre ~64 pour un effet moyen (d = 0.5) à 80 % de puissance — la taille d’échantillon varie approximativement en \(1/d^2\). Pour la question 2, à effectif recrutable fixé, vous pouvez : (a) viser une taille d’effet plus grande (accepter de ne détecter qu’un écart plus important), (b) accepter une puissance plus faible (p. ex. 0.70, en augmentant l’erreur de Type II), (c) assouplir α légèrement, ou (d) changer le plan (un test apparié/intra-sujet, ou une mesure plus précise, augmente la taille d’effet effective). Recruter davantage est le seul moyen de conserver à la fois le petit effet et une puissance élevée.

Conclusion

Vous savez désormais réaliser une analyse de puissance avec R : utilisez le package pwr pour relier taille d’échantillon, taille d’effet, seuil de signification et puissance — en résolvant pour celle que vous ignorez — pour les t-tests, l’ANOVA, la corrélation, les proportions et le chi-deux. Faites-le avant l’étude pour choisir une taille d’échantillon suffisamment grande pour détecter ce qui compte, sans gaspiller de ressources.

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 = {Analyse de puissance et calcul de la taille d’échantillon
    avec R},
  date = {2026-06-23},
  url = {https://www.datanovia.com/learn/biostatistics/power-analysis-in-r},
  langid = {fr}
}
Veuillez citer ce travail comme suit :
“Analyse de puissance et calcul de la taille d’échantillon avec R.” 2026. June 23. https://www.datanovia.com/learn/biostatistics/power-analysis-in-r.