Test di somma dei ranghi di Wilcoxon in R


13

Ho i risultati dello stesso test applicato a due campioni indipendenti:

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)

E voglio calcolare un test di somma dei ranghi di Wilcoxon.

Quando calcolo la statistica a mano, ottengo: T W = rango ( X i ) = 156,5TW

TW=Σrango(Xio)=156.5

Quando lascio eseguire a R un wilcox.test(x, y, correct = F), ottengo:

W = 101.5

Perché? Non dovrebbe la statistica essere restituito solo quando eseguo un firmato rank test con ? O fraintendere il test di somma dei ranghi?W+paired = T

Come posso dire a R di emettere TW


Come parte dei risultati del test, non attraverso qualcosa come:

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"])

Ho fatto una domanda di follow-up sul significato dei diversi modi per calcolare la statistica del test per il test di somma dei ranghi di Wilcoxon

Risposte:


15

L' Noteaiuto nella wilcox.testfunzione spiega chiaramente perché il valore di R è inferiore al tuo:

Nota

La letteratura non è unanime in merito alle definizioni della somma dei ranghi di Wilcoxon e ai test di Mann-Whitney. Le due definizioni più comuni corrispondono alla somma dei ranghi del primo campione con il valore minimo sottratto o meno: R sottrae e S-PLUS no, dando un valore maggiore di m (m + 1) / 2 per un primo campione di taglia m. (Sembra che il documento originale di Wilcoxon usasse la somma non corretta dei ranghi ma le tabelle successive hanno sottratto il minimo.)

n1(n1+1)/2n1

Per quanto riguarda la modifica del risultato, è possibile assegnare l'output da wilcox.testuna variabile, ad esempio a, e quindi manipolare a$statistic- aggiungendo il minimo al suo valore e cambiando il suo nome. Quindi, quando si stampa a(ad esempio digitando a), apparirà nel modo desiderato.

Per vedere a cosa sto arrivando, prova questo:

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

Ad esempio, se lo fai:

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

quindi ottieni:

        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 

n1(n1+1)/2WwU ' a causa di Mann & Whitney. Ci sono molti precedenti da utilizzareW, quindi per me stesso non mi preoccuperei della linea che cambia il nome della statistica, ma se ti va bene, non c'è motivo per cui non dovresti farlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.