Wilcoxon-Rangsummentest in R

13

Ich habe Ergebnisse aus dem gleichen Test auf zwei unabhängige Proben angewendet:

x <- c(17, 12, 13, 16, 9, 19, 21, 12, 18, 17)
y <- c(10, 6, 15, 9, 8, 11, 8, 16, 13, 7, 5, 14)

Und ich möchte einen Wilcoxon-Rang-Summen-Test berechnen.

Wenn ich die Statistik von Hand berechne , erhalte ich: T W = Rang ( X i ) = 156,5TW

TW=Rang(Xich)=156,5

Wenn ich R ausführen lasse wilcox.test(x, y, correct = F), erhalte ich:

W = 101.5

Warum das? Sollte die Statistik nur zurückgegeben werden, wenn ich einen signierten Rangtest mit durchführe ? Oder verstehe ich den Rangsummentest falsch?W+paired = T

Wie kann ich R Ausgang sagen TW


Als Teil der Testergebnisse, nicht durch etwas wie:

dat <- data.frame(v = c(x, y), s = factor(rep(c("x", "y"), c(10, 12))))
dat$r <- rank(dat$v)
T.W <- sum(dat$r[dat$s == "x"])

Ich stellte eine Folgefrage zur Bedeutung der verschiedenen Methoden zur Berechnung der Teststatistik für den Wilcoxon-Rangsummentest

Gemeinschaft
quelle

Antworten:

15

In Noteder Hilfe zur wilcox.testFunktion wird deutlich erklärt, warum der Wert von R kleiner als der von Ihnen ist:

Hinweis

Die Literatur ist sich nicht einig über die Definitionen der Wilcoxon-Rangsumme und der Mann-Whitney-Tests. Die beiden gebräuchlichsten Definitionen entsprechen der Summe der Ränge der ersten Stichprobe, wobei der Minimalwert subtrahiert wird oder nicht: R subtrahiert und S-PLUS nicht, was einen um m (m + 1) / 2 größeren Wert für a ergibt erste Probe der Größe m. (Es scheint, dass Wilcoxons Originalpapier die nicht angepasste Summe der Ränge verwendet hat, nachfolgende Tabellen jedoch das Minimum abgezogen haben.)

n1(n1+1)/2n1

Um das Ergebnis zu ändern , können Sie die Ausgabe von beispielsweise wilcox.testeiner Variablen zuweisen aund dann manipulieren a$statistic- indem Sie das Minimum zu ihrem Wert hinzufügen und ihren Namen ändern. Wenn Sie dann drucken a(z. B. durch Tippen a), sieht es so aus, wie Sie es möchten.

Um zu sehen, worauf ich hinaus will, probieren Sie Folgendes:

a <- wilcox.test(x,y,correct=FALSE)
str(a) 

Also zum Beispiel, wenn Sie dies tun:

n1 <- length(x)
a$statistic <- a$statistic + n1*(n1+1)/2
names(a$statistic) <- "T.W"
a

dann bekommst du:

        Wilcoxon rank sum test with continuity correction

data:  x and y 
T.W = 156.5, p-value = 0.006768
alternative hypothesis: true location shift is not equal to 0 

Es ist durchaus üblich, sich auf den Rangsummentest zu beziehen (unabhängig davon, um wie viel verschoben) n1(n1+1)/2 oder nicht) als auch W oder woder eine nahe Variante (zB hier oder hier ). Es wird auch oft genannt 'U'Wegen Mann & Whitney. Es gibt viele Präzedenzfälle für die VerwendungWDaher würde ich mich nicht um die Zeile kümmern, die den Namen der Statistik ändert, aber wenn es Ihnen passt, gibt es keinen Grund, warum Sie das auch nicht tun sollten.

Glen_b - Setzen Sie Monica wieder ein
quelle