Test de Wilcoxon

Los contrastes de Wilcoxon son las alternativas no paramétricas estándar a los contrastes \(t\). El de rangos con signo sustituye al contraste \(t\) pareado, y el de suma de rangos sustituye al contraste \(t\) de dos muestras. Ambos usan rangos en lugar de los valores originales, lo que los hace robustos frente a la no normalidad y los valores atípicos, conservando más potencia que el test de los signos.

Test de Wilcoxon de rangos con signo (muestras pareadas)

Se usa cuando los mismos sujetos se miden dos veces, o cuando las observaciones están emparejadas. Contrasta si la mediana de las diferencias entre pares es cero.

Hipótesis: \(H_0\): la mediana de las diferencias es cero. \(H_1\): la mediana de las diferencias no es cero (o mayor/menor para contrastes unilaterales).

Supuesto: las diferencias \(d_i = X_{i,\text{después}} - X_{i,\text{antes}}\) se distribuyen simétricamente en torno a su mediana (no necesariamente normal).

Procedimiento:

  1. Calcula las diferencias \(d_i\). Descarta los ceros.
  2. Ordena las diferencias absolutas \(|d_i|\) de 1 (la menor) a \(n\) (la mayor). Asigna rangos medios a los empates.
  3. Adjunta el signo original de cada diferencia a su rango.
  4. Calcula \(W^+ = \sum \text{rangos con signo positivo}\) y \(W^- = \sum \text{rangos con signo negativo}\).
  5. El estadístico del contraste es \(W = \min(W^+, W^-)\).
  6. Compara \(W\) con la tabla de Wilcoxon de rangos con signo, o calcula el p-valor exacto mediante la distribución binomial.
Puntuaciones de dolor antes y después del tratamiento

Ocho pacientes valoran el dolor (0-10) antes y después de fisioterapia:

Paciente Antes Después \(d_i\) \(|d_i|\) Rango Rango con signo
1 7 4 -3 3 5,5 -5,5
2 5 3 -2 2 3,0 -3,0
3 8 5 -3 3 5,5 -5,5
4 6 5 -1 1 1,5 -1,5
5 9 6 -3 3 5,5 -5,5
6 4 3 -1 1 1,5 -1,5
7 7 5 -2 2 3,0 -3,0
8 6 8 +2 2 3,0 +3,0

\(W^- = 5{,}5+3+5{,}5+1{,}5+5{,}5+1{,}5+3 = 25{,}5\), \(W^+ = 3{,}0\). Estadístico: \(W = \min(25{,}5;\, 3{,}0) = 3{,}0\).

Para \(n = 8\) y \(\alpha = 0{,}05\) (bilateral), el valor crítico es 3. Como \(W = 3 \leq 3\), rechazamos \(H_0\).

El tratamiento redujo significativamente las puntuaciones de dolor (\(p \approx 0{,}047\)).

Example icon

Gráfico de puntos mostrando las puntuaciones de dolor pareadas antes y después conectadas por líneas con la dirección del cambio destacada

Contraste de suma de rangos de Wilcoxon (muestras independientes)

También conocido como test U de Mann-Whitney. Se usa cuando se comparan dos grupos independientes sin asumir normalidad.

Hipótesis: \(H_0\): las dos poblaciones tienen la misma distribución. \(H_1\): una población tiende a tener valores mayores.

Procedimiento:

  1. Combina todas las observaciones de ambos grupos y ordénalas de 1 a \(n_1 + n_2\).
  2. Calcula \(W_1\) = suma de los rangos del grupo 1.
  3. El estadístico del contraste es \(W = W_1\) (o equivalentemente, el estadístico \(U\) de Mann-Whitney).
  4. Compara con la tabla de suma de rangos de Wilcoxon o calcula el p-valor.
Comparación de tiempos de recuperación: dos tratamientos

Tratamiento A (\(n_1 = 5\)): tiempos de recuperación 8, 12, 15, 10, 14 días. Tratamiento B (\(n_2 = 5\)): tiempos de recuperación 18, 20, 16, 22, 19 días.

Combinados y ordenados (los 10 valores juntos):

Valor 8 10 12 14 15 16 18 19 20 22
Rango 1 2 3 4 5 6 7 8 9 10
Grupo A A A A A B B B B B

\(W_A = 1+2+3+4+5 = 15\). Esperado bajo \(H_0\): \(n_1(n_1+n_2+1)/2 = 5 \times 11/2 = 27{,}5\).

\(W_A = 15\) está muy por debajo del esperado 27,5, lo que indica que el tratamiento A tiene tiempos de recuperación consistentemente menores. El p-valor exacto (bilateral) es \(p = 0{,}008\): rechazamos \(H_0\).

Example icon

Gráficos de puntos de los tiempos de recuperación para dos grupos de tratamiento mostrando la diferencia entre las distribuciones

Realizar los contrastes en R

Ambos contrastes usan wilcox.test() en R base. El argumento paired los diferencia:

# Contraste de rangos con signo (pareado)
before <- c(7, 5, 8, 6, 9, 4, 7, 6)
after  <- c(4, 3, 5, 5, 6, 3, 5, 8)
wilcox.test(after, before, paired = TRUE, alternative = "two.sided")

# Contraste de suma de rangos (independiente)
grupo_a <- c(8, 12, 15, 10, 14)
grupo_b <- c(18, 20, 16, 22, 19)
wilcox.test(grupo_a, grupo_b, alternative = "two.sided")

Para muestras grandes (\(n > 25\)), R usa una aproximación normal. Para muestras pequeñas, calcula p-valores exactos.

⚠️ El contraste de rangos con signo asume diferencias simétricas

El test de Wilcoxon de rangos con signo asume que las diferencias \(d_i\) se distribuyen simétricamente. Si las diferencias están muy sesgadas, el contraste se ejecuta igualmente pero el resultado puede ser engañoso: una distribución asimétrica de las diferencias significa que \(W^+\) y \(W^-\) no son intercambiables bajo \(H_0\).

Para diferencias muy sesgadas, el test de los signos es más apropiado, ya que solo usa la dirección, no la magnitud.

💡 Wilcoxon vs contraste t: ¿cuándo importa?

Los contrastes de Wilcoxon son alternativas robustas cuando se viola la normalidad, pero:

  • Para \(n \geq 30\), el contraste \(t\) es bastante robusto frente a la no normalidad gracias al TCL. El test de Wilcoxon da p-valores similares.
  • Para \(n\) pequeño con clara no normalidad o valores atípicos, Wilcoxon es la opción más segura.
  • Cuando los datos son normales, el test de Wilcoxon tiene aproximadamente el 95% de la potencia del contraste \(t\): una pérdida de eficiencia muy pequeña a cambio de la robustez ganada.