Método de Monte Carlo · Tema 11

Estimación mediante promedios

El estimador estrella: sumar lo observado y dividir por N. Simple, insesgado y convergente.

01 · Punto de partida

Todo Monte Carlo es un promedio

Probabilidades, áreas, integrales, ganancias: todas se escriben como esperanzas y todas se estiman igual, con la media muestral. Un solo estimador para todo el curso.

Su fuerza está en lo que promete: en promedio acierta (insesgado) y con N grande se clava en el valor (consistente).

  • ¿Qué esperanza estoy estimando?
  • ¿Qué promedio la estima?
  • ¿Con qué varianza?
  • ¿Cuándo deja de temblar?

02 · Definición

Tres virtudes del promedio

🎯

Insesgado

En promedio da en el blanco: E[θ̂] = θ. No subestima ni sobrestima sistemáticamente.

📉

Varianza σ²/N

Su dispersión cae con N. Más datos, menos temblor, con regla exacta.

🔒

Consistente

Con N → ∞ se pega a θ. Es la promesa que la Ley de los Grandes Números cumple.

Un estimador, muchos problemas.
θ buscadog(Xᵢ) por réplicaθ̂
P(cara)1/0caras/N
Media del dadovalor 1–6suma/N → 3,5
π1 si dentro else 04·dentro/N
Integral de ff(xᵢ)(b−a)·promedio
Ganancia mediagananciaᵢsuma/N

03 · Propiedades

Por qué funciona, en criollo

Insesgado→Preciso→Consistente
  1. 1
    Insesgado.

    Cada g(Xᵢ) apunta a θ en promedio, y el promedio de apuntadores también. Sin truco.

  2. 2
    Varianza conocida.

    Var(θ̂) = σ²/N con σ² la varianza de una réplica. Se estima con la muestra.

  3. 3
    Consistente.

    Varianza → 0 cuando N → ∞: el temblor muere y queda θ.

Estimador
Regla con datos: θ̂. El valor real θ es fijo y desconocido; el estimador tiembla alrededor.
Sesgo
Error sistemático: E[θ̂] − θ. El promedio muestral tiene sesgo 0; un generador malo sí sesga.
Error estándar
Desvío del estimador: σ/√N. Es el «±» que acompaña a todo promedio Monte Carlo.

04 · Ejemplos

Promedios que ya usaste

  1. 1
    Moneda.

    θ = 0,5, σ = 0,5. Con N = 10 000, error ≈ 0,005.

  2. 2
    Dado.

    θ = 3,5, σ ≈ 1,7. Con N = 1 000, error ≈ 0,05.

  3. 3
    Utilidad.

    θ ≈ 50, σ ≈ 15. Con N = 900, error ≈ 0,5 $.

05 · Representación en Python

El patrón de tres líneas

Python en tu navegador. Todo estimador es sum(...) / N más su error.

import random
import statistics

N = 10000
dados = [random.randint(1, 6) for _ in range(N)]
theta = sum(dados) / N
sigma = statistics.pstdev(dados)
print("theta:", round(theta, 3))
print("error:", round(sigma / (N ** 0.5), 4))
import random

def estimar(f, N):
    vals = [f() for _ in range(N)]
    return sum(vals) / N

print(estimar(lambda: random.random() < 0.5, 5000))
print(estimar(lambda: random.randint(1, 6), 5000))

06 · Exploración

Laboratorio: el dado se rinde a 3,5

Cada punto es el promedio acumulado de dados. Al principio salta de 1 a 6; después se enrosca en 3,5 con banda ±2·error.

EXPERIMENTO 11

Promediar domestica el azar

θ̂ₙ = (g₁ + … + gₙ) / n

Los resultados numéricos aparecen debajo.
Promedio final—
Error ±—
Distancia a 3,5—
Lectura—

Tocá «Tirar dados» para promediar.

Línea celeste: promedio acumulado. Banda amarilla: 3,5 ± 2·error final. El promedio entra a la banda y ya no sale.

Preguntas para explorar

  1. Con N = 200, ¿el promedio puede dar 3,2 o 3,8?
  2. Con N = 15 000, ¿se sale de 3,5 ± 0,05?
  3. ¿Por qué el primer dado pesa más que el dado 5 000?
Ver respuestas sugeridas
  1. Sí: error ≈ 0,12. Es ruido, no sesgo.
  2. Rara vez: error ≈ 0,014. La banda lo contiene el ~95%.
  3. El primero aporta 1/1; el 5 000 aporta 1/5000 al promedio. El pasado amortigua.

07 · Comprensión

Confusiones frecuentes

«Promediar quita el sesgo del generador»

No: si el dado está cargado, el promedio converge al valor cargado. Insesgado vale con F correcta.

«Mediana y media dan igual»

Solo en simétricas. Para colas (ganancias, tiempos) difieren: Monte Carlo estándar usa la media.

«Un promedio con N = 30 ya es θ»

Es θ̂ con error grande. Sin ± no hay estimación.

«Si el promedio dio exacto, convergió»

Pudo ser suerte cruzando la línea. La convergencia se juzga con el error y R réplicas.

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: media y error del dado

Estimá con N = 2 000 y reportá con su error.

import random
import statistics

N = 2000
ds = [random.randint(1, 6) for _ in range(N)]
m = sum(ds) / N
print(m, statistics.pstdev(ds) / (N ** 0.5))
Ver solución razonada

~3,5 ± 0,04. El segundo número es tan importante como el primero.

Ejercicio 2: estimador genérico

Usá estimar(f, N) para π con indicadora.

import random

def estimar(f, N):
    return sum(f() for _ in range(N)) / N

p = estimar(lambda: random.random()**2 + random.random()**2 <= 1, 10000)
print(4 * p)
Ver solución

~3,14. El mismo estimar sirve para moneda, dado y π: cambia f, no el patrón.

Ejercicio 3: sesgo a propósito

Simulá un dado cargado (6 con p = 0,5) y mostrá que el promedio converge… al valor cargado.

Ver una posible respuesta
import random

def dado_cargado():
    return 6 if random.random() < 0.5 else random.randint(1, 5)

N = 20000
print(sum(dado_cargado() for _ in range(N)) / N)

Da ~4,5, no 3,5. El promedio es fiel a la F sorteada: si F está mal, converge mal.

09 · Síntesis

Ideas para recordar

  • θ̂ = promedio de g(Xᵢ): un estimador para probabilidades, áreas, integrales y medias.
  • Insesgado (apunta bien), varianza σ²/N (tiembla poco con N), consistente (llega).
  • Siempre con error σ/√N: el promedio solo es la mitad del informe.
  • En Python: sum(f() for _ in range(N)) / N.
  • La garantía vale con F correcta e iid; si no, converge al valor equivocado.

En el próximo tema veremos la convergencia de las estimaciones: cómo leer cuándo el promedio ya se calmó.