Como determinar o tamanho do efeito de um teste de soma e classificação de Wilcoxon em R?

8

Quero determinar se há uma diferença nos valores médios de p entre dois grupos. Para fazer isso, realizo o teste de soma-classificação de Wilcoxon (os dados não são normalmente distribuídos). Por enquanto, tudo bem. Finalmente, quero calcular o tamanho do efeito correspondente. Infelizmente, R não fornece isso. Ele também não fornece um valor az com o qual o tamanho do efeito pode ser facilmente calculado usando: tamanho do efeito = z / sqrt (N)

Aqui está um exemplo de código R:

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

Alguém sabe como obter o tamanho do efeito?

tapetes
fonte
3
Bem-vindo ao SO. Sinalizei sua pergunta para a migração para www.crossvalidated.com, pois sua pergunta é mais estatística do que qualquer outra coisa. Em resumo: o teste Wilcoxon RANK funciona com classificações, por isso não tenho certeza sobre qual tamanho de efeito você está falando. Obviamente, ele não fornece um valor az, pois esse está vinculado a testes paramétricos, não a testes não paramétricos como o Wilcoxon. Wilcoxon deve ser interpretado em termos de mudança de local.
Joris Meys
4
O teste da soma das classificações de Wilcoxon não avalia uma diferença de médias : testa a desigualdade estocástica. A medida adequada de um tamanho de efeito, portanto, é a probabilidade de , menos o valor nulo de . B>A1/2
whuber

Respostas:

13

O estimador que corresponde ao teste de Wilcoxon é o estimador de Hodges-Lehmann; é retornado wilcox.testusando a conf.int=TRUEopção, em "diferença de local".

Para o seu exemplo:

> 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 

Para saber mais sobre o Wilcoxon e as suposições por trás dele, e o que ele realmente testa e outros estimadores não paramétricos, este documento é (possivelmente) útil: www.stat.umn.edu/geyer/old03/5102/notes/rank.pdf

jbowman
fonte
Então, o que você diz é que o tamanho do efeito é wilcox.test(b~a,data=d, conf.int=TRUE)$estimate / sqrt(20)correto?
2

Obtenha z para sua fórmula

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

e calcule o tamanho do efeito com sua fórmula, configurando N para 40

Primigenius
fonte
1
Eu suspeito que esta resposta seria de maior interesse se você pudesse fornecer detalhes adicionais sobre os motivos para usar a coin::wilcoxsign_testfunção R. Além disso, você está se referindo à fórmula OP, ? effect size=z/N
CHL
O motivo pelo qual você usa coin :: wilcoxsign_test é que ele calcula um valor az.
Primitius #
1
Outra maneira de obter z do wilcox.test padrão é o algoritmo Andy Fields implementado em sua função rFromWilcox . E sim, eu estava me referindo ao tamanho do efeito = z / sqrt (N).
Primogenius
2
Obrigado pelo esclarecimento, embora ainda não tenha certeza de que o valor-z seja uma medida adequada do tamanho do efeito. (+1)
chl 05/04