Método de Monte Carlo · Tema 14

Estimación del error

El ± que acompaña a todo promedio: varianza muestral y error estándar s/√N.

01 · Punto de partida

Sin ± no hay estimación

«π ≈ 3,14» no dice nada. «π ≈ 3,14 ± 0,02» dice todo: precisión, costo y si alcanza para decidir. El error se estima de la misma muestra, sin datos extra.

La receta: varianza muestral s², error estándar s/√N, y reportar media ± error.

  • ¿Cuánto varía una réplica (s)?
  • ¿Cuánto tiembla el promedio (s/√N)?
  • ¿El ± alcanza para mi decisión?
  • ¿Qué N lo parte a la mitad?

02 · Definición

Dos varianzas, no las mezcles

🌊

s (réplica)

Dispersión de una observación: cuánto varía un dado, un costo. No cae con N.

🎯

SE (promedio)

Dispersión del promedio: s/√N. Cae con N y es el ± del informe.

📏

N−1

La varianza muestral divide por N−1 (no N): corrección para no subestimar con N chico.

s frente a SE con ejemplos.
Casos (una réplica)SE con N = 10 000
Moneda0,500,005
Dado1,710,017
Utilidad N(50,15)15 $0,15 $
π (indicadora ×4)1,640,016

03 · Cálculo

Del dato al ± en 3 pasos

Media→s→SE
  1. 1
    Media.

    m = Σyᵢ/N. El centro del informe.

  2. 2
    s.

    s² = Σ(yᵢ − m)²/(N−1). En Python: statistics.stdev().

  3. 3
    SE.

    SE = s/√N. Informar m ± SE (68%) o m ± 2·SE (~95%).

stdev vs pstdev
Con muestra usá stdev (÷N−1). pstdev (÷N) es para población completa.
Proporciones
Si yᵢ es 0/1, s = √[p(1−p)] y SE = √[p(1−p)/N]. Sin guardar la lista.
Unidades
s y SE llevan la unidad de y ($, puntos). La varianza lleva unidad²: no la reportes sola.

04 · Ejemplos

El ± en cada problema

  1. 1
    Dado N = 1 000.

    m ≈ 3,5, s ≈ 1,71, SE ≈ 0,054. Informe: 3,50 ± 0,05.

  2. 2
    π N = 10 000.

    m ≈ 3,14, s ≈ 1,64, SE ≈ 0,016. Informe: 3,14 ± 0,02.

  3. 3
    P(falla) N = 5 000.

    p ≈ 0,05, SE = √[0,05·0,95/5000] ≈ 0,003. Informe: 0,050 ± 0,003.

05 · Representación en Python

Media y error en una función

Python en tu navegador. Una función devuelve (media, s, SE): úsala en todo el curso.

import random
import statistics
import math

def media_mas_error(vals):
    m = sum(vals) / len(vals)
    s = statistics.stdev(vals) if len(vals) > 1 else 0.0
    return m, s, s / math.sqrt(len(vals))

dados = [random.randint(1, 6) for _ in range(2000)]
m, s, se = media_mas_error(dados)
print(f"media {m:.3f} ± {se:.3f} (s={s:.3f})")
import random
import math

N = 10000
dentro = sum(1 for _ in range(N) if random.random()**2 + random.random()**2 <= 1)
p = dentro / N
se_pi = 4 * math.sqrt(p * (1 - p) / N)
print(f"pi {4*p:.4f} ± {se_pi:.4f}")

06 · Exploración

Laboratorio: ver el ± achicarse

Utilidad = 150 − N(100, 15). El histograma es la dispersión de réplicas (s ≈ 15); las bandas son media ± SE y ± 2·SE. Subí N y mirá las bandas cerrarse.

EXPERIMENTO 14

s fijo, SE que cae

SE = s / √N

Los resultados numéricos aparecen debajo.
Media—
s (réplica)—
SE (promedio)—
Lectura—

Tocá «Simular» para medir el error.

Ancho del histograma = s (no cambia). Ancho de bandas = SE (cae como 1/√N). Confundirlos es el error clásico.

Preguntas para explorar

  1. Con N = 100 y N = 10 000, ¿s cambia? ¿Y SE?
  2. ¿Cuánto vale SE con N = 225 si s = 15?
  3. ¿Por qué ±2·SE se usa como ~95%?
Ver respuestas sugeridas
  1. s ≈ 15 en ambos; SE ≈ 1,5 vs 0,15. s es del dato, SE del promedio.
  2. 15/√225 = 1. Informe: media ± 1 (68%) o ± 2 (95%).
  3. Por el Teorema Central: el promedio se vuelve normal y ±2σ cubre ~95%. Lo veremos en el tema 15.

07 · Comprensión

Confusiones frecuentes

«Error = s»

s es la dispersión de una réplica; el error del promedio es s/√N, 100× menor con N = 10 000.

«Dividir por N o N−1 da igual»

Con N = 10 da 5% de diferencia. Usá N−1 (stdev) para s muestral.

«SE chico significa datos juntos»

No: significa promedio preciso. Los datos pueden seguir dispersos (s grande).

«El error se adivina del gráfico»

Se calcula: s/√N. El ojo estima anchos, no errores.

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: s vs SE del dado

Con N = 3 600, mostrá que s ≈ 1,71 y SE ≈ 0,028.

import random
import statistics
import math

ds = [random.randint(1, 6) for _ in range(3600)]
s = statistics.stdev(ds)
print("s:", round(s, 3), "SE:", round(s / math.sqrt(3600), 4))
Ver solución razonada

s ≈ 1,71 (fijo) y SE = s/60 ≈ 0,028. Elegí 3 600 porque √3600 = 60 exacto.

Ejercicio 2: error de una proporción

Con p̂ = 0,30 y N = 2 500, calculá SE sin lista.

import math

p, N = 0.30, 2500
print(math.sqrt(p * (1 - p) / N))
Ver solución

≈ 0,0092. Para 0/1 no hace falta la lista: la varianza sale de p.

Ejercicio 3: N para partir el error

Si con N = 500 el SE es 0,67, ¿qué N lo baja a 0,335?

Ver una posible respuesta
print(500 * 4)  # cuadruplicar parte a la mitad

2 000. La regla inversa también vale: para ×2 de precisión, ×4 de N.

09 · Síntesis

Ideas para recordar

  • s = dispersión de la réplica (no cae); SE = s/√N = error del promedio (sí cae).
  • s² con N−1 (stdev); proporciones con √[p(1−p)/N].
  • Informar media ± SE o ±2·SE, con unidad y N.
  • Cuadruplicar N parte el error a la mitad.
  • El SE habilita el próximo paso: intervalos de confianza.

En el próximo tema convertiremos el ± en intervalos de confianza: el rango creíble del valor real.