¿Es la prueba de suma de rango de Wilcoxon la prueba correcta para ver si las donaciones totales difieren?

8

Antecedentes:

Mi software solicita a los usuarios donaciones opcionales de cualquier cantidad. Dividí las solicitudes de donación de prueba entre los usuarios para encontrar la mejor manera de preguntar: 50% obtiene la versión 1 de la solicitud, 50% obtiene la versión 2 de la solicitud, y vemos cuál funciona mejor.

Casi todos los usuarios dan $ 0, pero algunos donan. Los resultados podrían verse así:

         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

Quiero saber si un grupo es un ganador, o si es un empate, o si necesitamos una muestra más grande para estar seguros. (Este ejemplo, simple para la discusión, casi seguramente necesita una muestra más grande para obtener resultados significativos).

Lo que ya mido:

  1. Tenía un grupo tienen una significativamente mayor número de donaciones? ¿Cuánto más grande? Mido este valor p y el intervalo de confianza usando la herramienta ABBA Thumbtack , usando solo la cantidad de donaciones y la cantidad de usuarios, ignorando las cantidades en dólares. Su metodología se describe en "¿Cuáles son las estadísticas subyacentes?" sección de ese enlace. (Está sobre mi cabeza, pero creo que calcula el intervalo de confianza al tomar la diferencia entre las tasas de donación como variables aleatorias normales en el intervalo Agresti-Couli).
  2. ¿Un grupo donó una cantidad significativamente diferente de dinero total ? Mido este valor p realizando una prueba de permutación: volviendo a mezclar repetidamente todos los sujetos 2N en 2 grupos de sujetos N, midiendo la diferencia en el dinero total entre los grupos cada vez, y encontrando la proporción de barajaduras con una diferencia> = la observada diferencia. (Creo que esto es válido en base a este video de Khan Academy que hace lo mismo para las galletas en lugar de dólares).

Prueba de wilcox de R.

Algunas preguntas sobre wilcox.test()R:

  1. Si alimentara wilcox.test(paired=FALSE)la tabla de datos anterior, ¿respondería cualquier pregunta nueva que mis herramientas anteriores no hayan respondido anteriormente, dándome más información para decidir si seguir ejecutando mi prueba / declarar un ganador / declarar un empate?
  2. Si es así, ¿qué pregunta exacta respondería?
Michael Gundlach
fuente
¿Podría describir cuáles son las dos cosas que está haciendo actualmente en la pregunta, en lugar de depender de los enlaces? El segundo, en particular, enlaza con un video, que yo, y espero que otros, no se tomen el tiempo de ver para averiguar lo que está preguntando.
Aaron dejó Stack Overflow
1
Esta pregunta trata claramente sobre cómo se relacionan las diferentes pruebas con los objetivos del estudio. Apenas tiene conexión con la codificación. Está en el tema aquí, y estaría fuera del tema en Stack Overflow .
gung - Restablece a Monica
@ Aaron: hecho. Gracias por la respuesta. Tenía miedo de que el muro de texto disuadiera a la gente de leer la pregunta en primer lugar. Difícil probar mis preguntas para optimizar las respuestas en CrossValidated;)
Michael Gundlach

Respuestas:

7

Si usa wilcox.test()el argumento paired(tenga en cuenta que esto es minúscula y que distingue entre Rmayúsculas y minúsculas) establecido en FALSE, está ejecutando una prueba Mann-WhitneyU . Esta es una prueba de dominio estocástico . Si las distribuciones fueran iguales, y seleccionó una observación de cada versión al azar, la observación de la versión 2 tendría una probabilidad del 50% -50% de ser más alta que la observación de la versión 1. Por otro lado, el valor extraído de la versión 2 podría tener una probabilidad mayor del 50% de ser mayor que (menor que) el valor de la versión 1. Este es el dominio estocástico. No se dice nada sobre cuánto mayor o menor, solo que es mayor o menor.

