Neu in 
Nichtparametrische Tests für Trend
Trend tests involve responses in ordered groups. They test whether response values tend to either increase or decrease across groups.
Trend tests are typically used when there is only a small amount of data and no covariates to control for, and a test yielding a p-value valid in small samples is desired. nptrend has an option to compute exact p-values based on Monte Carlo permutations or a full enumeration of the permutation distribution (the latter practical only for extremely small samples).
nptrend performs four different tests for trend:
- the Cochran–Armitage test,
- the Jonckheere–Terpstra test,
- the linear-by-linear trend test, and
- a test using ranks developed by Cuzick.
To calculate the Cochran–Armitage statistic for trend, you type
. nptrend relief, group(dose) carmitage
Zeigen Sie, wie es funktioniert
Für den Cochran-Armitage-Test (wenn die Antwort 0/1 ist), den Test mit linearem Trend und den Cuzick-Test haben die Gruppen ebenfalls Scores. Es wird der Trend in den Anteilen der positiven Antworten über die Gruppen hinweg getestet.
Hier haben wir fiktive Daten aus einer klinischen Studie mit einem neuen Medikament zur Behandlung von Migräne. Die Variable Dosis enthält die Dosis des Medikaments, die einem Probanden verabreicht wurde. Die Variable Linderung ist 0/1, wobei 0 keine Linderung und 1 teilweise oder vollständige Linderung anzeigt.
Hier finden Sie eine tabellarische Auflistung der Daten:
. 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 |
Wir werden testen, ob es einen Trend nach Dosis im Anteil der Probanden gibt, die Erleichterung berichten.
. 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 zeigt zunächst eine Tabelle mit dem mittleren Antwortwert nach Gruppe an. Der mittlere Antwortwert ist in diesem Fall einfach der Anteil der Probanden in der Gruppe, die Erleichterung melden.
Die Cochran-Armitage z-Statistik testet auf einen linearen Trend. Es wird auch eine X2-Statistik berechnet, die auf die Abweichung von einem linearen Trend testet.
Wenn entweder die z-Statistik für den linearen Trend oder die X2-Statistik für die Abweichung vom linearen Trend groß ist, bedeutet dies, dass der Test auf Unabhängigkeit zwischen Antwort und Gruppe zurückgewiesen wird. Wenn z groß ist, bedeutet dies, dass es einen linearen Trend gibt, der die Unabhängigkeit zurückweist.Wenn X2 groß ist, bedeutet dies, dass es andere Unterschiede als den linearen Trend gibt, die die Unabhängigkeit zurückweisen.
Im obigen Beispiel ergab der lineare Test für den Trend einen p-Wert von 0,0526, der auf dem Niveau von 0,05 nicht ganz die Signifikanz erreicht. Der Test auf Abweichung vom Trend ergab einen p-Wert von 0,0656, d. h. es gibt schwache Hinweise, die keine Signifikanz erreichen, für einen nichtlinearen Zusammenhang zwischen Dosis und Linderung.
Andere als lineare Trends können auch mit der Option scoregroup() getestet werden. In diesem Beispiel würde die Angabe von scoregroup(1 4 9 16) einen quadratischen Trend der Dosis testen.
Der Cochran-Armitage-Test erfordert, dass die Antworten 0/1 sind oder der Gruppenindikator 0/1 ist. Die anderen von nptrend berechneten Trendtests haben keine Einschränkung bezüglich der Antwort; die Antwortvariable kann jeden Wert haben.
Hier ist ein Beispiel, bei dem die Antworten die Exposition der Augen gegenüber ultravioletter Strahlung für 32 Sonnenbrillenpaare darstellen. Die Sonnenbrillen werden nach der Menge des durchgelassenen sichtbaren Lichts in 3 Gruppen eingeteilt. Wir listen einige der Daten auf:
. 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 | ||
Der Jonckheere-Terpstra-Test ist nützlich, wenn es nicht klar ist, was der Trend sein könnte, und wir einfach auf irgendeinen Trend testen wollen. Er testet, ob die Reihenfolge der Antworten mit der Reihenfolge der Gruppen verbunden ist.
Um den Jonckheere-Terpstra-Test zu berechnen, geben wir die Option jterpstra an.
. 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 | |||
Wir sehen, dass der mittlere Antwortwert mit steigendem Gruppenindikator zunimmt, aber der p-Wert aus dem Jonckheere-Terpstra-Test beträgt 0,1346 und erreicht damit keine Signifikanz auf dem 0,05-Niveau.
Da die Jonckheere-Terpstra-Statistik auf jede Art von Trend in den Antworten über geordnete Gruppen hinweg testet, ist sie nicht so aussagekräftig wie ein Test, der den wahren Trend genau vermutet. Der linear-by-lineare Trendtest ermöglicht Ihnen genau dies zu tun. Der linear-by-lineare Trendtest verwendet die numerischen Werte der Antworten, um den zu testenden Trend zu spezifizieren. Die Hypothese, dass der Trend zwischen den Gruppen variiert, wird durch die numerischen Werte der Gruppenvariablen angegeben.
Die linear-by-lineare Statistik ist äquivalent zum Pearson-Korrelationskoeffizienten. Der Unterschied besteht darin, dass der Pearson-Korrelationskoeffizient durch die Standardabweichungen der Scores standardisiert wird. Die p-Werte sind leicht unterschiedlich, da der p-Wert für den linear-bis-linearen Test auf seiner Permutationsverteilung basiert, während der p-Wert für den Pearson-Korrelationskoeffizienten Normalität annimmt.
Um den linearen Test zu berechnen, geben wir die Option linear an. Wir geben auch notable an, um die Anzeige der mittleren Antwortwerte nach Gruppe zu unterdrücken.
. 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
Der p-Wert aus dem linear-by-linearen Test beträgt 0,0216, was sich deutlich von dem durch den Jonckheere-Terpstra-Test berechneten p-Wert unterscheidet, der 0,1346 beträgt. Dies ist nicht überraschend, da der linear-by-lineare Test einen bestimmten Trend basierend auf Zahlenwerten annimmt, während die Jonckheere-Terpstra-Statistik auf einen beliebigen Trend testet.
Der vierte von nptrend berechnete Trendtest ist ein von Cuzick entwickelter Test auf Basis von Rängen.
. 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
In diesem Fall ergibt sich ein p-Wert, der dem p-Wert aus dem Jonckheere-Terpstra-Test ähnlich ist.
Exakte p-Werte
nptrend berechnet auch exakte p-Werte unter Verwendung von Monte-Carlo-Permutationen, wenn die Option exact angegeben ist. Hier wird der exakte p-Wert für den Jonckheere-Terpstra-Test berechnet.
. 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)
Standardmäßig werden 10.000 Monte-Carlo-Permutationen verwendet. Dies ergibt einen exakten p-Wert von 0,1510, der sich geringfügig von dem p-Wert von 0,1346 unterscheidet, der mit einer normalen Näherung berechnet wurde.
Monte-Carlo-Permutationen liefern Ergebnisse mit Zufallsfehlern, daher können für eine höhere Genauigkeit mehr Permutationen berechnet werden. Im Folgenden verwenden wir 100.000 Permutationen und lassen bei jeder 1.000sten Permutation einen Punkt anzeigen, um den Fortschritt zu überwachen. Wir geben einen Zufallszahlen-Seed an, damit wir die Ergebnisse duplizieren können, und die Option show, die eine detaillierte Tabelle mit den Monte-Carlo-Ergebnissen anzeigt.
. 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 | ||
er exakte p-Wert aus der Monte-Carlo-Berechnung beträgt 0,1375 und liegt damit nahe am ungefähren p-Wert von 0,1346. Aus der detaillierten Ergebnistabelle geht hervor, dass das 95%-Konfidenzintervall für den Monte-Carlo-p-Wert [0,1353, 0,1396] beträgt, was den ungefähren p-Wert nicht
Dieses Beispiel hat nur 32 Beobachtungen. Sollten wir die Ergebnisse veröffentlichen wollen, würden wir wahrscheinlich nptrend erneut ausführen und dabei 1.000.000 oder mehr Permutationen angeben, um den Monte-Carlo-Fehler weiter zu reduzieren. Die Permutationen werden mit einem schnellen Algorithmus generiert, und die Berechnung ist nicht zeitaufwändig.
Für extrem kleine Datensätze kann die Option exact(enumerate) verwendet werden, um die Permutationsverteilung vollständig aufzuzählen. Sie liefert einen exakten p-Wert ohne Monte-Carlo-Fehler.