O teste de soma e classificação de Wilcoxon é o teste certo para verificar se o total de doações é diferente?

8

Fundo:

Meu software solicita aos usuários doações opcionais de qualquer valor. Divido as solicitações de doação de teste entre os usuários para encontrar a melhor maneira de perguntar: 50% obtêm a versão 1 da solicitação, 50% obtêm a versão 2 da solicitação e vemos qual deles se sai melhor.

Quase todos os usuários dão US $ 0, mas alguns doam. Os resultados podem ser assim:

         Number of users  Number of donations   Dollar amounts donated
GROUP A  10,000           10                    40,20,20,20,15,10,10,5,5,5
GROUP B  10,000           15                    50,20,10,10,10,10,10,10,5,5,5,5,5,5,5

Quero saber se um grupo é vencedor, ou se é um empate, ou se precisamos de uma amostra maior para ter certeza. (Este exemplo, mantido simples para discussão, quase certamente precisa de uma amostra maior para obter resultados significativos.)

O que eu já meço:

  1. Um grupo teve um número significativamente maior de doações? Quanto maior? Eu medi esse valor de p e o intervalo de confiança usando a ferramenta ABBA Thumbtack , usando apenas o número de doações e o número de usuários, ignorando os valores em dólares. Sua metodologia é descrita em "Quais são as estatísticas subjacentes?" seção desse link. (Está acima da minha cabeça, mas acredito que calcula o intervalo de confiança considerando a diferença entre as taxas de doação como variáveis ​​aleatórias normais no intervalo Agresti-Couli.)
  2. Um grupo doou uma quantidade significativamente diferente de dinheiro total ? Eu medi esse valor de p executando um teste de permutação: reordenando repetidamente todos os indivíduos 2N em 2 grupos de sujeitos N, medindo a diferença de dinheiro total entre os grupos a cada vez e encontrando a proporção de embaralhamento com uma diferença> = o observado diferença. (Eu acredito que isso é válido com base neste vídeo da Khan Academy, fazendo a mesma coisa com crackers em vez de dólares.)

Wilcox.test de R:

Algumas perguntas agora sobre wilcox.test()no R:

  1. Se eu fornecesse wilcox.test(paired=FALSE)a tabela de dados acima, ela responderia a novas perguntas ainda não respondidas pelas minhas ferramentas acima, fornecendo mais informações para decidir se continuaria executando meu teste / declararia um vencedor / declararia um empate?
  2. Se sim, que pergunta exata ela responderia?
Michael Gundlach
fonte
Você poderia descrever quais são as duas coisas que você está fazendo atualmente em questão, em vez de depender de links? O segundo, em particular, vincula a um vídeo, que eu, e espero que outros, não tenha tempo para assistir para descobrir o que você está perguntando.
Aaron saiu de Stack Overflow
1
Esta questão é claramente sobre como os diferentes testes se relacionam com os objetivos do estudo. Quase não tem nenhuma conexão com a codificação. É sobre tópico aqui e seria sobre tópico sobre estouro de pilha .
gung - Restabelece Monica
@ Aaron: pronto. Obrigado pelo feedback. Eu temia que o texto dissuadisse as pessoas de lerem a pergunta em primeiro lugar. Difícil de teste de divisão meus qusetions para otimizar respostas sobre CrossValidated;)
Michael Gundlach

Respostas:

7

wilcox.test()pairedRFALSEU

Isso não me parece um bom ajuste para seus objetivos. Você deseja o dinheiro total, que pode ser entendido como a maior doação média vezes o número de usuários. É possível, devido à inclinação, que uma versão possa ter a maior média / total, mas que a outra versão seja estocástica maior. (Se fosse esse o caso, você desejaria a versão anterior.) Como é isso que você deseja, um teste específico para esse aspecto das distribuições é mais apropriado para você.

t

p

A            = c(rep(0, 9990), 40,20,20,20,15,10,10,5,5,5)
B            = c(rep(0, 9985), 50,20,10,10,10,10,10,10,5,5,5,5,5,5,5)
realized.dif = mean(B)-mean(A);  realized.dif  # [1] 0.0015

set.seed(6497)
donations = stack(list(A=A, B=B))
values    = donations$values
ind       = donations$ind
difs      = vector(length=1000)
for(i in 1:1000){
  ind     = sample(ind)
  difs[i] = mean(values[ind=="B"])-mean(values[ind=="A"])
}
difs = sort(difs)
mean(difs>=realized.dif)    # [1] 0.459  # a 1-tailed test, if Ha: B>A a-priori
mean(difs>=realized.dif)*2  # [1] 0.918  # a 2-tailed test

RzRprop.test()

prop.test(rbind(c(10, 9990),
                c(15, 9985) ))
#  2-sample test for equality of proportions with continuity correction
# 
# data:  rbind(c(10, 9990), c(15, 9985))
# X-squared = 0.6408, df = 1, p-value = 0.4234
# alternative hypothesis: two.sided
# 95 percent confidence interval:
#   -0.0015793448  0.0005793448
# sample estimates:
# prop 1 prop 2 
# 0.0010 0.0015 
- Reinstate Monica
fonte
Boa resposta e +2 se eu puder pelo link do ABBA. :)
Aaron saiu de Stack Overflow
+1 Boa discussão, especialmente sobre comparação de meios. Observe que, como não há doações enormes, o exemplo na pergunta tem uma distribuição de amostra quase normal. A contagem de doações de um determinado valor no grupo A é binomial e, com alta precisão, todas essas contagens são aproximadamente independentes. O teste t deve funcionar bem. Aqui está um gráfico da distribuição nulo: b <- function(n) dbinom(0:n, n, 1/2); p <- apply(expand.grid(b(1), b(1), b(4), b(6), b(10)), 1, prod); n <- as.matrix(expand.grid(0:1, 0:1, 0:4, 0:6, 0:10)) %*% c(50,40,20,10,5); plot(dist <- aggregate(p, list(n), sum)).
whuber
1
Não estou sendo crítico, mas é para onde vou: examinando as poucas doações mais altas, você pode decidir rapidamente se deve usar um teste t ou não. Se você não puder, a diferença de médias dependerá fortemente desses poucos valores extremos e, portanto, é improvável que seja significativa. Essas observações simplificam a análise e também sugerem que se pode confiar em cálculos de tamanho de amostra baseados na teoria normal para estimar o tamanho necessário de uma amostra. Melhor ainda, porém, seria usar um projeto de amostragem seqüencial.
whuber
1
@ Torvon para teste de permutação? Existem muitas, mas duvido que você precise de uma - essa é uma técnica bem estabelecida e comum.
gung - Restabelece Monica
1
@ Torvon, em vez de simplesmente calcular a diferença média e armazená-la, execute um MW U e armazene-o.
gung - Restabelece Monica
1

A resposta de @ gung está correta. Mas eu acrescentaria que, como seus dados podem estar distorcidos, com uma enorme cauda direita, a média pode não ser robusta e, como tal, pode não ser o índice "certo" para representar a centralidade da sua distribuição. Por isso, tentaria também soluções mais robustas, como medianas ou meios truncados.

utobi
fonte
4
Um dos pontos mais importantes de @ gung é que os meios mediano e truncado são provavelmente irrelevantes. (Veja o parágrafo "ajuste adequado aos seus objetivos".) Nós nos preocupamos mais com a doação média. Portanto, embora suas soluções robustas possam ser processualmente simples de usar, obter a resposta certa para a pergunta errada pode ser de pouca ajuda - ou até pior.
whuber