Como interpreto o Mann-Whitney U ao usar a interface de fórmula de R

9

Digamos que temos os seguintes dados:

set.seed(123)
data <- data.frame(x = c(rnorm(50, 1, 1), rnorm(50, 5, 2)),
                   y = c(rep('A', 50),    rep('B', 50)))

Qual produz o seguinte boxplot ( boxplot(data$x ~ data$y)):

boxplot

Agora, digamos que eu queira testar se as duas amostras têm os mesmos parâmetros de localização (mediana e / ou média). No meu caso real, os dados claramente não são normais , então decidi executar o teste de Wilcoxon-Mann-Whitney, assim:

wilcox.test(data$x ~ data$y)

No entanto, eu gostaria que a hipótese alternativa fosse que data$yo "segundo" fator de B venha de uma distribuição com parâmetros de posição mais altos. Eu tentei definir o alternativeparâmetro como "maior" e "menor", mas aparentemente as hipóteses alternativas não são o que estou procurando. Por exemplo, alternative = "greater"me diz "hipótese alternativa: a verdadeira mudança de local é maior que 0"; alternative = "less"diz-me "hipótese alternativa: a verdadeira mudança de local é menor que 0".

Como posso ajustar a wilcox.test()função para ter a hipótese alternativa que eu quero (B vem de uma distribuição com parâmetros de posição mais altos que A)? Ou devo apenas usar outro teste?

Waldir Leoncio
fonte
3
Pense no que significa "mudança de local".
Roland
1
Em que sentido seus dados não estão normais. Com base nos gráficos de caixa (possivelmente não é a melhor maneira de decidir, mas o que existe), eles certamente parecem normais o suficiente. Além disso, você gerou seus dados com rnorm(), portanto eles devem ser normais . Eu me pergunto se você está confuso sobre a natureza da suposição de normalidade; pode ajudá-lo a ler este tópico: E se os resíduos forem normalmente distribuídos, mas y não estiver .
gung - Restabelece Monica
1
Estou apenas expandindo o argumento da @ Roland, mas por que você acha que há um problema? Parece dar exatamente o que você deseja.
Gala #
3
P(X>Y)>12
2
(ctd) ... Por outro lado, você disse em um ponto "* Quero testar se as duas amostras são da mesma distribuição *"; já que existem mais maneiras de isso ser falso do que a tendência de uma variável ser maior (por exemplo, uma mudança na variabilidade com locais semelhantes ou uma alteração na assimetria ou no pico), se você realmente deseja apenas testar a igualdade de distribuições x desigualdade deles, você provavelmente deve considerar duas amostras de Kolmogorov-Smirnov. Se você estiver interessado em uma alternativa 'tende a ser maior', o WMW deve estar bem.
Glen_b -Reinstar Monica

Respostas:

9

Tecnicamente, a categoria de referência e a direção do teste dependem da maneira como a variável fator é codificada. Com seus dados de brinquedo:

> wilcox.test(x ~ y, data=data, alternative="greater")

    Wilcoxon rank sum test with continuity correction

data:  x by y 
W = 52, p-value = 1
alternative hypothesis: true location shift is greater than 0 

> wilcox.test(x ~ y, data=data, alternative="less")

    Wilcoxon rank sum test with continuity correction

data:  x by y 
W = 52, p-value < 2.2e-16
alternative hypothesis: true location shift is less than 0 

Observe que a estatística W é a mesma nos dois casos, mas o teste usa caudas opostas à sua distribuição amostral. Agora vamos ver a variável fator:

> levels(data$y)
[1] "A" "B"

Podemos recodificá-lo para tornar "B" o primeiro nível:

> data$y <- factor(data$y, levels=c("B", "A"))

Agora temos:

> levels(data$y)
[1] "B" "A"

Observe que não alteramos os dados eles mesmos , da mesma maneira que a variável categórica é codificada "por baixo do capô":

> head(data)
          x y
1 0.4395244 A
2 0.7698225 A
3 2.5587083 A
4 1.0705084 A
5 1.1292877 A
6 2.7150650 A

> aggregate(data$x, by=list(data$y), mean)
  Group.1        x
1       B 5.292817
2       A 1.034404

Mas as instruções do teste agora estão invertidas:

> wilcox.test(x ~ y, data=data, alternative="greater")

    Wilcoxon rank sum test with continuity correction

data:  x by y 
W = 2448, p-value < 2.2e-16
alternative hypothesis: true location shift is greater than 0 

A estatística W é diferente, mas o valor p é o mesmo que para o alternative="less"teste com as categorias na ordem original. Com os dados originais, ele pode ser interpretado como “a mudança de local de B para A é menor que 0” e com os dados recodificados se torna “a mudança de local de A para B é maior que 0”, mas essa é realmente a mesma hipótese (mas veja os comentários de Glen_b à pergunta para a interpretação correta).

No seu caso, parece que o teste que você deseja é alternative="less"(ou, equivalentemente, alternative="greater"com os dados recodificados). Isso ajuda?

Gala
fonte
Parece que você gosta de algo lá, Gaël. Vou estudar sua resposta e voltar, obrigado pela ajuda!
Waldir Leoncio
Ok, então eu acho que "maior", neste caso, é sempre em referência ao "primeiro" nível, certo? Ok, isso ajuda e acho que resolve o caso. Obrigado novamente!
Waldir Leoncio 29/07
Acabei de encontrar este problema preciso. Obrigado pela excelente explicação!
Davy Kavanagh