∫Atlas Matemáticas Aplicadas

Inicio › Temas › Estadística

📊 Estadística nivel avanzado

Test chi-cuadrado

Comparar frecuencias observadas y esperadas: bondad de ajuste e independencia en tablas de contingencia.

🕹️ Ábrelo en el curso interactivo (simulador y código ejecutable)

La idea

Muchos datos no son medidas sino recuentos: cuántas veces salió cada cara de un dado, cuántos clientes de cada grupo compraron. El test chi-cuadrado (χ²) de Pearson compara las frecuencias observadas Oᵢ con las esperadas Eᵢ bajo una hipótesis nula, sumando las discrepancias relativas (Oᵢ − Eᵢ)²/Eᵢ. Si H₀ es cierta, ese estadístico sigue aproximadamente una distribución χ² cuyo único parámetro son los grados de libertad, el número de frecuencias que pueden variar libremente una vez fijados los totales.

En el test de bondad de ajuste se comprueba si una variable categórica sigue una distribución dada: con k categorías hay k − 1 grados de libertad, porque la última frecuencia queda determinada por el total. En el test de independencia los datos forman una tabla de contingencia de f filas y c columnas, y la frecuencia esperada de cada celda es (total de su fila × total de su columna)/N, que es lo que ocurriría si las dos variables no tuvieran relación; los grados de libertad son (f − 1)(c − 1). Un χ² grande indica que las variables están asociadas.

El valor p es P(χ²_ν ≥ χ²_obs), la cola derecha de la distribución, que se calcula con la función gamma incompleta regularizada. La aproximación es fiable cuando todas las frecuencias esperadas son al menos 5; con tablas pequeñas se recurre a la corrección de Yates o al test exacto de Fisher. Como todo contraste, χ² dice si hay asociación, no cuánta ni en qué dirección: para eso se miran los residuos de cada celda o medidas como la V de Cramér.

Fórmulas clave

  • Estadístico χ²χ² = Σ (Oᵢ − Eᵢ)² / Eᵢ
  • Esperadas (independencia)Eᵢⱼ = (fila_i × columna_j) / N
  • Grados de libertadbondad de ajuste: k − 1; independencia: (f − 1)(c − 1)
  • Valor pp = P(χ²_ν ≥ χ²_obs) = 1 − P(ν/2, χ²_obs/2) (gamma incompleta regularizada)
  • Densidad χ²f(x) = x^{ν/2 − 1} e^{−x/2} / [2^{ν/2} Γ(ν/2)], x > 0
  • V de CramérV = √[χ² / (N · mín(f − 1, c − 1))]

Dónde se aplica

En genética, el test de bondad de ajuste comprueba si las proporciones de descendientes coinciden con las que predicen las leyes de Mendel (por ejemplo, 9:3:3:1). En marketing y ciencias sociales, el test de independencia responde a preguntas como «¿la preferencia por un producto depende del grupo de edad?» a partir de una tabla de contingencia de encuesta. En medicina, se usa para saber si la proporción de curados difiere entre tratamiento y placebo, y en informática para verificar si un generador de números aleatorios produce todos los valores con la frecuencia esperada.

Con programación (Python)

import math

def p_chi2(chi2, gl):
    """P(X² > chi2) = 1 − P(gl/2, chi2/2), con la serie de la gamma incompleta."""
    a, x = gl / 2, chi2 / 2
    if x <= 0: return 1.0
    term, suma, n = 1.0, 1.0, 1
    while term > 1e-15 and n < 1000:
        term *= x / (a + n); suma += term; n += 1
    return 1 - math.exp(-x + a * math.log(x) - math.lgamma(a + 1)) * suma

# Independencia: tabla 2x2 (tratamiento x resultado)
obs = [[30, 10], [20, 40]]
filas = [sum(f) for f in obs]
cols = [sum(c) for c in zip(*obs)]
N = sum(filas)
esp = [[filas[i] * cols[j] / N for j in range(2)] for i in range(2)]
chi2 = sum((obs[i][j] - esp[i][j]) ** 2 / esp[i][j] for i in range(2) for j in range(2))
print("Esperadas:", esp)
print(f"Independencia: chi2 = {chi2:.3f}, gl = 1, p = {p_chi2(chi2, 1):.6f}")

# Bondad de ajuste: ¿está equilibrado el dado? (60 tiradas)
obs_d, e = [8, 12, 9, 11, 13, 7], 10
chi2_d = sum((o - e) ** 2 / e for o in obs_d)
print(f"Bondad de ajuste: chi2 = {chi2_d:.3f}, gl = 5, p = {p_chi2(chi2_d, 5):.4f}")

La versión en JavaScript, editable y ejecutable en el navegador, está en la página interactiva del tema.

Temas relacionados

Contraste de hipótesis y prueba t · Probabilidad clásica · Teorema de Bayes

← Todos los temas