Test de tendance de Cochran-Armitage en R : tester une tendance dans des proportions

Tester si une proportion binomiale augmente ou diminue le long d’une exposition ordonnée — le test du chi-deux pour tendance, plus puissant qu’un chi-deux simple

Apprenez à exécuter le test de tendance de Cochran-Armitage en R — tester si une proportion oui/non évolue linéairement le long des niveaux ordonnés d’une exposition (dose, tranche d’âge, sévérité). Exécutez-le avec rstatix prop_trend_test() sur une table de contingence 2×k, et découvrez pourquoi il est plus puissant qu’un chi-deux simple lorsque les catégories sont ordonnées.

Date de publication

23 juin 2026

Modifié

7 juillet 2026

AstucePoints clés
  • Le test de tendance de Cochran-Armitage (test du chi-deux pour tendance) teste si une proportion binomiale augmente ou diminue linéairement le long des niveaux ordonnés d’une exposition — dose, tranche d’âge, sévérité, etc.
  • Exécutez-le avec rstatix::prop_trend_test() sur une table de contingence 2 × k (deux lignes de résultat, k colonnes ordonnées).
  • Il est plus puissant qu’un test du chi-deux simple lorsque les colonnes sont ordonnées, car il teste spécifiquement une tendance plutôt qu’une différence quelconque.
  • Un résultat significatif signifie que la proportion évolue de façon monotone avec l’exposition ordonnée.

Introduction

Lorsqu’une variable catégorielle est ordonnée — niveaux de dose, tranches d’âge, stades de la maladie — et que l’autre est un résultat oui/non, vous vous intéressez souvent à une question précise : la proportion de « oui » augmente-t-elle ou diminue-t-elle à mesure que l’exposition s’accroît ? Un test du chi-deux simple demande seulement si les proportions diffèrent, sans tenir compte de l’ordre. Le test de tendance de Cochran-Armitage exploite l’ordre, en testant une tendance linéaire dans les proportions — et il en est plus puissant.

Le scénario ici : la proportion de personnes ayant des calculs rénaux augmente-t-elle le long des tranches d’âge ? Cette leçon l’exécute avec rstatix sur les données renalstone.

Note

Hypothèses de Cochran-Armitage. H₀ : il n’y a aucune tendance linéaire dans la proportion le long des niveaux ordonnés. Hₐ : la proportion évolue de façon monotone (augmente ou diminue) avec l’exposition ordonnée.

Les données : calculs rénaux par tranche d’âge

Nous utilisons le jeu de données renalstone de datarium et nous croisons l’état des calculs × la tranche d’âge (trois tranches ordonnées) en base R :

library(rstatix)

data("renalstone", package = "datarium")
xtab <- xtabs(~ stone + age, data = renalstone)
xtab
     age
stone 30-39 40-49 50-59
  yes   384   536   335
  no    951   869   438

La proportion avec calcul augmente clairement le long des tranches d’âge :

library(rstatix)

data("renalstone", package = "datarium")
xtab <- xtabs(~ stone + age, data = renalstone)

round(prop.table(xtab, margin = 2)["yes", ], 3)   # stone rate per age group
30-39 40-49 50-59 
0.288 0.381 0.433 

≈ 29 % → 38 % → 43 % — une augmentation régulière avec l’âge.

Exécuter le test de tendance

prop_trend_test() prend la table 2 × k et attribue par défaut des scores (1, 2, 3, …) aux colonnes ordonnées :

library(rstatix)

data("renalstone", package = "datarium")
xtab <- xtabs(~ stone + age, data = renalstone)

prop_trend_test(xtab)
# A tibble: 1 × 6
      n statistic        p p.signif    df method               
* <int>     <dbl>    <dbl> <chr>    <dbl> <chr>                
1  3513      49.7 1.78e-12 ****         1 Chi-square trend test

Il existe une tendance croissante significative dans la proportion de calculs rénaux le long des tranches d’âge, χ²(1) = 49.7, p < 0.0001 — le risque augmente avec l’âge. (Notez 1 degré de liberté : le test de tendance exploite l’ordre pour concentrer toute sa puissance sur la composante linéaire, contrairement à un chi-deux simple qui aurait k − 1 ddl.)

Astuce

Scores personnalisés. Par défaut, les niveaux reçoivent les scores 1, 2, 3, …. Si la variable ordonnée a des valeurs numériques significatives (par ex. des doses 0, 10, 50 mg), passez-les avec score = c(0, 10, 50) pour que la tendance reflète l’espacement réel.

Le représenter

library(rstatix)
library(ggpubr)

data("renalstone", package = "datarium")
xtab <- xtabs(~ stone + age, data = renalstone)
prop.df <- data.frame(
  age = colnames(xtab),
  prop = as.numeric(prop.table(xtab, margin = 2)["yes", ])
)
stat.test <- prop_trend_test(xtab)

ggbarplot(prop.df, x = "age", y = "prop", fill = "#3a86d4",
          ylab = "Proportion with stone", xlab = "Age group") +
  labs(subtitle = get_test_label(stat.test, detailed = TRUE))

A bar chart of the proportion with renal stones across three ordered age groups, rising from about 0.29 to 0.43, with the trend-test p-value in the subtitle.

Rapport

Un test de tendance de Cochran-Armitage a montré que la proportion d’individus ayant des calculs rénaux augmentait significativement le long des tranches d’âge ordonnées, χ²(1) = 49.7, p < 0.001 (29 %, 38 %, 43 %).

