01 · Punto de partida
Menos ruido sin más N
Subir N cuesta lineal y baja 1/√N. Las técnicas de reducción atacan σ directamente: con la mitad de σ necesitás la cuarta parte de N. Cuatro ideas cubren casi todo.
Todas son insesgadas si se aplican bien: cambian la varianza, no el valor.
- ¿Mi f es monótona, suave, con parte conocida?
- ¿Puedo parear, corregir, estratificar o reponderar?
- ¿Cuánto cae σ en la práctica?
- ¿El atajo cuesta más de lo que ahorra?
02 · Definición
El mapa en cuatro
Antitéticas (26)
Parear U con 1−U: lo alto compensa lo bajo si f es monótona.
Control (27)
Corregir con una variable conocida y correlacionada: restar lo predecible.
Estratificado (28)
Partir el dominio y muestrear cada parte: sin huecos ni grumos.
Más Importance Sampling (24) para colas: el cuarteto completo se compara en el tema 29.
| Técnica | Cuándo | Ahorro típico |
|---|---|---|
| Antitéticas | f monótona suave | 2–5× menos N |
| Control | Hay C conocida correlacionada | 2–10× si ρ > 0,7 |
| Estratificado | Dominio partible | 2–4×, más en picos |
| IS | Colas raras | 10–100× en colas |
03 · Cómo elegir
- 1Diagnosticar σ.
¿De dónde viene el ruido: monotonía, parte conocida, huecos o cola?
- 2Probar el atajo.
Implementar en 10 líneas sobre el mismo piloto y comparar s.
- 3Medir el factor.
Factor = (s_crudo/s_nuevo)² = N ahorrado. Si es < 1,5, no complicar.
- Factor de ahorro
- N_crudo/N_nuevo para igual error. 4× = мышца: de 20 000 a 5 000.
- Costo por réplica
- Si el atajo duplica el costo por muestra, el factor debe superar 2 para valer.
- Combinables
- Antitéticas + estratificado o control + IS se suman. Probar de a una y luego combinar.
04 · Ejemplos
Un caso por técnica
- 1e^x en [0,1].
Monótona: antitéticas recortan ~3×.
- 2x² con control x.
E[x] = 1/2 conocida y correlacionada: control recorta ~4×.
- 3Pico en 0,9.
Estratificar 10 franjas evita huecos en el pico.
05 · Representación en Python
Crudo vs antitético en 10 líneas
Python en tu navegador. El mismo N, la mitad de σ.
import random
import math
import statistics
def f(x):
return math.exp(x)
N = 5000
crudo = [f(random.random()) for _ in range(2*N)]
anti = [(f(random.random()) + f(1 - random.random())) / 2 for _ in range(N)]
# ojo: parear bien usa el mismo U:
anti = []
for _ in range(N):
u = random.random()
anti.append((f(u) + f(1-u)) / 2)
print("crudo s:", round(statistics.pstdev(crudo), 4))
print("anti s:", round(statistics.pstdev(anti), 4))
06 · Exploración
Laboratorio: parear achica el ±
Integramos e^x en [0,1] (exacta e−1 ≈ 1,718). Gris: crudo con 2N puntos. Verde: antitético con N pares. Igual costo, distinto ±.
El atajo se mide
factor = (s_crudo/s_anti)²
Tocá «Comparar» para medir el ahorro.
Barras con bigotes ±2·SE y línea de la exacta. La verde es más corta: mismo costo, más precisión.
Preguntas para explorar
- ¿El factor ronda 2–4? ¿Cambia con N?
- ¿Por qué el par debe usar el mismo U?
- ¿Qué técnica probarías si f tuviera un pico agudo?
Ver respuestas sugeridas
- Sí, ~3 y estable: el factor es propiedad de f, no de N.
- La correlación negativa exige (U, 1−U): con U distintos son independientes y no compensan.
- Estratificado o IS: partir donde está el pico o muestrear ahí.
07 · Comprensión
Confusiones frecuentes
«Reducir varianza cambia el resultado»
No si es insesgada: cambia el ±, no la media. Si cambia la media, hay bug.
«Siempre conviene complicar»
Solo si el factor supera el costo extra. Factor 1,2 con doble código no paga.
«Más técnicas = mejor»
De a una y midiendo. Combinar sin medir esconde cuál aporta.
«Antitéticas sirven para todo»
Solo monótonas suaves. En picos o colas, estratificado o IS ganan.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: medir el factor
Calculá (s_crudo/s_anti)² para e^x con N = 3 000.
import random
import math
import statistics
def f(x):
return math.exp(x)
N = 3000
crudo = [f(random.random()) for _ in range(2*N)]
anti = []
for _ in range(N):
u = random.random()
anti.append((f(u) + f(1-u)) / 2)
print("factor:", round((statistics.pstdev(crudo)/statistics.pstdev(anti))**2, 2))
Ver solución razonada
~3: de 6 000 evaluaciones crudas a 3 000 pares para igual ±.
Ejercicio 2: romper el pareo
Probá antitéticas con U distintos y mirá el factor.
import random
import math
import statistics
N = 3000
mal = [(math.exp(random.random()) + math.exp(1-random.random()))/2 for _ in range(N)]
# 1-u con OTRO random: en realidad es otro U, da igual que crudo
print(round(statistics.pstdev(mal), 4))
Ver solución
Factor ~1: sin el mismo U no hay compensación. El detalle lo es todo.
Ejercicio 3: elegir técnica
Para P(Z > 3), ¿antitéticas o IS? Justificá en una línea cada una.
Ver una posible respuesta
print("Antitéticas: no, la cola no es monótona útil con 0 casos.")
print("IS N(3,1): sí, muestrea la cola y pondera.")
Elegir por diagnóstico, no por moda: colas piden IS.
09 · Síntesis
Ideas para recordar
- Bajar σ a la mitad vale ×4 N: el ahorro se mide con (s_c/s_n)².
- Cuatro atajos: antitéticas, control, estratificado e IS.
- Probar sobre el piloto y quedarse si el factor paga el costo.
- Parear exige el mismo U; ponderar exige w; partir exige cubrir.
- Los próximos 3 temas detallan cada una.
En el próximo tema empezamos con las variables antitéticas.