01 · Punto de partida
Dos sucursales, una pregunta
Querés comparar esperas de dos sucursales (o real vs. simulado con corridas independientes). Las distribuciones son sesgadas y hay atípicos: el t de medias es frágil. Mann-Whitney pregunta algo más robusto:
- ¿Un dato nuevo de B suele superar a uno de A?
- ¿Cuántos de los nA×nB duelos gana cada grupo?
- ¿Esa dominancia es azar o sistemática?
- ¿Cuánto vale en la práctica (además del p)?
02 · Definición
Rangos, U y supuestos
Rangos conjuntos
Se juntan N = nA+nB datos, se ordenan y se reparten rangos (promedio en empates). R_B = suma de rangos de B.
Duelos
U_B = R_B − nB(nB+1)/2 cuenta pares (b>a). U_A + U_B = nA·nB. Bajo H0, U ≈ mitad.
Supuestos
Independencia dentro y entre grupos, variable al menos ordinal/continua. No pide normalidad ni igual varianza (para dominancia).
| P(B>A) | Lectura | Ejemplo |
|---|---|---|
| 0,50 | Empate | Misma distribución |
| 0,65 | Ventaja moderada | B supera 2 de cada 3 veces |
| 0,80+ | Dominancia clara | Decisión práctica, no solo p |
03 · Método
Protocolo en 5 pasos
- 1Verificar independencia.
Dos grupos distintos sin apareo. Si hay pareo por día o tanque, es Wilcoxon (Tema 17), no este.
- 2Rankear juntos con empates promediados.
Ordenar N valores; empates comparten promedio. Anotar R_A y R_B.
- 3Calcular U y P(B>A).
U_B = R_B − nB(nB+1)/2; efecto = U_B/(nA·nB). Informar ambos, no solo p.
- 4Aproximar z si n ≥ 10.
μ = nA·nB/2, σ = √(nA·nB(N+1)/12), z = (U−μ)/σ. Con n chico usar tabla exacta.
- 5Dictaminar bilateral con efecto.
«U = 190/256, p ≈ 0,01, P = 0,74: B domina». Sin efecto, el p es titular sin noticia.
04 · Lectura fina
Medianasy empates
Medianas
Solo si misma forma
Con formas parecidas, dominancia ≈ mediana B > mediana A. Con formas distintas, informar ambas distribuciones, no solo medianas.
Empates y chicos
Correcciones
Muchos empates → σ con corrección (menor). n < 10 → tabla exacta, no z. Unilateral solo si se pre-registró la dirección.
- Rank-biserial
- r = 2·P−1 (−1…1): versión simétrica del efecto. 0 empate, 0,5 ventaja grande.
- Bilateral por defecto
- H0: P = 0,5 contra P ≠ 0,5. Unilateral («B>A») exige hipótesis direccional previa.
- No es t fallido
- Si el t no da y se «prueba» Mann-Whitney hasta que dé, es p-hacking. El test se elige por diseño y forma, antes.
05 · Representación en Python
U a mano con 5 + 5
Python en tu navegador. Sin librerías: rangos, U, z y p normal.
A = [11, 12, 12, 13, 14]
B = [12, 13, 14, 15, 16]
import math
juntos = sorted([(v, 'A') for v in A] + [(v, 'B') for v in B])
# rangos con promedio en empates
rangos, i = [], 0
while i < len(juntos):
j = i
while j+1 < len(juntos) and juntos[j+1][0] == juntos[i][0]:
j += 1
prom = (i+1 + j+1) / 2
rangos += [prom] * (j-i+1)
i = j+1
RB = sum(r for (_, g), r in zip(juntos, rangos) if g == 'B')
nA, nB = len(A), len(B)
UB = RB - nB*(nB+1)/2
mu = nA*nB/2
sigma = math.sqrt(nA*nB*(nA+nB+1)/12)
z = (UB-mu)/sigma
# p bilateral normal
t = 1/(1+0.2316419*abs(z))
d = 0.3989423*math.exp(-z*z/2)
p1 = d*t*(0.3193815+t*(-0.3565638+t*(1.781478+t*(-1.821256+t*1.330274))))
p = 2*(1-p1 if z > 0 else p1)
print(f"RB={RB} UB={UB} P={UB/(nA*nB):.2f} z={z:.2f} p≈{p:.3f}")
RB = 33,5, UB = 18,5, P = 0,74, z ≈ 1,47, p ≈ 0,14: ventaja visible pero sin evidencia al 5% con n=5.
Efecto además de p
P = UB/(nA*nB)
print(f"P(B>A)={P:.2f} rank-biserial={2*P-1:+.2f}")
print("Con n=5 el p no puede bajar mucho: pedir más datos (Tema 28)")
06 · Exploración
Laboratorio: duelos U en vivo
A ∼ N(10, 1), B ∼ N(10 + diferencia, 1) más atípico en B. Mové diferencia, n y atípico. El panel muestra R_B, U, p normal y P(B>A). La línea gruesa es la mediana de cada grupo.
Mann-Whitney por rangos
U = R_B − n(n+1)/2 · α = 0,05 bilateral
Con diferencia 1 y n=16, B gana la mayoría de los duelos.
Puntos por grupo con medianas gruesas. El rojo es el atípico. U cuenta pares ganados por B sobre n×n posibles.
Preguntas para explorar
- Con diferencia 1, n=16 y atípico 0: ¿U, p y P? ¿Evidencia al 5%?
- Agregá atípico +8: ¿U y p se mueven mucho? ¿Por qué los rangos lo absorben?
- Bajá a n=6 con diferencia 1: ¿p aunque P sea 0,75? ¿Qué enseña sobre potencia mínima?
Ver respuestas sugeridas
- U ≈ 190/256, p ≈ 0,01, P ≈ 0,74: dominancia significativa. B gana 3 de cada 4 duelos.
- Casi nada: el atípico aporta un solo rango máximo. En medias habría movido todo; en rangos, un puesto.
- p ≈ 0,2 aunque P = 0,75: con n=6 no hay potencia para el 5%. El efecto importa pero la evidencia no alcanza: pedir más n.
07 · Comprensión
Confusiones frecuentes
«Mann-Whitney compara medianas»
Solo con misma forma. En general compara dominancia P(B>A). Con formas distintas, medianas iguales pueden dar p chico.
«Vale para datos pareados»
No: exige independencia entre grupos. Pareados → Wilcoxon (Tema 17). Mezclarlos invalida el p.
«Unilateral porque conviene»
Unilateral solo con dirección pre-registrada. Elegirlo tras ver los datos duplica la falsa alarma.
«p ≈ 0,06 casi significativo»
No existe «casi»: con α = 0,05 no hay evidencia. O se acepta, o se pide más n con protocolo (Tema 28).
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: U de un caso mínimo
A = [1, 2], B = [3, 4]. ¿U_B y P?
A, B = [1, 2], [3, 4]
UB = sum(1 for a in A for b in B if b > a)
print(f"UB={UB}/{len(A)*len(B)} P={UB/(len(A)*len(B)):.2f} (dominancia total)")
Ver solución razonada
UB = 4/4, P = 1,00: B gana todos los duelos. Aun así con n=2 el p exacto bilateral es 0,33: efecto total sin evidencia suficiente.
Ejercicio 2: el atípico que no voltea U
¿U con y sin atípico de 100?
A = [11, 12, 13]
for B in [[12, 13, 14], [12, 13, 100]]:
u = sum(1 for a in A for b in B if b > a) + 0.5*sum(1 for a in A for b in B if b == a)
print(B, "U =", u)
Ver solución
6,5 vs. 7,0 sobre 9: el 100 solo suma medio duelo extra. La media saltaría de 13 a 41; U ni se inmuta.
Ejercicio 3: informar completo
Redactá el informe de U = 190/256, p ≈ 0,01, medianas 10 vs. 11.
Ver una posible respuesta
print("Mann-Whitney bilateral: U=190/256, p≈0.01, P(B>A)=0.74.")
print("Medianas 10 vs 11. B domina: 3 de cada 4 duelos. n=16+16.")
Efecto + significación + n + medianas: el lector sabe si importa y si alcanza. p solo no dice nada de eso.
09 · Síntesis
Ideas para recordar
- Solo independientes: dos grupos distintos sin apareo.
- U = duelos ganados; P = U/(nA·nB) es el efecto que importa.
- z normal con n ≥ 10; tabla exacta con n chico; empates promediados.
- Bilateral por defecto; informar U + P + p + n + medianas.
- Pareados → Wilcoxon (Tema 17), no este.
En el próximo tema, el hermano pareado: Wilcoxon de signos y rangos.