01 · Punto de partida
El azar deja huecos donde más importa
Con f = 10 solo en [0,9, 1] y N = 100, el crudo puede no pisar el pico: estima 0. Estratificar garantiza 10 puntos en el pico y 90 fuera: el pico siempre aparece, ponderado por su ancho.
Es la técnica más noble: siempre ayuda (o empata), nunca sesga si se pondera por anchos.
- ¿Dónde están los picos o las zonas distintas?
- ¿En cuántos estratos parto?
- ¿Cuántos puntos por estrato?
- ¿Cómo pondero al agregar?
02 · Definición
Partir, muestrear, ponderar
Estrato
Una parte del dominio: [0, 0,9) y [0,9, 1]. Disjuntos que cubren todo.
Asignación
Proporcional (n_h ∝ Vol_h, simple) o Neyman (más donde hay más varianza).
Ponderación
Î = Σ w_h·m_h. El peso es el volumen, no la cantidad de puntos.
| Esquema | n en pico | Resultado |
|---|---|---|
| Crudo | ~10, a veces 0 | Tiembla o da 0 |
| Proporcional | 10 garantizados | Estable, sin sesgo |
| Neyman (más al pico) | 30–50 | Aún mejor si el pico varía |
03 · Algoritmo
- 1Partir donde cambia f.
Picos, saltos o colas en estratos propios. 4–10 estratos bastan.
- 2Asignar n_h.
Proporcional por defecto; Neyman n_h ∝ w_h·s_h si el piloto mide s_h.
- 3Muestrear y ponderar.
Uniforme dentro de cada estrato y Σ w_h·m_h. Varianza = Σ w_h²·s_h²/n_h.
- Neyman
- Más puntos donde hay más varianza: n_h ∝ w_h·s_h. Pide piloto por estrato.
- Post-estratificar
- Clasificar después de sortear: ayuda menos pero no cuesta nada.
- Estratos vacíos
- Prohibidos: cada estrato lleva ≥ 2 puntos para estimar su s_h.
04 · Ejemplos
- 1Pico 10 en [0,9, 1].
El laboratorio: de 0 inestable a 1,00 exacto por estrato.
- 2e^(−10x).
Primer 10% concentra casi todo: estrato fino ahí.
- 3Riesgo por segmentos.
Clientes oro/plata/bronce: un estrato por segmento con su tasa.
05 · Representación en Python
Estratificar el pico en 12 líneas
Python en tu navegador. El crudo falla; el estratificado clava el 1.
import random
def f(x):
return 10.0 if x >= 0.9 else 0.0
N = 200
crudo = sum(f(random.random()) for _ in range(N)) / N
n1, n2 = int(0.9*N), N - int(0.9*N)
m1 = sum(f(random.uniform(0, 0.9)) for _ in range(n1)) / n1
m2 = sum(f(random.uniform(0.9, 1)) for _ in range(n2)) / n2
est = 0.9*m1 + 0.1*m2
print("crudo:", round(crudo, 3), "estratificado:", round(est, 3), "(real 1.0)")
06 · Exploración
Laboratorio: garantizar el pico
f vale 10 solo en la franja amarilla [0,9, 1]. Grises: puntos crudos (a veces ninguno en el pico). Verdes: 10% forzado al pico. Barras: crudo vs estratificado.
Sin huecos en el pico
Î = 0,9·m₁ + 0,1·m₂
Tocá «Muestrear» para comparar.
Si el crudo no pisa el pico, estima 0. El estratificado siempre pone 10% ahí: estima 1,00 con error mínimo.
Preguntas para explorar
- Con N = 50, ¿el crudo suele dar 0, 2 o disparate? ¿El estratificado?
- ¿Por qué ponderar por 0,9/0,1 y no por conteos?
- ¿Cuándo conviene Neyman sobre proporcional?
Ver respuestas sugeridas
- Crudo: 0 si falla el pico (30% de las veces). Estratificado: 1,00 siempre.
- Los pesos son volúmenes teóricos, no conteos ruidosos. Ponderar por conteos sesga.
- Cuando un estrato varía más: más n_h donde hay más s_h.
07 · Comprensión
Confusiones frecuentes
«Más estratos siempre mejor»
Cada estrato necesita ≥ 2 puntos: 50 estratos con N = 100 dejan ruido por todos lados.
«Pondero por cuántos cayeron»
No: por volúmenes w_h. Los conteos son aleatorios; los volúmenes son exactos.
«Estratificar sesga»
Solo si se pondera mal o falta un estrato. Bien ponderado es insesgado.
«Con f plana no sirve»
Empata: no ahorra pero tampoco empeora. El costo es partir, casi nulo.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: crudo que da 0
Repetí el crudo con N = 50 cinco veces y contá los ceros.
import random
def f(x):
return 10.0 if x >= 0.9 else 0.0
for _ in range(5):
print(sum(f(random.random()) for _ in range(50)) / 50)
Ver solución razonada
Verás algún 0,0: P(ninguno en el pico) = 0,9⁵⁰ ≈ 0,5%. Con N = 20 sería 12%: huecos frecuentes.
Ejercicio 2: estratificado exacto
Mostrá que con f constante por estrato el error es 0.
import random
N = 100
m1 = sum(0.0 for _ in range(90)) / 90
m2 = sum(10.0 for _ in range(10)) / 10
print(0.9*m1 + 0.1*m2)
Ver solución
1,0 exacto: sin varianza dentro del estrato no hay error. El caso ideal.
Ejercicio 3: Neyman a mano
Si s₁ = 0 y s₂ = 5, ¿cómo repartirías N = 100? Justificá.
Ver una posible respuesta
w1, w2, s1, s2 = 0.9, 0.1, 0.0, 5.0
n2 = 100 # todo al que varía
print("n1 = 2 (mínimo), n2 =", 100-2)
Neyman n_h ∝ w_h·s_h: el estrato 1 no varía, con 2 puntos basta; todo al pico.
09 · Síntesis
Ideas para recordar
- Partir en estratos, muestrear cada uno, agregar Σ w_h·m_h.
- Garantiza muestras donde el crudo deja huecos: picos y colas.
- Proporcional por defecto; Neyman si hay s_h distintas.
- Ponderar por volúmenes, nunca por conteos.
- Nunca empeora (bien hecha): la técnica más segura.
En el próximo tema compararemos todo: la comparación de métodos.