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
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.
23 juin 2026
7 juillet 2026
rstatix::prop_trend_test() sur une table de contingence 2 × k (deux lignes de résultat, k colonnes ordonnées).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.
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.
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 :
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 :
30-39 40-49 50-59
0.288 0.381 0.433
≈ 29 % → 38 % → 43 % — une augmentation régulière avec l’âge.
prop_trend_test() prend la table 2 × k et attribue par défaut des scores (1, 2, 3, …) aux colonnes ordonnées :
# 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.)
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.
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))
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.
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.
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 →
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.
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.
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).
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.
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é.
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.
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
✓ Vous êtes Pro — continuez. The runtime is the judge.
Prêt à passer à la vitesse supérieure ?
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.
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 = {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}
}