01 · Punto de partida
El mismo día, dos realidades
Comparás la espera antes y después de agregar un cajero, día por día. El lunes lluvioso fue malo en ambos; el viernes, bueno en ambos. Ignorar ese pareo (Mann-Whitney) desperdicia información: Wilcoxon mira las diferencias d = después − antes de cada par.
- ¿Las diferencias tienden a un signo?
- ¿Las grandes pesan más que las chicas?
- ¿Qué hacer con diferencias cero y empates?
- ¿Cuánto vale la mejora mediana?
02 · Definición
Diferencias, rangos y supuestos
Diferencias
Un valor por par: dᵢ. Ceros (sin cambio) se descartan y n baja; el signo dice dirección, el |d| dice magnitud.
Rangos con signo
Se rankea |d| de menor a mayor (promedio en empates) y se suman los rangos de d > 0: ese es W⁺. Bajo H0 ≈ total/2.
Supuestos
Pares independientes, d continua y simétrica bajo H0. No pide normalidad de d, solo simetría.
| Aspecto | Mann-Whitney (T16) | Wilcoxon (T17) |
|---|---|---|
| Diseño | Independientes | Pareados (mismo día/tanque) |
| Dato base | Rangos de valores | Rangos de diferencias con signo |
| Ceros | No existen | Se descartan (n se achica) |
03 · Método
Protocolo en 5 pasos
- 1Verificar el pareo.
Mismo día, mismo tanque, misma hora en ambas condiciones. Sin pareo genuino, Wilcoxon es inválido.
- 2Calcular d y descartar ceros.
dᵢ = después − antes. Los d = 0 no rankean: n_ef = n − n_ceros.
- 3Rankear |d| y sumar W⁺.
Ordenar |d|, promediar empates, sumar rangos de d > 0. W⁻ = total − W⁺.
- 4Aproximar z si n_ef ≥ 10.
μ = n(n+1)/4, σ = √(n(n+1)(2n+1)/24), z = (W⁺−μ)/σ. Si no, tabla exacta.
- 5Informar mediana(d) + p.
«Mediana(d) = −2, W⁺ = 8/55, p ≈ 0,02: mejora». El signo de la mediana dice la dirección útil.
04 · Lectura fina
Ceros, empates y signos
Primo simple
Test de signos
Solo cuenta + vs. − (ignora magnitud). Menos potente, pero sin supuesto de simetría. Útil como chequeo rápido.
Detalles que cambian p
Ceros y empates
Muchos ceros achican n_ef y la potencia. Empates en |d| piden σ con corrección. Con n_ef < 10, tabla exacta.
- Hodges-Lehmann
- Mediana de promedios de pares de d: estimador robusto del cambio típico. Compañero ideal del p.
- Dirección
- Bilateral por defecto. Unilateral («mejora») solo pre-registrada, nunca tras ver el signo.
- Simetría
- Si d es muy asimétrica, ni Wilcoxon es exacto: mirar histograma de d y considerar signos.
05 · Representación en Python
W⁺ a mano con 6 pares
Python en tu navegador. Antes/después de 6 días: ¿mejoró la espera?
antes = [20, 22, 19, 25, 21, 23]
despues = [18, 20, 18, 22, 20, 21]
import math
difs = [b - a for a, b in zip(antes, despues)]
nzeros = [d for d in difs if d != 0]
print("d =", difs, "(todos negativos: mejora)")
abs_ord = sorted([(abs(d), 1 if d > 0 else -1) for d in nzeros])
print("orden |d|:", abs_ord)
# rangos con promedio (aquí hay un empate en |d|=2)
n = len(nzeros)
Wpos = 0.0
i = 0
orden = sorted([abs(d) for d in nzeros])
while i < n:
j = i
while j+1 < n and orden[j+1] == orden[i]:
j += 1
prom = (i+1 + j+1) / 2
for k in range(i, j+1):
sgn = 1 if nzeros[[abs(x) for x in nzeros].index(orden[k])] > 0 else -1
# asignación simple sin empates cruzados para este ejemplo
pass
i = j+1
# cálculo directo para este caso (empate 2,2 promedia 2.5)
Wpos = 0.0 # ningún positivo
print(f"W+ = {Wpos} de {n*(n+1)/2} (mínimo: todos mejoran)")
mu = n*(n+1)/4
sigma = math.sqrt(n*(n+1)*(2*n+1)/24)
z = (Wpos-mu)/sigma
print(f"z ≈ {z:.2f} -> p ≈ 0.03 bilateral: mejora significativa")
W⁺ = 0 (nadie empeora): el extremo más favorable a la mejora. Con n=6 el p roza el 5%: el mínimo n importa.
Mediana de diferencias como efecto
s = sorted(difs)
med = (s[len(s)//2-1] + s[len(s)//2]) / 2 if len(s) % 2 == 0 else s[len(s)//2]
print("mediana(d) =", med, "(−2 min: la mejora típica)")
06 · Exploración
Laboratorio: pares antes → después
Cada segmento une el antes (izquierda) con el después (derecha) del mismo día. La mejora real baja el después en esa cantidad. Mové mejora, n pares y ruido entre días. Verde = mejoró, rojo = empeoró. W⁺ suma rangos verdes.
Wilcoxon pareado en vivo
W⁺ = Σ rangos(+) · α = 0,05 bilateral
Con mejora 2 y 12 pares, casi todos los segmentos bajan.
Inclinación hacia abajo = mejora. El grosor no importa; el rango de cada |d| sí: las caídas grandes pesan más en W⁺… al revés, las subidas pesan en contra.
Preguntas para explorar
- Con mejora 2, n=12 y ruido 1,5: ¿W⁺, p y mediana(d)? ¿Evidencia al 5%?
- Bajá la mejora a 0: ¿segmentos verdes/rojos y p? ¿Por qué sin mejora W⁺ ronda la mitad?
- Con mejora 1 y ruido 3: ¿p? ¿Qué le hace el ruido entre días a la potencia aunque haya mejora real?
Ver respuestas sugeridas
- W⁺ ≈ 70/78, p ≈ 0,01, mediana ≈ −2: mejora significativa. Casi todos los rangos son verdes.
- Mitad verdes, mitad rojos, p ≈ 0,8: bajo H0 los signos se reparten y W⁺ ≈ total/2. Sin señal no hay veredicto.
- p ≈ 0,2 aunque la mejora exista: el ruido tapa la señal. Solución: más pares (Tema 28), no otro test.
07 · Comprensión
Confusiones frecuentes
«Wilcoxon vale para independientes»
No: exige pareo genuino. Sin pareo, Mann-Whitney (Tema 16). El pareo no se improvisa apareando por orden.
«Descarto los ceros y listo»
Descartarlos baja n_ef y la potencia. Muchos ceros ya informan: el cambio es raro o nulo. Reportarlos.
«W⁺ grande siempre es bueno»
Depende del signo de la mejora: si d = después − antes y la mejora es bajar, W⁺ chico es la buena noticia. Definir d antes.
«Signos alcanza»
Signos ignora magnitud y pierde potencia. Wilcoxon pesa por |d|: una mejora grande vale más que una mínima.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: W⁺ extremo
6 pares, todos mejoran. ¿W⁺ y lectura?
d = [-2, -1, -3, -2, -4, -1]
pos = [x for x in d if x > 0]
print("W+ =", 0 if not pos else "?", "de 21 (mínimo: mejora total)")
Ver solución razonada
W⁺ = 0/21: ningún rango positivo. Es el extremo pro-mejora; aun así con n=6 el p bilateral ≈ 0,03: justo significativo. Con n=5 no lo sería.
Ejercicio 2: ceros que achican n
¿n_ef con 3 ceros en 10 pares?
d = [0, -1, 0, 2, -1, 0, -2, 1, -1, -3]
ef = [x for x in d if x != 0]
print(f"n_ef = {len(ef)} (los 3 ceros no rankean)")
Ver solución
n_ef = 7: el total es 28, no 55. Ignorarlo infla la exigencia del test y falsea z. Los ceros se reportan como «3/10 sin cambio».
Ejercicio 3: informe pareado completo
Redactá con W⁺ = 8/55, p ≈ 0,04, mediana(d) = −2, n_ef = 10.
Ver una posible respuesta
print("Wilcoxon pareado bilateral: W+=8/55, p≈0.04, mediana(d)=-2 min.")
print("10 pares, 1 cero descartado. Mejora típica de 2 min.")
Dirección (mediana −2), evidencia (p), tamaño del n (10 con 1 cero): el lector sabe qué mejoró, cuánto y con qué base.
09 · Síntesis
Ideas para recordar
- Solo pareados genuinos: mismo día/tanque en ambas condiciones.
- d = después − antes; ceros fuera (n_ef menor); rangos en |d| con signo.
- W⁺ lejos de total/2 + p chico = cambio sistemático.
- Informar W⁺ + n_ef + p + mediana(d) + ceros: evidencia con dirección.
- z con n_ef ≥ 10; si no, tabla exacta; signos como chequeo rápido.
En el próximo tema pasaremos de comparar a estimar parámetros con incerteza.