Método de Monte Carlo · Tema 10

Replicaciones

Repetir la corrida entera con otra semilla: si las réplicas no se parecen, el N no alcanza.

01 · Punto de partida

Una corrida no prueba nada

Con N = 10 000 la moneda da 0,502. ¿Suerte o convergencia? La única forma de saberlo es repetir la corrida completa con otra semilla y mirar cuánto se mueven los resultados entre sí.

Cada macro-réplica es una simulación entera de n escenarios. La dispersión entre réplicas mide la estabilidad real.

  • ¿Cuántas macro-réplicas R conviene hacer?
  • ¿Qué n lleva cada una?
  • ¿Cuánto se dispersan entre sí?
  • ¿La conclusión aguanta el cambio de semilla?

02 · Definición

Dos niveles de repetición

🎲

Réplica (n)

Un escenario dentro de la corrida. N total = R × n si hay replicaciones.

📦

Replicación (R)

Una corrida entera con semilla propia. Típico: R = 10–30 para validar.

📏

Dispersión

Desvío entre las R medias. Si es grande frente a e, falta n o sobra ruido.

Nivel interno frente a nivel externo.
NivelQué esPara qué sirve
n escenariosDentro de una corridaReducir el error 1/√n
R replicacionesCorridas con otra semillaVerificar estabilidad y detectar sesgos
R × n totalPresupuesto totalRepartir entre precisión (n) y confianza (R)

03 · Método

Validar en 3 pasos

Repetir→Comparar→Consolidar
  1. 1
    Repetir R veces.

    Misma n, semillas 1…R. Guardar cada media m₁…mR.

  2. 2
    Comparar dispersión.

    Rango y desvío de las m. Si el rango supera 2e, agrandar n.

  3. 3
    Consolidar.

    Media global y su error con desvío entre réplicas. Reportar R, n y semillas.

Bien validado

R = 20, n = 5 000

20 puntos apiñados en ±0,01: la conclusión no depende de la semilla.

Sin validar

Una corrida de 100 000

Un solo número sin dispersión: imposible saber si fue suerte.

Semillas 1…R
Secuencia explícita y reproducible. Nada de «semilla aleatoria del sistema» sin anotar.
Error entre réplicas
Desvío de las m dividido √R. Alternativa sólida al σ/√N interno.
Comparar políticas
Usar las mismas R semillas para cada Q: la diferencia deja de ser ruido.

04 · Ejemplos

Cuándo R salva el día

  1. 1
    Moneda.

    R = 20 × n = 1 000: las 20 medias caen en 0,5 ± 0,03. Estable.

  2. 2
    Q óptimo.

    Q = 100 gana en las 20 semillas: la decisión es robusta, no un golpe de suerte.

  3. 3
    Evento raro.

    Con p = 0,01 y n = 500, algunas réplicas dan 0: R revela que n no alcanza.

05 · Representación en Python

El doble bucle: R afuera, n adentro

Python en tu navegador. R corridas, una media por corrida, y la dispersión canta.

import random
import statistics

def una_corrida(n, semilla):
    random.seed(semilla)
    return sum(random.random() < 0.5 for _ in range(n)) / n

R, n = 20, 1000
medias = [una_corrida(n, s) for s in range(1, R + 1)]
print("medias:", [round(m, 3) for m in medias[:5]], "...")
print("global:", round(statistics.mean(medias), 4))
print("desvío entre réplicas:", round(statistics.pstdev(medias), 4))

06 · Exploración

Laboratorio: 20 corridas no mienten

Cada punto es una replicación (media de n tiradas). Subí n y mirá cómo los puntos se apiñan sobre 0,5. Subí R y mirá cómo se llena el cuadro.

EXPERIMENTO 10

R medias, una verdad

mⱼ = carasⱼ / n · j = 1…R

Los resultados numéricos aparecen debajo.
Media global—
Rango—
Desvío entre R—
Lectura—

Tocá «Replicar» para correr R corridas.

Puntos: medias de cada replicación. Línea amarilla: 0,5. Banda: ±2·error. Con n chico los puntos se desparraman; con n grande se alinean.

Preguntas para explorar

  1. Con n = 200 y R = 30, ¿qué rango cubren los puntos?
  2. Con n = 5 000, ¿el rango se parte a la mitad o mucho más?
  3. ¿Para qué sirve subir R si ya tenés n grande?
Ver respuestas sugeridas
  1. ~0,15 de ancho: verás puntos de 0,42 a 0,58. Normal con n chico.
  2. Mucho más: el desvío cae como 1/√n, de ~0,035 a ~0,007. Se apiñan.
  3. Para probar estabilidad y estimar el error entre réplicas. R grande no achica el sesgo, lo revela.

07 · Comprensión

Confusiones frecuentes

«R × n chico equivale a N grande»

En total sí, pero R aporta el diagnóstico: 20×500 diagnostica mejor que 1×10 000 a ciegas.

«Cambio la semilla y cambió todo: hay bug»

No: con n chico es esperable. El bug es no haber medido esa variación.

«Con R = 3 alcanza»

Tres puntos no estiman dispersión. Mínimo 10, ideal 20–30.

«Replicar es tirar N más grande»

Replicar es estructurar: mismas n, distintas semillas, análisis entre medias. No es solo sumar.

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: rango con n chico

Corré R = 15 con n = 200 y anotá el rango de las medias.

import random

def corrida(n, s):
    random.seed(s)
    return sum(random.random() < 0.5 for _ in range(n)) / n

ms = [corrida(200, s) for s in range(15)]
print(round(min(ms), 3), round(max(ms), 3), round(max(ms) - min(ms), 3))
Ver solución razonada

Rango ~0,15. Con n = 200 el error por réplica es ~0,035: el rango de 15 cubre unas 4σ.

Ejercicio 2: apiñar con n grande

Repetí con n = 5 000. ¿Cuánto se achica el rango?

import random

def corrida(n, s):
    random.seed(s)
    return sum(random.random() < 0.5 for _ in range(n)) / n

ms = [corrida(5000, s) for s in range(15)]
print(round(max(ms) - min(ms), 4))
Ver solución

~0,03: cae ~5× porque √(5000/200) = 5. La teoría 1/√n se ve en el rango.

Ejercicio 3: comparar Q con mismas semillas

Q = 90 vs 100 con las mismas 10 semillas: ¿gana siempre el mismo?

Ver una posible respuesta
import random

def media_Q(Q, n, s):
    random.seed(s)
    tot = 0
    for _ in range(n):
        D = random.choices([80, 100, 120], weights=[30, 40, 30])[0]
        tot += 5 * min(Q, D) - 2 * Q
    return tot / n

semillas = list(range(10))
dif = [media_Q(100, 2000, s) - media_Q(90, 2000, s) for s in semillas]
print([round(d, 1) for d in dif])
print("gana 100 en:", sum(1 for d in dif if d > 0), "/10")

100 gana en casi todas: decisión robusta. Con semillas distintas por Q, el ruido taparía la diferencia.

09 · Síntesis

Ideas para recordar

  • Réplica = escenario; replicación = corrida con su semilla.
  • R = 10–30 valida; n da la precisión. Presupuesto total R × n.
  • La dispersión entre mⱼ es el test de estabilidad.
  • Comparar políticas con las mismas semillas elimina ruido común.
  • Reportar R, n y semillas: sin eso no hay reproducibilidad.

En el próximo tema formalizaremos la estimación mediante promedios: el estimador estrella y sus garantías.