Eso no me parece adecuado para tus objetivos. Desea la mayor cantidad de dinero total, que puede entenderse como la mayor donación media multiplicada por el número de usuarios. Es posible, debido al sesgo, que una versión pueda tener la media / total más grande, pero que la otra versión sea estocásticamente mayor. (Si ese fuera el caso, desearía la versión anterior). Debido a que esto es lo que finalmente desea, una prueba que sea específica para ese aspecto de las distribuciones es la más adecuada para usted.

Reconozco que sus datos no son remotamente normales y, por lo tanto, la prueba (que podría ser lo que la mayoría de la gente pensaría primero para comparar dos grupos) sería inapropiada. Dados dos grupos continuos, pero no normales, la mayoría de las personas también podrían ir automáticamente con Mann-Whitney. En su caso, iría con una prueba de permutación, por la razón anterior. (Entiendo que esto es lo que hiciste, si entendí correctamente.) Una prueba de permutación es válida aquí, porque asignaste aleatoriamente a los usuarios a los dos grupos; por lo tanto, son intercambiables. t

Para realizar una prueba de permutación, simplemente baraje el indicador de agrupación y calcule las medias y la diferencia entre las medias. Hacer esto muchas veces le permitirá crear una distribución de muestreo de la diferencia entre las medias. Puede comparar su diferencia observada con la distribución de muestreo. Para una prueba de dos colas, tome la proporción más pequeña más allá de su diferencia y multiplíquela por dos. El producto es directamente interpretable como un valor . Aquí hay un ejemplo trabajado con sus datos: 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

Con respecto a la primera pregunta de estudio, es decir, "qué versión produjo un mayor número de donaciones", aunque reconozco que todo el mundo ama a ABBA , también puede hacerlo R. Usaría una prueba de la diferencia de dos proporciones. En eso es . Aquí hay un ejemplo usando sus datos: zRprop.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 
gung - Restablece a Monica
fuente
Buena respuesta, y +2 si pudiera para el enlace ABBA. :)
Aaron dejó Stack Overflow
+1 Buena discusión, especialmente sobre la comparación de medios. Tenga en cuenta que debido a que no hay grandes donaciones, el ejemplo en la pregunta tiene una distribución de muestreo casi normal. El recuento de donaciones de un valor dado en el grupo A es binomial y, con gran precisión, todos estos recuentos son aproximadamente independientes. La prueba t debería funcionar bien. Aquí es un gráfico de la distribución nula: 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
No estoy siendo crítico, pero aquí es donde voy: al examinar las pocas donaciones más altas, puede decidir rápidamente si usar una prueba t o no. Si no puede, la diferencia de medios dependerá en gran medida de esos pocos valores atípicos y, por lo tanto, es poco probable que sea significativa. Estas observaciones simplifican el análisis y también sugieren que uno podría confiar en cálculos de tamaño de muestra basados ​​en la teoría normal para estimar qué tan grande sería necesaria una muestra. Sin embargo, aún mejor sería utilizar un diseño de muestreo secuencial.
whuber
1
@Torvon para pruebas de permutación? Hay muchos, pero dudo que necesite uno: esta es una técnica bastante bien establecida y común.
gung - Restablece a Monica
1
@Torvon, en lugar de simplemente calcular la diferencia de medias y almacenarla, ejecute un MW U y guárdelo.
gung - Restablecer Monica
1

La respuesta de @ gung es correcta. Pero agregaría que dado que sus datos pueden estar sesgados, con una cola derecha enorme, la media puede no ser robusta y, como tal, puede no ser el índice "correcto" para representar la centralidad de su distribución. Por lo tanto, trataría también con soluciones más robustas, como medianas o medios truncados.

utobi
fuente
44
Uno de los puntos más importantes de @gung es que la media y los medios truncados son probablemente irrelevantes. (Vea el párrafo "adecuado para sus objetivos"). Nos importa más la donación media. Por lo tanto, aunque sus soluciones robustas pueden ser procesalmente simples de usar, obtener la respuesta correcta a la pregunta incorrecta podría ser de poca ayuda, o incluso peor.
whuber