01 · Punto de partida
Comparar en serio, no a ojo
Cada técnica promete menos σ, pero solo en su terreno. La comparación justa exige mismo presupuesto de evaluaciones, mismas semillas y métrica común: el factor (s_crudo/s_nuevo)².
En e^x gana el control; en picos, el estratificado; en colas, IS. El crudo es el árbitro.
- ¿Cuál es el presupuesto común (evals)?
- ¿Uso las mismas semillas para todos?
- ¿Mido factor o solo SE?
- ¿El ganador paga su complejidad?
02 · Definición
Reglas del duelo
Presupuesto
Igual n° de evaluaciones f: N pares = 2N crudas. El tiempo manda.
Semillas
Mismas U base para todos: la diferencia es técnica, no suerte.
Factor
(s_crudo/s)² con s sobre el estimador final. 4× = de 20 000 a 5 000.
| Problema | Ganador | Factor típico |
|---|---|---|
| e^x suave monótona | Control (x) | ~17× |
| Pico en [0,9, 1] | Estratificado | 10×+ (hasta exacto) |
| P(Z > 3) | IS N(3,1) | 50–100× |
| Plana sin estructura | Crudo | 1×: no complicar |
03 · Protocolo
- 1Fijar presupuesto.
Ej.: 4 000 evals para todos. Antitético: 2 000 pares; resto: 4 000.
- 2Reutilizar U.
Generar una base U y derivar cada método de ella (pares, estratos, controles).
- 3Medir y decidir.
s, SE y factor por método. Elegir el de mayor factor/costo.
- Varianza común
- Usar las mismas U correlaciona los estimadores: la diferencia se mide con menos ruido.
- Costo por eval
- Si IS evalúa p y q, cuesta ~2×: el factor debe superar 2.
- Robustez
- Repetir el duelo con 5 semillas: el ganador debe ganar siempre, no una vez.
04 · Duelo en e^x
Integral e^x en [0,1] = e−1 con 4 000 evals para todos. Resultado típico:
- 1Crudo.
SE ≈ 0,008. Referencia 1×.
- 2Antitético.
SE ≈ 0,005. Factor ~3×.
- 3Control x.
SE ≈ 0,002. Factor ~17×. Ganador aquí.
- 4Estratificado 4.
SE ≈ 0,004. Factor ~4×. Segundo.
05 · Representación en Python
Benchmark justo en 20 líneas
Python en tu navegador. Misma base U, cuatro estimadores, cuatro s.
import random
import math
import statistics
N = 4000
us = [random.random() for _ in range(N)]
crudo = [math.exp(u) for u in us]
anti = [(math.exp(us[i]) + math.exp(1-us[i]))/2 for i in range(0, N, 2)]
mc = sum(us)/N
b = sum((y-sum(crudo)/N)*(c-mc) for y, c in zip(crudo, us))/sum((c-mc)**2 for c in us)
ctrl = [y-b*(c-0.5) for y, c in zip(crudo, us)]
K = 4
est = []
for k in range(K):
xs = [(k+random.random())/K for _ in range(N//K)]
est += [math.exp(x) for x in xs]
def se(a):
return statistics.pstdev(a)/math.sqrt(len(a))
print("crudo", round(se(crudo), 5))
print("anti", round(se(anti), 5))
print("control", round(se(ctrl), 5))
print("estrat", round(se(est), 5))
06 · Exploración
Laboratorio: el duelo en vivo
Cuatro barras con bigotes ±2·SE para e−1 ≈ 1,718 con igual presupuesto. Cambiá N y mirá quién se achica más.
Mismo N, distinto ±
factor = s_crudo² / s²
Tocá «Duelo» para comparar.
Verde corto = ganador. Si dos empatan, gana el más simple: menos código, menos bugs.
Preguntas para explorar
- ¿Gana siempre el control en e^x?
- ¿El ranking cambia con N?
- ¿Qué método elegirías para un pico agudo?
Ver respuestas sugeridas
- Sí: ρ ≈ 0,97 es imbatible aquí. Factor 12–20 estable.
- No el orden, solo los anchos: los factores son propiedad de f.
- Estratificado o IS: el control con x no ve picos locales.
07 · Comprensión
Confusiones frecuentes
«Comparo con N distintos»
Sin igual presupuesto no hay duelo: el de más N gana por gastar más, no por ser mejor.
«Gana el de media más linda»
Gana el de menor SE con igual media. La media debe coincidir (insesgados).
«Un duelo basta»
Repetir con 5 semillas: si el ganador rota, empatan.
«El ganador vale para todo»
Solo para esa f y ese N. Cambia el problema, cambia el duelo.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: duelo mínimo
Compará crudo vs antitético para e^x con 4 000 evals.
import random
import math
import statistics
us = [random.random() for _ in range(4000)]
crudo = [math.exp(u) for u in us]
anti = [(math.exp(us[i])+math.exp(1-us[i]))/2 for i in range(0, 4000, 2)]
print(statistics.pstdev(crudo)/math.sqrt(4000))
print(statistics.pstdev(anti)/math.sqrt(2000))
Ver solución razonada
~0,008 vs ~0,005: antitético gana ~3× con igual evals.
Ejercicio 2: precio del IS
Si IS evalúa 2 densidades por muestra, ¿qué factor mínimo lo justifica?
print("Factor > 2 para empatar en tiempo; > 4 para convenir.")
Ver solución
En colas el factor es 50+: paga. En cuerpos con factor 1,5 no paga.
Ejercicio 3: elegir por problema
Elegí técnica para: a) e^x, b) pico [0,9, 1], c) P(Z > 3).
Ver una posible respuesta
print("a) control x; b) estratificado; c) IS N(3,1)")
Suave → control; pico → estratos; cola → IS. Diagnóstico antes que moda.
09 · Síntesis
Ideas para recordar
- Duelo justo: mismo presupuesto, mismas U, factor común.
- e^x: control gana (~17×); pico: estratificado; cola: IS.
- El factor es de f, no de N: el ranking es estable.
- Desempatar por simplicidad si los SE empatan.
- Repetir el duelo: el ganador debe ganar siempre.
En el próximo tema diseñaremos los experimentos: el diseño de experimentos Monte Carlo.