Método de Monte Carlo · Tema 09

Número de simulaciones

Cuántas réplicas pedir: la regla 1/√N, la prueba piloto y la cuenta para una precisión objetivo.

01 · Punto de partida

N no se adivina, se calcula

¿100, 10 000 o un millón? Con N chico el promedio tiembla; con N gigante perdés tiempo. La respuesta depende de cuánto error tolerás y de cuánto varía tu salida.

La buena noticia: el error cae con regla fija, 1/√N. Con una prueba piloto de 1 000 réplicas ya podés predecir el N que necesitás.

  • ¿Qué precisión necesito: ±0,1, ±0,01, ±1 $?
  • ¿Cuánto varía mi salida (σ)?
  • ¿Cuánto cuesta cada réplica?
  • ¿Con qué N piloto estimo σ?

02 · Definición

La regla 1/√N manda

📉

Error

Error estándar = σ/√N. No depende del problema, solo de σ y N.

🧪

Piloto

Corrida corta (500–2 000) para estimar σ y proyectar N sin gastar de más.

🎯

N objetivo

N = (1,96·σ/e)² para un semi-ancho e al 95%. La cuenta que justifica el presupuesto.

Cuánto cuesta cada decimal (moneda, σ = 0,5).
NError ±Lectura
100±0,10Boceto: sirve para depurar
1 000±0,03Exploración seria
10 000±0,01Publicable en clase
100 000±0,003Diez veces más costo por un decimal

03 · Método

Piloto → cuenta → corrida final en 3 pasos

Piloto→Cuenta→Final
  1. 1
    Correr piloto.

    N₀ = 1 000, calcular media y σ muestral. Barato y rápido.

  2. 2
    Calcular N.

    Fijar e deseado y aplicar N = (1,96·σ/e)². Redondear hacia arriba.

  3. 3
    Correr final.

    Una sola corrida grande con otra semilla. Reportar estimación ± e.

Bien dimensionado

Justifica N

«Piloto σ = 15, quiero e = 1 $ ⇒ N ≈ 864». Nadie discute el presupuesto.

Mal dimensionado

N mágico

«Puse 1 000 porque sí». Puede sobrar 10× o faltar 100× sin que te enteres.

Semi-ancho e
Margen del intervalo: estimación ± e. Lo fijás vos según la decisión (¿±1 $? ¿±0,01?).
z = 1,96
Factor del 95% normal. Para 99% usá 2,58. Más confianza = más N.
Costo
Tiempo por réplica × N. Si cada réplica cuesta, el piloto ahorra horas.

04 · Ejemplos

Tres cuentas típicas

  1. 1
    Moneda ±0,01.

    σ ≈ 0,5 ⇒ N ≈ (1,96·0,5/0,01)² ≈ 9 600. Por eso 10 000 es el clásico.

  2. 2
    Utilidad σ = 15, e = 1 $.

    N ≈ (1,96·15/1)² ≈ 864. Con 1 000 alcanza.

  3. 3
    P = 0,05 ± 0,005.

    σ = √[0,05·0,95] ≈ 0,22 ⇒ N ≈ 7 300. Los eventos raros piden más N.

05 · Representación en Python

Del piloto al N en código

Python en tu navegador. Corré el piloto, calculá N y verificá el error final.

import random
import statistics
import math

piloto = [150 - random.gauss(100, 15) for _ in range(1000)]
sigma = statistics.pstdev(piloto)
e = 1.0
N = math.ceil((1.96 * sigma / e) ** 2)
print("sigma:", round(sigma, 2), "N necesario:", N)
import random
import math

def n_para_proporcion(p, e=0.01, z=1.96):
    sigma = math.sqrt(p * (1 - p))
    return math.ceil((z * sigma / e) ** 2)

print(n_para_proporcion(0.5, 0.01))  # moneda
print(n_para_proporcion(0.05, 0.005))  # evento raro

06 · Exploración

Laboratorio: el embudo se cierra como 1/√N

Simulamos la moneda con tu N y dibujamos el embudo teórico ±1,96·0,5/√n. Tu punto debe caer dentro del embudo el 95% de las veces.

EXPERIMENTO 09

Cuánto N cierra el embudo

ancho = 2·1,96·σ/√N

Los resultados numéricos aparecen debajo.
Estimación—
Semi-ancho ±—
N necesario ±0,01—
Lectura—

Tocá «Correr» para simular la moneda con N.

Curva: semi-ancho teórico que cae como 1/√N. Punto: tu corrida. Si duplicás N cuatro veces, el ancho se parte a la mitad.

Preguntas para explorar

  1. Con N = 400, ¿el semi-ancho ronda 0,05? ¿Y con N = 6 400?
  2. ¿Por qué pasar de 100 a 1 000 se nota y de 20 000 a 30 000 casi no?
  3. Si tu punto cae fuera del embudo, ¿está mal el código?
Ver respuestas sugeridas
  1. Sí: 1,96·0,5/√400 ≈ 0,049 y con 6 400 ≈ 0,012. Cuadruplicar parte a la mitad.
  2. El eje es 1/√N: al principio cae en picada, después se aplana. Rendimientos decrecientes.
  3. No necesariamente: 5% de las veces cae fuera por azar. Repetilo: si siempre cae fuera, ahí sí hay sesgo.

07 · Comprensión

Confusiones frecuentes

«Más N siempre es proporcionalmente mejor»

10× más N solo divide el error por ~3,2. Cada decimal extra cuesta 100×.

«N = 1 000 sirve para todo»

Depende de σ y e. Para σ = 15 y e = 0,1 harían falta 86 000. La cuenta manda.

«El piloto gasta tiempo»

Lo ahorra: 1 000 réplicas evitan correr 100 000 de más o repetir por falta.

«Eventos raros necesitan poco N»

Al revés: con p = 0,01 y N = 500 esperás 5 casos. El error relativo es enorme.

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: verificar la tabla

Comprobá que con σ = 0,5 y N = 100 el semi-ancho da ~0,10.

import math

def semi(sigma, N, z=1.96):
    return z * sigma / math.sqrt(N)

for N in [100, 1000, 10000]:
    print(N, round(semi(0.5, N), 4))
Ver solución razonada

0,098 / 0,031 / 0,0098. Cada ×10 de N divide por √10 ≈ 3,16.

Ejercicio 2: N para e = 2 $

Si σ = 15 y querés ±2 $, ¿qué N necesitás?

import math

sigma, e = 15, 2
print(math.ceil((1.96 * sigma / e) ** 2))
Ver solución

≈ 217. Tolerar el doble de error cuesta 4× menos réplicas.

Ejercicio 3: piloto real

Hacé un piloto de 800 para la utilidad y proyectá N para e = 1 $.

Ver una posible respuesta
import random
import statistics
import math

piloto = [150 - random.gauss(100, 15) for _ in range(800)]
s = statistics.pstdev(piloto)
print("sigma piloto:", round(s, 2))
print("N:", math.ceil((1.96 * s / 1.0) ** 2))

Verás σ ≈ 15 y N ≈ 860. El piloto predice sin gastar la corrida final.

09 · Síntesis

Ideas para recordar

  • El error cae como σ/√N: cuadruplicar N parte el error a la mitad.
  • Piloto corto para estimar σ, cuenta N = (z·σ/e)², corrida final única.
  • Fijar e según la decisión: no hay N universal.
  • Eventos raros y σ grande piden más N.
  • Reportar N junto a σ y e: es la prueba de que alcanzó.

En el próximo tema separaremos las replicaciones: repetir corridas para validar la estabilidad.