Le test attribue un score \(x_j\) à chaque niveau ordonné \(j\) et teste si les proportions \(p_j\) suivent une droite dans ces scores. La statistique est essentiellement un \(\chi^2\) à 1 degré de liberté fondé sur la pente de la proportion en fonction du score — de façon équivalente, \(z^2\) issu d’une régression linéaire pondérée de \(p_j\) sur \(x_j\). Concentrer le test sur la composante linéaire (la tendance) est la raison pour laquelle il est plus puissant que le chi-deux général à \((k-1)\) ddl lorsque la véritable alternative est une tendance monotone.

Essayez en direct

Testez une tendance dose-réponse sur votre propre table ordonnée. Modifiez les effectifs et relancez ; le bac à sable démarre au premier Run.

🟢 Avec un agent IA

Demandez à Prova « J’ai un résultat oui/non le long de niveaux de dose ordonnés — testez si la proportion présente une tendance avec le test de Cochran-Armitage » — elle répond avec du code rstatix que vous pouvez exécuter sur votre propre table. The runtime is the judge. Demander à Prova →

Problèmes courants

Votre exposition n’est pas ordonnée. Le test de tendance n’a de sens que lorsque les colonnes ont un ordre significatif (dose, âge, stade). Pour des catégories non ordonnées, utilisez un test du chi-deux simple.

Vous avez ignoré l’espacement réel. Les scores par défaut sont 1, 2, 3, … (espacement égal). Si vos niveaux sont des doses comme 0, 10, 50, passez score = c(0, 10, 50) pour que la tendance reflète les distances réelles.

Les proportions montent puis descendent. Le test de Cochran-Armitage recherche une tendance linéaire monotone ; un motif en U peut donner un résultat non significatif même si les groupes diffèrent clairement — examinez le graphique, et envisagez un chi-deux simple pour détecter une différence quelconque.

Questions fréquentes

Il teste si une proportion binomiale (oui/non) évolue linéairement le long des niveaux ordonnés d’une exposition — par exemple, si un taux de maladie augmente avec la dose ou l’âge. Aussi appelé test du chi-deux pour tendance, il exploite l’ordre des catégories, ce qui le rend plus puissant qu’un chi-deux simple pour détecter une tendance monotone.

Le test du chi-deux d’indépendance simple teste si les proportions diffèrent tout court (sans tenir compte de l’ordre), à k − 1 degrés de liberté. Le test de Cochran-Armitage exploite l’ordre des colonnes pour tester spécifiquement une tendance linéaire, à 1 degré de liberté — de sorte qu’il a plus de puissance lorsqu’une tendance est le véritable motif.

prop_trend_test() attribue par défaut les scores 1, 2, 3, … aux niveaux (espacement égal). Si la variable ordonnée a des valeurs numériques réelles (par ex. des doses), passez-les via score = c(...) pour que la tendance reflète l’espacement réel entre les niveaux.

Testez vos connaissances

  1. Exécutez-le. Dans la cellule interactive, testez une tendance dose-réponse dans la table. Remplissez le blanc. Y a-t-il une tendance significative ?
  2. Conceptuel. Pourquoi le test de tendance n’a-t-il qu’un degré de liberté alors qu’un chi-deux simple sur la même table en a davantage ?

Remplissez le blanc avec prop_trend_test. Pour la question 2, rappelez-vous que le test de tendance se concentre sur une seule direction (la composante linéaire).

xt <- as.table(rbind(event = c(5, 12, 20, 28), none = c(45, 38, 30, 22)))
prop_trend_test(xt)   #> significant increasing trend.

Pour la question 2 : le test de Cochran-Armitage concentre toute sa puissance sur la tendance linéaire — un seul paramètre (la pente de la proportion en fonction du score ordonné) — il utilise donc 1 degré de liberté. Un chi-deux simple laisse les proportions différer selon n’importe quel motif, au coût de k − 1 degrés de liberté, ce qui dilue sa puissance face à une alternative monotone.

AstuceQuel test, quand ?

Conclusion

Vous pouvez désormais exécuter le test de tendance de Cochran-Armitage en R : croisez la table 2 × k et exécutez prop_trend_test() pour tester une tendance linéaire dans une proportion le long de catégories ordonnées — plus puissant qu’un chi-deux simple car il exploite l’ordre. Fixez des scores personnalisés lorsque les niveaux ont un espacement significatif, et utilisez-le chaque fois que vous attendez une réponse à la dose, à l’âge ou à la sévérité.

Leçons connexes

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

Prouvez que vous savez le faire. Maîtrisez toute la série Analyse catégorielle en R — suivez votre parcours, construisez des projets et obtenez un certificat.

Commencer gratuitement →

Passez à Pro — Prova illimité sur vos propres données et un certificat vérifiable qui atteste la compétence.

dès 15 $/mois facturé annuellement

Passer à Pro →

✓ Vous êtes Pro — continuez. The runtime is the judge.

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 = {Test de tendance de Cochran-Armitage en R : tester une
    tendance dans des proportions},
  date = {2026-06-23},
  url = {https://www.datanovia.com/learn/biostatistics/categorical/cochran-armitage-trend-test-in-r},
  langid = {fr}
}
Veuillez citer ce travail comme suit :
“Test de tendance de Cochran-Armitage en R : tester une tendance dans des proportions.” 2026. June 23. https://www.datanovia.com/learn/biostatistics/categorical/cochran-armitage-trend-test-in-r.