Nouveau dans 
Tests non-paramétriques de tendance
Les tests de tendance concernent les réponses dans des groupes ordonnés. Ils vérifient si les valeurs des réponses ont tendance à augmenter ou à diminuer dans les groupes.
Les tests de tendance sont généralement utilisés lorsqu’il n’y a qu’une petite quantité de données et aucune covariable à contrôler, et qu’un test donnant une valeur p valide dans de petits échantillons est souhaité. nptrend a une option pour calculer des valeurs p exactes basées sur des permutations de Monte Carlo ou une énumération complète de la distribution de permutation (cette dernière option n’est pratique que pour des échantillons extrêmement petits).
nptrend effectue quatre tests différents pour la tendance :
- le test de Cochran-Armitage,
- le test de Jonckheere-Terpstra,
- le test de tendance linéaire par linéaire, et
- un test utilisant les rangs développé par Cuzick.
Pour calculer la statistique de Cochran-Armitage pour la tendance, vous tapez
. nptrend relief, group(dose) carmitage
Voyons comment cela fonctionne
Pour le test de Cochran-Armitage (lorsque la réponse est 0/1), le test de tendance linéaire et le test de Cuzick, les groupes ont également des scores. Il teste la tendance des proportions de réponses positives dans les groupes.
Nous avons ici des données fictives provenant d’un essai clinique d’un nouveau médicament pour le traitement des migraines. La variable dose contient la dose de médicament administrée à un sujet. La variable soulagement est 0/1, 0 indiquant aucun soulagement et 1 un soulagement partiel ou total.
Voici un tableau de ces données :
. webuse migraine (Fictional migraine drug data) . tabulate dose relief, row nokey
Relief of migraine | ||||
Mycureit | after 2 hours | |||
dose in mg | 0 1 | Total | ||
10 | 80 120 | 200 | ||
40.00 60.00 | 100.00 | |||
20 | 92 108 | 200 | ||
46.00 54.00 | 100.00 | |||
30 | 83 117 | 200 | ||
41.50 58.50 | 100.00 | |||
40 | 63 137 | 200 | ||
31.50 68.50 | 100.00 | |||
Total | 318 482 | 800 | ||
39.75 60.25 | 100.00 |
Nous vérifierons s’il existe une tendance par dose dans la proportion de sujets rapportant un soulagement.
. nptrend relief, group(dose) carmitage Cochran–Armitage test for trend Number of observations = 800 Number of groups = 4 Number of response levels = 2
Mean | ||||
response Number | ||||
Group | Group score score of obs | |||
dose | ||||
10 | 10 .6 200 | |||
20 | 20 .54 200 | |||
30 | 30 .585 200 | |||
40 | 40 .685 200 | |||
nptrend affiche d’abord un tableau du score moyen de réponse par groupe. Dans ce cas, le score moyen de réponse est simplement la proportion de sujets du groupe qui se disent soulagés.
La statistique z de Cochran-Armitage teste une tendance linéaire. Une statistique X2 qui teste l’écart par rapport à une tendance linéaire est également calculée.
Lorsque la statistique z pour la tendance linéaire ou la statistique X2 pour l’écart par rapport à la tendance linéaire est grande, cela signifie que le test d’indépendance entre la réponse et le groupe est rejeté. z étant grand signifie qu’il y a une tendance linéaire qui rejette l’indépendance.X2 étant grand signifie qu’il y a des différences autres que la tendance linéaire qui rejettent l’indépendance.
Dans l’exemple ci-dessus, le test linéaire de tendance a donné une valeur p de 0,0526, ce qui n’est pas tout à fait significatif au niveau de 0,05. Le test d’écart par rapport à la tendance a donné une valeur p de 0,0656, ce qui signifie qu’il existe des preuves faibles, n’atteignant pas le seuil de signification, d’une association non linéaire entre la dose et le soulagement.
Des tendances autres que linéaires peuvent également être testées à l’aide de l’option scoregroup(). Dans cet exemple, l’option scoregroup(1 4 9 16) permet de tester une tendance quadratique de la dose.
Le test de Cochran-Armitage exige que les réponses soient 0/1 ou que l’indicateur de groupe soit 0/1. Les autres tests de tendance calculés par nptrend n’ont aucune restriction sur la réponse ; la variable réponse peut avoir n’importe quelle valeur.
Voici un exemple dont les réponses sont l’exposition oculaire aux rayons ultraviolets pour 32 paires de lunettes de soleil. Les lunettes de soleil sont classées en 3 groupes en fonction de la quantité de lumière visible transmise. Nous énumérons certaines des données :
. webuse sg (Ultraviolet radiation exposure with sunglasses) . list in 1/12, separator(6)
group exposure | |||
1. | < 25% 1.4 | ||
2. | < 25% 1.4 | ||
3. | < 25% 1.4 | ||
4. | < 25% 1.6 | ||
5. | < 25% 2.3 | ||
6. | < 25% 2.5 | ||
7. | 25% to 35% .9 | ||
8. | 25% to 35% 1 | ||
9. | 25% to 35% 1.1 | ||
10. | 25% to 35% 1.1 | ||
11. | 25% to 35% 1.2 | ||
12. | 25% to 35% 1.2 | ||
Le test de Jonckheere-Terpstra est utile lorsque la tendance n’est pas claire et que l’on veut simplement tester une tendance quelconque. Il permet de vérifier si l’ordre des réponses est associé à l’ordre des groupes.
Pour calculer le test de Jonckheere-Terpstra, nous spécifions l’option jterpstra.
. nptrend exposure, group(group) jterpstra Jonckheere–Terpstra test for trend Number of observations = 32 Number of groups = 3 Number of response levels = 23
Mean | ||||
response Number | ||||
Group | Group score score of obs | |||
group | ||||
< 25% | 1 1.766667 6 | |||
25% to 35% | 2 2.311111 18 | |||
> 35% | 3 4.85 8 | |||
Nous constatons que le score moyen des réponses augmente avec l’indicateur de groupe, mais la valeur p du test de Jonckheere-Terpstra est de 0,1346, ce qui n’est pas significatif au niveau de 0,05.
Étant donné que la statistique de Jonckheere-Terpstra teste tout type de tendance dans les réponses entre les groupes ordonnés, elle ne sera pas aussi puissante qu’un test qui émet une hypothèse précise sur la véritable tendance. Le test de tendance linéaire par linéaire vous permet de faire exactement cela. Le test de tendance linéaire par linéaire utilise les valeurs numériques des réponses pour spécifier la tendance testée. La manière dont la tendance est supposée varier entre les groupes est spécifiée par les valeurs numériques de la variable de groupe.
La statistique linéaire-par-linéaire est équivalente au coefficient de corrélation de Pearson, la différence étant que le coefficient de corrélation de Pearson est normalisé par les écarts types des scores. Les valeurs p sont légèrement différentes car la valeur p du test linéaire par ligne est basée sur sa distribution de permutation alors que la valeur p du coefficient de corrélation de Pearson suppose la normalité.
Pour calculer le test linéaire par linéaire, nous spécifions l’option linear. Nous spécifions également notable pour supprimer l’affichage des scores moyens des réponses par groupe.
. nptrend exposure, group(group) linear notable Linear-by-linear test for trend Number of observations = 32 Number of groups = 3 Number of response levels = 23 Statistic = .7035156 Std. err. = .3063377 z = 2.297 Prob > |z| = 0.0216
La valeur p du test linéaire par ligne est de 0,0216, ce qui est considérablement différent de la valeur p calculée par le test de Jonckheere-Terpstra, qui était de 0,1346. Cela n’est pas surprenant car le test linéaire par ligne suppose une tendance spécifique basée sur des valeurs numériques, alors que la statistique de Jonckheere-Terpstra teste toute tendance.
Le quatrième test de tendance calculé par nptrend est un test basé sur les rangs développé par Cuzick.
. nptrend exposure, group(group) cuzick . nptrend exposure, group(group) cuzick notable Cuzick's test with rank scores Number of observations = 32 Number of groups = 3 Number of response levels = 23 Statistic = 1.65625 Std. err. = 1.090461 z = 1.519 Prob > |z| = 0.1288
Dans ce cas, il produit une valeur p similaire à la valeur p du test de Jonckheere-Terpstra.
Valeurs p exactes
nptrend calcule également les valeurs p exactes en utilisant les permutations de Monte Carlo lorsque l’option exact est spécifiée. Ici, nous calculons la valeur p exacte pour le test de Jonckheere-Terpstra.
. nptrend exposure, group(group) jterpstra notable exact Permutations (10,000): ..........1,000..........2,000..........3,000..........4,000..........5,00 > 0..........6,000..........7,000..........8,000..........9,000..........10,000 done Jonckheere–Terpstra test for trend Number of observations = 32 Number of groups = 3 Number of response levels = 23 Statistic = 82 Std. err. = 54.80056 z = 1.496 Prob > |z| = 0.1346 Exact prob = 0.1510 (10,000 Monte Carlo permutations)
Par défaut, 10 000 permutations de Monte Carlo sont utilisées. Cela a donné une valeur p exacte de 0,1510, légèrement différente de la valeur p de 0,1346, calculée en utilisant une approximation normale.
Les permutations de Monte Carlo donnent des résultats avec une erreur aléatoire, donc pour plus de précision, plus de permutations peuvent être calculées. Ci-dessous, nous utilisons 100 000 permutations, et un point est affiché toutes les 1 000 permutations pour suivre la progression. Nous spécifions une graine de nombres aléatoires pour pouvoir dupliquer les résultats et l’option show, qui affiche un tableau détaillé des résultats de Monte Carlo.
. nptrend exposure, group(group) jterpstra notable /// > exact(montecarlo, reps(100000) dots(1000) rseed(1234) show) Permutations (100,000): ..........10,000..........20,000..........30,000..........40,000.... > ......50,000..........60,000..........70,000..........80,000..........90,000..........100, > 000 done Monte Carlo permutation results Number of observations = 32 Permutation variable: group Number of permutations = 100,000
Monte Carlo error | |||
T | T(obs) Test c n p | SE(p) [95% CI(p)] | |
_pm_1 | 82 lower 93358 100000 .9336 | .0008 .9320 .9351 | |
upper 6874 100000 .0687 | .0008 .0672 .0703 | ||
two-sided .1375 | .0011 .1353 .1396 | ||
a valeur p exacte issue du calcul de Monte Carlo est de 0,1375, proche de la valeur p approximative de 0,1346. D’après le tableau détaillé des résultats, nous voyons que l’intervalle de confiance à 95% pour la valeur p de Monte Carlo est de [0.1353, 0.1396], qui n’inclut pas la valeur p approximative.
Cet exemple ne comporte que 32 observations. Si nous souhaitons publier les résultats, nous voudrons probablement exécuter à nouveau nptrend, en spécifiant 1 000 000 de permutations ou plus pour réduire davantage l’erreur de Monte Carlo. Les permutations sont générées à l’aide d’un algorithme rapide, et le calcul ne prend pas beaucoup de temps.
Pour les ensembles de données extrêmement petits, l’option exact(enumerate) peut être utilisée pour énumérer complètement la distribution de permutation. Cela donne une valeur p exacte sans aucune erreur de Monte Carlo