Paramétrico
Asume distribución conocida. Más potente si los supuestos se cumplen.
Capítulo 3
Los tests paramétricos (t-test, ANOVA) asumen normalidad y homocedasticidad. Cuando estos supuestos no se cumplen —o con datos ordinales o muestras pequeñas— los no paramétricos son más robustos (aunque menos potentes).
Asume distribución conocida. Más potente si los supuestos se cumplen.
Sin asunciones distribucionales. Basado en rangos. Más robusto, menos potente.
Alternativa no paramétrica al t-test de muestras independientes. Prueba si una población tiende a tener valores mayores que la otra.
Bajo H₀, los valores de ambos grupos vienen de la misma distribución.
from scipy.stats import mannwhitneyu
g1 = [2, 3, 4, 5, 6]
g2 = [7, 8, 9, 10, 11]
U, p = mannwhitneyu(g1, g2, alternative='two-sided')
print(f"U = {U}, p = {p:.4f}")
# Tamaño del efecto: r = Z / sqrt(n)
from scipy.stats import norm
z = norm.ppf(p / 2)
r = abs(z) / np.sqrt(len(g1) + len(g2))
print(f"Tamaño del efecto r = {r:.3f}")Alternativa al t-test pareado (antes/después, mismo sujeto).
Donde son las diferencias pareadas y R son los rangos.
from scipy.stats import wilcoxon
antes = [85, 90, 78, 92, 88]
despues = [88, 91, 82, 95, 87]
W, p = wilcoxon(antes, despues)
print(f"W = {W}, p = {p:.4f}")Alternativa no paramétrica a ANOVA de una vía. Compara k grupos independientes.
from scipy.stats import kruskal
g1 = [2, 3, 4, 5]
g2 = [6, 7, 8, 9]
g3 = [10, 11, 12, 13]
H, p = kruskal(g1, g2, g3)
print(f"H = {H:.3f}, p = {p:.4f}")
# Post-hoc: Dunn con corrección Bonferroni
# scikit-posthocks: sp.posthoc_dunn([g1,g2,g3], p_adjust='bonferroni')Correlación basada en rangos. Mide relaciones monótonas (no solo lineales). Alternativa a Pearson cuando hay outliers o relaciones no lineales.
Donde es la diferencia entre los rangos de cada par.
from scipy.stats import spearmanr, pearsonr
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] # relación cuadrática
r_p, p_p = pearsonr(x, y)
r_s, p_s = spearmanr(x, y)
print(f"Pearson: r={r_p:.3f}, p={p_p:.4f}")
print(f"Spearman: ρ={r_s:.3f}, p={p_s:.4f}")
# Pearson detecta lineal, Spearman detecta monótona| Situación | Paramétrico | No paramétrico |
|---|---|---|
| 2 grupos independientes | t-test | Mann-Whitney U |
| 2 grupos pareados | t-test pareado | Wilcoxon |
| k grupos | ANOVA | Kruskal-Wallis |
| Correlación | Pearson | Spearman |