01 · Punto de partida
Del «se ve cargado» al «χ² = 14,2, p ≈ 0,01»
El laboratorio del Tema 12 mostraba barras contra lo esperado. El chi-cuadrado convierte esa imagen en un número con distribución conocida bajo H0, para juzgar con α pre-fijado y decir qué clase aporta el desajuste.
- ¿Cómo se agrupa en clases sin hacer trampa?
- ¿Cuánto vale (O−E)²/E en cada clase?
- ¿Cuántos grados de libertad quedan?
- ¿El rechazo señala todo o una clase puntual?
02 · Definición
Estadístico, grados y condiciones
Estadístico
Suma ponderada por 1/E: un desvío de 5 pesa más si lo esperado era 5 que si era 50. Por eso se divide.
Grados de libertad
k clases − 1 (suman n) − p parámetros estimados con los datos. Cada estimación «gasta» un grado.
Condiciones
n grande, Eᵢ ≥ 5 en cada clase (agrupar colas si no), observaciones independientes. Sin esto, el p es ficticio.
| gl | Crítico | Ejemplo |
|---|---|---|
| 3 | 7,81 | 4 clases sin estimar |
| 5 | 11,07 | Dado justo, 6 caras |
| 8 | 15,51 | 9 intervalos |
03 · Método
Protocolo sin p-hacking de clases
- 1Fijar H0, clases y α antes.
Ej.: «H0: dado justo, 6 caras, α = 0,05». Los bordes de clase no se mueven para que «pase».
- 2Calcular E bajo H0 y verificar E ≥ 5.
Si una cola queda flaca, se fusiona con la vecina antes de calcular, no después de ver el p.
- 3Sumar χ² y restar grados.
gl = k − 1 − estimados. Estimar la media con los datos cuesta 1 grado.
- 4Traducir a p y mirar residuos.
Residuo estandarizado (O−E)/√E por clase: |·| > 2 señala la culpable.
- 5Informar clases + χ² + gl + p + n.
«6 clases, χ² = 4,2, gl = 5, p ≈ 0,52, n = 60: no se rechaza».
04 · Residuos y trampas
Dónde falla y cómo se maquilla
Lectura útil
Residuos señalan
χ² = 14 con 12 aportados por la clase 6 = dado cargado en el 6. El total rechaza; el residuo explica.
Trampa común
Clases a medida
Mover bordes hasta que el p pase es p-hacking. Las clases se fijan por criterio físico o equiprobable, antes.
- E < 5
- Clases flacas inflan χ² por dividir entre poco. Se fusionan colas vecinas y baja gl en consecuencia.
- Parámetros estimados
- Estimar λ de Poisson con la muestra cuesta 1 gl. No restarlo fabrica rechazos falsos… o al revés.
- n gigante
- Con n = 10000, desvíos irrelevantes dan p ≈ 0. Informar residuos y efecto, no solo p.
05 · Representación en Python
χ² a mano, sin caja negra
Python en tu navegador. H0: dado justo, n=60. El crítico 11,07 para gl=5 ya está puesto.
obs = [12, 9, 11, 8, 10, 10]
esp = [10]*6
CRITICO, GL = 11.07, 5 # gl=6-1, alfa=0.05
contrib = [(o-e)**2/e for o, e in zip(obs, esp)]
chi = sum(contrib)
residuos = [(o-e)/(e**0.5) for o, e in zip(obs, esp)]
print("contribuciones:", [round(c, 2) for c in contrib])
print(f"chi² = {chi:.2f} (gl={GL}, crítico {CRITICO})")
print("residuos:", [round(r, 2) for r in residuos])
print("Veredicto:", "Se rechaza" if chi > CRITICO else "No se rechaza")
χ² = 1,00 ≪ 11,07: no se rechaza. Cambiá obs a [20, 5, 5, 10, 10, 10] y mirá qué clase aporta casi todo.
Condición E ≥ 5 y fusión de colas
obs2 = [12, 9, 11, 8, 10, 2, 1] # dos colas flacas
esp2 = [8, 8, 8, 8, 8, 3, 2]
print("E<5 en:", [e for e in esp2 if e < 5], "-> fusionar últimas dos")
obs_f = obs2[:-2] + [obs2[-2] + obs2[-1]]
esp_f = esp2[:-2] + [esp2[-2] + esp2[-1]]
print("fusionado:", obs_f, esp_f, "k:", len(obs_f))
06 · Exploración
Laboratorio: cada clase aporta su culpa
H0: dado justo (6 caras, gl = 5, crítico 11,07). Mové la carga hacia el 6 y el n. Las barras muestran O vs. E; la seleccionada exhibe su aporte (O−E)²/E. El p se estima por Monte Carlo honesto (500 dados justos con igual n).
χ² por clases en vivo
χ² = Σ (O−E)²/E · gl = 5 · crítico 11,07
Con carga 30% y n=60, la clase 6 aporta casi todo el χ².
Altura = conteo observado; línea blanca = esperado n/6. El número sobre cada barra es su aporte al χ². La clase 6 cargada se despega primero.
Preguntas para explorar
- Con carga 30% y n=60: ¿χ², p y aporte de la clase 6? ¿Qué fracción del total explica una sola cara?
- Quitá la carga (0%) con n=60: ¿χ² y veredicto? Subí a n=240 sin carga: ¿el χ² se dispara o ronda gl=5?
- Con carga 15% probá n=30 y n=240. ¿Mismo efecto, mismo veredicto? ¿Qué manda?
Ver respuestas sugeridas
- χ² ≈ 12–16 > 11,07, p ≈ 0,01: se rechaza. La clase 6 aporta ~80%: el residuo (+3 o más) la señala sin dudar.
- Sin carga χ² ≈ 3–6 ≈ gl: no se rechaza. Con n=240 sin carga sigue ≈ gl: bajo H0 el χ² ronda sus grados, no crece con n.
- Mismo efecto relativo, veredicto opuesto: n=30 impotente (p alto), n=240 contundente (p ≈ 0). Efecto + n, siempre.
07 · Comprensión
Confusiones frecuentes
«χ² grande = efecto grande»
χ² mezcla efecto y n. Con n gigante, efectos irrelevantes dan χ² enorme. Mirar residuos y efecto relativo.
«Puedo reagrupar hasta que pase»
Reagrupar tras ver el p es trampa. Las clases se fijan antes por criterio físico o equiprobable.
«E ≥ 5 es un capricho»
Con E chico, (O−E)²/E explota por dividir entre poco y el p miente. Fusionar colas es obligatorio, no opcional.
«Chi sirve para todo continuo»
Agrupar continuo desperdicia información. Para continuo sin clases, K-S (Tema 14) es más potente.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: calcular y señalar la culpable
¿χ², veredicto (crítico 11,07) y clase culpable?
obs = [20, 5, 5, 10, 10, 10]
esp = [10]*6
contrib = [(o-e)**2/e for o, e in zip(obs, esp)]
print(contrib, "chi =", round(sum(contrib), 2))
print("culpable: clase 1 con", contrib[0])
Ver solución razonada
χ² = 10 + 2,5 + 2,5 + 0 + 0 + 0 = 15,00 > 11,07 → se rechaza. La clase 1 aporta 10/15: dado cargado al 1, residuo +3,16.
Ejercicio 2: grados que cuestan
Estimaste la media con los datos para calcular E. ¿gl?
k, estimados = 8, 1
print("gl =", k - 1 - estimados, "(no 7)")
Ver solución
gl = 6, no 7. No restarlo usa un crítico demasiado chico y rechaza de más. Cada estimación gasta un grado.
Ejercicio 3: fusionar colas flacas
¿Qué hacer con E = [20, 20, 20, 3, 2]?
Ver una posible respuesta
print("Fusionar las dos últimas en E=5 antes de calcular; k pasa de 5 a 4")
Con E=3 y E=2 el test es inválido. Fusionadas dan E=5 (límite aceptable) y gl baja en 1. Decidido antes, documentado siempre.
09 · Síntesis
Ideas para recordar
- χ² = Σ (O−E)²/E por clases; gl = k−1−estimados; p ≤ α rechaza.
- Condiciones: E ≥ 5, independencia, clases fijadas antes.
- Residuos (O−E)/√E señalan la clase culpable: |·| > 2 grita.
- Informar clases + χ² + gl + p + n + tabla O/E: veredicto con pruebas.
- Para continuo sin agrupar, pasar a K-S (Tema 14).
En el próximo tema veremos el test de Kolmogorov-Smirnov: comparar distribuciones sin perder detalle en clases.