Método de Monte Carlo · Tema 15

Intervalos de confianza

Del ± al rango creíble: media ± z·SE y qué significa el 95%.

01 · Punto de partida

El ± se vuelve intervalo

«0,502 ± 0,005» es útil; «[0,497, 0,507] al 95%» decide. El intervalo traduce el error en rango donde vive el valor real con confianza conocida.

La receta del curso: IC = media ± z·SE, con z = 1,96 para 95%.

  • ¿Qué confianza necesito: 90, 95, 99%?
  • ¿Qué z le corresponde?
  • ¿El intervalo alcanza para decidir?
  • ¿Qué N lo angosta a e?

02 · Definición

Tres confianzas de memoria

📊

90% · z = 1,64

Angosto pero arriesgado: 1 de cada 10 intervalos falla.

🎯

95% · z = 1,96

El estándar del curso: 1 de cada 20 falla. Equilibrio justo.

🔒

99% · z = 2,58

Ancho y seguro: 1 de cada 100 falla. Para decisiones críticas.

El mismo error, tres anchos (moneda N = 10 000, SE = 0,005).
ConfianzazIC para 0,502
90%1,64[0,494, 0,510]
95%1,96[0,492, 0,512]
99%2,58[0,489, 0,515]

03 · Interpretación

Qué dice y qué no dice el 95%

Ancho→Posición→Decisión
  1. 1
    Ancho = precisión.

    Angosto ⇒ N grande o σ chico. Ancho ⇒ falta N.

  2. 2
    Posición = valor.

    Dónde vive el real con 95%. Si el umbral queda fuera, la decisión es clara.

  3. 3
    Decisión.

    Si [2,48, 2,52] y el corte es 2,40: gana seguro. Si [2,35, 2,55]: empatan, falta N.

95% bien entendido
De 100 intervalos, ~95 contienen al real. No es «P(real en mi intervalo) = 95%»: el real es fijo, el intervalo tiembla.
Teorema Central
Con N grande el promedio es casi normal: por eso vale z. Con N ≥ 30–100 ya funciona en la práctica.
Solapamiento
Si los IC de A y B no se tocan, A gana. Si se solapan mucho, no hay ganador sin más N.

04 · Ejemplos

Decidir con intervalos

  1. 1
    Q = 100 vs 90.

    IC₁₀₀ = [285, 295], IC₉₀ = [235, 245]: no se tocan ⇒ 100 gana.

  2. 2
    π.

    3,14 ± 0,03 ⇒ [3,11, 3,17]: contiene a π. Informe honesto.

  3. 3
    Empate.

    [48, 54] vs [50, 56]: se solapan ⇒ faltan réplicas para desempatar.

05 · Representación en Python

Función intervalo para todo el curso

Python en tu navegador. Una función devuelve (media, li, ls): el informe completo.

import random
import statistics
import math

def intervalo(vals, z=1.96):
    m = sum(vals) / len(vals)
    se = statistics.stdev(vals) / math.sqrt(len(vals))
    return m, m - z * se, m + z * se

dados = [random.randint(1, 6) for _ in range(5000)]
m, li, ls = intervalo(dados)
print(f"media {m:.3f} IC95 [{li:.3f}, {ls:.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 = math.sqrt(p * (1 - p) / N)
print(f"pi {4*p:.4f} IC95 [{4*(p-1.96*se):.4f}, {4*(p+1.96*se):.4f}]")

06 · Exploración

Laboratorio: 50 intervalos, ~48 aciertan

Cada segmento es un IC₉₅ de una corrida de moneda. Verde si cubre al 0,5, rojo si falla. Con N chico son anchos; con N grande, finos.

EXPERIMENTO 15

El 95% a ojo

IC = p̂ ± 1,96·SE

Los resultados numéricos aparecen debajo.
Cubren 0,5—
Ancho medio—
Fallan—
Lectura—

Tocá «Generar» para construir 50 intervalos.

Línea amarilla: 0,5 real. Si ves 2–3 rojos de 50, todo anda bien: es el 5% prometido.

Preguntas para explorar

  1. Con N = 200, ¿los intervalos son anchos o finos? ¿Cuántos fallan?
  2. Con N = 8 000, ¿siguen fallando ~2–3?
  3. ¿Por qué el ancho cae pero la tasa de rojos no?
Ver respuestas sugeridas
  1. Anchos (±0,07): fallan 2–4 de 50. Ancho grande, cobertura correcta.
  2. Sí: finos (±0,011) pero siempre ~5% fuera. La confianza no depende de N.
  3. N achica el intervalo, no la probabilidad de fallar: el 95% es por construcción con z = 1,96.

07 · Comprensión

Confusiones frecuentes

«95% de que el real esté dentro»

Casi: 95% de los intervalos contienen al real. El tuyo ya está fijo: contiene o no, y no lo sabés.

«Más confianza sin más ancho»

99% es más ancho que 95% con igual N. Confianza se paga con ancho o con N.

«Si se solapan, empatan seguro»

Solape grande sugiere empate, pero la prueba formal usa la diferencia. No dictamines solo a ojo.

«IC con N = 20 vale igual»

Con N chico usar z es optimista: conviene t de Student. Con N ≥ 100, z alcanza.

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: IC del dado

Con N = 2 000, reportá media con IC₉₅.

import random
import statistics
import math

ds = [random.randint(1, 6) for _ in range(2000)]
m = sum(ds) / len(ds)
se = statistics.stdev(ds) / math.sqrt(len(ds))
print(f"{m:.3f} [{m-1.96*se:.3f}, {m+1.96*se:.3f}]")
Ver solución razonada

~3,50 [3,42, 3,58]. Ancho ~0,16: para ±0,05 harían falta ~12 000.

Ejercicio 2: cobertura a mano

Generá 200 IC de moneda con N = 500 y contá cuántos cubren 0,5.

import random
import math

ok = 0
for _ in range(200):
    p = sum(random.random() < 0.5 for _ in range(500)) / 500
    se = math.sqrt(p * (1 - p) / 500)
    if abs(p - 0.5) <= 1.96 * se:
        ok += 1
print(ok, "/ 200")
Ver solución

~190/200. Si te da 150 o 200 clavado, repetí: la cobertura también tiembla.

Ejercicio 3: decidir con IC

Q = 100 da [285, 295] y Q = 90 da [235, 245]. ¿Hay ganador? ¿Y si dieran [280, 292] y [285, 297]?

Ver una posible respuesta
def hay_ganador(a, b):
    return a[1] < b[0] or b[1] < a[0]

print(hay_ganador((285, 295), (235, 245)))  # True
print(hay_ganador((280, 292), (285, 297)))  # False

Sin solape hay ganador; con solape, empate técnico: más N o misma semilla para desempatar.

09 · Síntesis

Ideas para recordar

  • IC = media ± z·SE: 90% (1,64), 95% (1,96), 99% (2,58).
  • 95% significa 95 de cada 100 intervalos contienen al real.
  • Ancho = precisión; posición = valor; solape = empate.
  • Informar media [li, ls] (confianza, N): auditable.
  • El IC decide: umbral fuera ⇒ ganador; dentro ⇒ falta N.

En el próximo tema aplicaremos todo a la estrella: la estimación de π mediante Monte Carlo.