Test de los signos
El test de los signos es el contraste no paramétrico más sencillo. Solo usa la dirección de cada observación respecto a un valor de referencia (positivo o negativo), ignorando completamente las magnitudes. Esto lo hace extremadamente robusto, pero también menos potente que alternativas que aprovechan más información de los datos.
Cómo funciona
Dadas \(n\) observaciones (o diferencias), se registra el signo de cada una respecto a la mediana hipotética \(M_0\):
- \(+\) si la observación está por encima de \(M_0\).
- \(-\) si la observación está por debajo de \(M_0\).
- Los empates (igualdad exacta con \(M_0\)) se descartan.
Bajo \(H_0\) (la mediana real es \(M_0\)), cada observación no empatada es igualmente probable que sea positiva o negativa, por lo que el número de signos positivos \(S^+\) sigue una distribución \(\text{Binomial}(n, 0{,}5)\).
| Contraste | \(H_0\) | \(H_1\) | P-valor |
|---|---|---|---|
| Bilateral | \(M = M_0\) | \(M \neq M_0\) | \(2 \times P(X \leq \min(S^+, S^-))\) |
| Unilateral derecho | \(M = M_0\) | \(M > M_0\) | \(P(X \geq S^+)\) |
| Unilateral izquierdo | \(M = M_0\) | \(M < M_0\) | \(P(X \leq S^+)\) |
donde \(X \sim \text{Binomial}(n, 0{,}5)\) y \(n\) es el número de observaciones no empatadas.
Ejemplos
Ejemplo 1: datos pareados (método de enseñanza)
Diez alumnos hacen un examen antes y después de una nueva intervención pedagógica. Diferencias en las puntuaciones (después - antes):
\[+3,\; +1,\; -2,\; +4,\; +2,\; 0,\; -1,\; +3,\; +1,\; -2\]
Paso 1: descarta la diferencia cero. \(n = 9\).
Paso 2: cuenta los signos. \(S^+ = 6\) (positivos), \(S^- = 3\) (negativos).
Paso 3: p-valor bilateral a partir de \(X \sim \text{Binomial}(9, 0{,}5)\):
\[p = 2 \times P(X \leq 3) = 2 \times \sum_{k=0}^{3} \binom{9}{k} 0{,}5^9 = 2 \times 0{,}254 = 0{,}508\]
Decisión: \(p = 0{,}508 > 0{,}05\), no rechazamos \(H_0\).
No hay evidencia significativa de que el método de enseñanza haya cambiado la mediana de las puntuaciones. La distribución 6-3 de signos no es inusual bajo \(H_0\).
Ejemplo 2: contraste de una muestra para la mediana
Un servicio de mensajería afirma que su tiempo de entrega mediano es de 48 horas. Un grupo de consumidores registra 15 entregas: 11 tardaron más de 48 horas, 3 tardaron menos y 1 tardó exactamente 48 horas.
Paso 1: descarta el empate. \(n = 14\), \(S^+ = 11\), \(S^- = 3\).
Paso 2: contraste unilateral derecho (\(H_1: M > 48\)). P-valor:
\[p = P(X \geq 11) = \sum_{k=11}^{14} \binom{14}{k} 0{,}5^{14} = 0{,}029\]
Decisión: \(p = 0{,}029 < 0{,}05\), rechazamos \(H_0\).
Hay evidencia significativa de que el tiempo de entrega mediano real supera las 48 horas.

Test de los signos vs Wilcoxon de rangos con signo
Ambos son alternativas no paramétricas al contraste \(t\) pareado, pero usan cantidades distintas de información:
| Test de los signos | Wilcoxon de rangos con signo | |
|---|---|---|
| Usa la dirección | Sí | Sí |
| Usa la magnitud | No | Sí (mediante rangos) |
| Asume diferencias simétricas | No | Sí |
| Potencia | Menor | Mayor |
| Mejor para | Datos ordinales, valores atípicos, fuerte asimetría | Diferencias continuas y aproximadamente simétricas |
⚠️ Usa Wilcoxon de rangos con signo cuando puedas
La prueba de los signos descarta toda la información sobre la magnitud, lo que reduce la potencia. Para los mismos datos, el contraste de Wilcoxon de rangos con signo es casi siempre más potente porque ordena las diferencias absolutas y tiene en cuenta sus tamaños relativos.
Usa el test de los signos cuando:
- Los datos son ordinales y las diferencias no tienen una magnitud significativa (por ejemplo, preferencias ordenadas).
- Las diferencias están tan sesgadas o tienen valores atípicos tan extremos que incluso los rangos son poco fiables.
- Necesitas el mínimo absoluto de supuestos.
En la mayoría de las situaciones con datos pareados continuos, el contraste de Wilcoxon de rangos con signo es la mejor opción.
Realizar el contraste en R
No existe una función sign.test() en R base. El enfoque más sencillo usa directamente el contraste binomial:
# Ejemplo 2: tiempos de entrega
# S+ = 11 éxitos de n = 14 observaciones no empatadas
binom.test(x = 11, n = 14, p = 0.5, alternative = "greater")
# Para datos pareados: calcula primero las diferencias
diffs <- c(3, 1, -2, 4, 2, -1, 3, 1, -2) # excluyendo el cero
s_plus <- sum(diffs > 0)
n <- sum(diffs != 0)
binom.test(s_plus, n, p = 0.5, alternative = "two.sided")
# El paquete BSDA también proporciona sign.test()
library(BSDA)
sign.test(diffs, md = 0, alternative = "two.sided")
💡 Aproximación para muestras grandes
Para \(n > 25\), la distribución binomial bajo \(H_0\) se aproxima bien mediante una distribución normal:
\[Z = \frac{S^+ - n/2}{\sqrt{n/4}} \sim N(0,1)\]
Esto es útil para cálculos rápidos a mano. Para p-valores exactos con cualquier \(n\), usa la distribución binomial directamente como se muestra arriba.