Wie kann man die Effektgröße eines Wilcoxon-Rang-Summen-Tests in R bestimmen?

8

Ich möchte feststellen, ob es einen Unterschied in den mittleren p-Werten zwischen zwei Gruppen gibt. Dazu führe ich einen Wilcoxon-Rang-Summen-Test durch (die Daten sind nicht normal verteilt). So weit, ist es gut. Zum Schluss möchte ich die entsprechende Effektgröße berechnen. Leider bietet R dies nicht an. Es gibt auch keinen az-Wert, mit dem die Effektgröße einfach berechnet werden kann mit: Effektgröße = z / sqrt (N)

Hier ist ein Beispiel für einen R-Code:

a=rep(0:1,each=20)                            #grouping variable
b=c(rnorm(20, .03,.01), rnorm(20, .02, .009)) #vector of p-values

d=cbind(a,b)

test = wilcox.test(b ~ a, data = d)     #perform Wilcoxon rank-sum test
test

Weiß jemand, wie man die Effektgröße erhält?

Matten
quelle
3
Willkommen bei SO. Ich habe Ihre Frage für die Migration zu www.crossvalidated.com markiert, da Ihre Frage statistischer ist als alles andere. Kurz gesagt: Der Wilcoxon RANK-Test funktioniert mit Rängen, daher bin ich mir nicht sicher, von welcher Effektgröße Sie sprechen. Offensichtlich gibt es keinen Az-Wert, da dieser mit parametrischen Tests verknüpft ist, nicht mit nicht parametrischen Tests wie Wilcoxon. Wilcoxon muss als Standortverschiebung interpretiert werden.
Joris Meys
4
Der Wilcoxon - Rangsummentest keinen Unterschied in bewerten Mittel : es prüft für stochastische Ungleichheit. Das richtige Maß für eine Effektgröße ist daher die Wahrscheinlichkeit, dass minus dem Nullwert von . 1 / 2B>A1/2
whuber

Antworten:

13

Der Schätzer, der dem Wilcoxon-Test entspricht, ist der Hodges-Lehmann-Schätzer; Es wird wilcox.testmit der conf.int=TRUEOption unter "Standortunterschied" zurückgegeben.

Für Ihr Beispiel:

> wilcox.test(b~a,data=d, conf.int=TRUE)

    Wilcoxon rank sum test

data:  b by a 
W = 355, p-value = 6.914e-06
alternative hypothesis: true location shift is not equal to 0 
95 percent confidence interval:
 0.008657301 0.021523993 
sample estimates:
difference in location 
            0.01442617 

Dieses Dokument ist (möglicherweise) hilfreich, um mehr über Wilcoxon und die dahinter stehenden Annahmen sowie die tatsächlichen Tests und andere nichtparametrische Schätzer zu erfahren: www.stat.umn.edu/geyer/old03/5102/notes/rank.pdf

Jbowman
quelle
Sie sagen also, dass die Effektgröße wilcox.test(b~a,data=d, conf.int=TRUE)$estimate / sqrt(20)korrekt ist?
2

Holen Sie sich das z für Ihre Formel von

library(coin)
mydf <- as.data.frame(d)
wilcoxsign_test(b ~ a, data = mydf, distribution="exact")

und berechnen Sie die Effektgröße mit Ihrer Formel, indem Sie N auf 40 setzen

Primigenius
quelle
1
Ich vermute, dass diese Antwort von höherem Interesse wäre, wenn Sie zusätzliche Details zu den Gründen für die Verwendung der coin::wilcoxsign_testR-Funktion angeben könnten . Beziehen Sie sich auch auf die OP-Formel ? effect size=z/N
Chl
Der Grund für die Verwendung von coin :: wilcoxsign_test ist, dass der az-Wert berechnet wird.
Primigenius
1
Eine andere Möglichkeit, z aus dem Standard wilcox.test zu erhalten, ist der in seiner Funktion rFromWilcox implementierte Algorithmus Andy Fields . Und ja, ich bezog mich auf die Effektgröße = z / sqrt (N).
Primigenius
2
Vielen Dank für die Klarstellung, obwohl ich mir immer noch nicht sicher bin, ob dieser Z-Wert ein angemessenes Maß für die Effektgröße ist. (+1)
chl