Teste de soma da classificação de Wilcoxon em R

13

Eu tenho resultados do mesmo teste aplicado a duas amostras independentes:

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 eu quero calcular um teste de soma da classificação de Wilcoxon.

Quando calculo a estatística manualmente, obtenho: T W = rank ( X i ) = 156,5TW

TW=classificação(XEu)=156,5

Quando deixo R executar a wilcox.test(x, y, correct = F), recebo:

W = 101.5

Por que é que? A estatística não deve ser retornada apenas quando eu realizar um teste de classificação assinado ? Ou entendo mal o teste da soma da classificação?W+paired = T

Como posso informar R para produzir TW


Como parte dos resultados do teste, não através de algo como:

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

Fiz uma pergunta de acompanhamento sobre o significado das diferentes maneiras de calcular a estatística do teste para o teste da soma da classificação de Wilcoxon

Comunidade
fonte

Respostas:

15

O Notena ajuda nowilcox.test função explica claramente por que o valor de R é menor que o seu:

Nota

A literatura não é unânime quanto às definições do somatório de Wilcoxon e dos testes de Mann-Whitney. As duas definições mais comuns correspondem à soma das classificações da primeira amostra com o valor mínimo subtraído ou não: R subtrai e S-PLUS não, fornecendo um valor que é maior em m (m + 1) / 2 para um valor primeira amostra de tamanho m. (Parece que o artigo original de Wilcoxon usava a soma não-ajustada das classificações, mas as tabelas subsequentes subtraíam o mínimo.)

n1(n1+1)/2n1

Quanto à modificação do resultado, você pode atribuir a saída de wilcox.testuma variável, digamos a, e depois manipular a$statistic- adicionando o mínimo ao valor e alterando o nome. Então, quando você imprimir a(por exemplo, digitandoa ), ele terá a aparência que você deseja.

Para ver no que estou conseguindo, tente o seguinte:

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

Então, por exemplo, se você fizer isso:

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

então você obtém:

        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)/2WWvocêW

Glen_b -Reinstate Monica
fonte