Probabilidad y Estadística · Tema 03

Experimentos aleatorios

Repetir bajo las mismas condiciones y obtener distintos resultados: qué es un experimento aleatorio, cómo se registra y por qué es la unidad mínima de toda simulación.

01 · Punto de partida

La unidad mínima de la simulación

Un experimento aleatorio es un procedimiento que se puede repetir bajo las mismas condiciones, pero cuyo resultado individual es incierto: lanzar un dado, atender al próximo cliente, simular un día de demanda. Lo que sí es estable es el comportamiento en muchas repeticiones.

Cada corrida de tu simulador es un experimento aleatorio. Diseñarlo bien —qué se fija, qué se sortea, qué se registra— es lo que separa un script que «tira números» de un experimento que estima probabilidades (tema 5).

  • ¿Qué se mantiene fijo y qué se sortea en cada repetición?
  • ¿Cuál es el conjunto de todos los resultados posibles?
  • ¿Qué anoto de cada repetición para poder resumir después?
  • ¿Cuántas repeticiones necesito para que la frecuencia se estabilice?

02 · Definición

Experimento, resultado y espacio muestral

◉

Experimento

Procedimiento repetible: «lanzar el dado», «simular un día con demanda U(6,14)». Las condiciones se escriben antes de ejecutar.

ω

Resultado

Lo que sale una vez: ω = 4, demanda = 9,3. Un punto, no un resumen.

Ω

Espacio muestral

Todos los resultados posibles: Ω = {1,…,6}. Delimita qué puede pasar y qué no.

La frecuencia relativa fₙ es el puente entre experimento y probabilidad: cuántas veces salió lo que me interesa, dividido por repeticiones. Con pocas repeticiones salta; con muchas, se estabiliza cerca de la probabilidad teórica.

Experimentos típicos en simulación y su espacio muestral.
ExperimentoResultado ωEspacio muestral Ω
Lanzar un dado4{1, 2, 3, 4, 5, 6}
Cliente paga o noéxito{paga, no paga}
Demanda del día9,3 unidades[6, 14] continuo
Llegadas en 1 hora7 clientes{0, 1, 2, …}

03 · Protocolo

Cómo diseñar un experimento que sí estima

Experimento débil

Sorteo sin registro

Corre unas veces, mira un número suelto y concluye. No se puede repetir ni comparar: cada ejecución cuenta otra historia.

Experimento sólido

Protocolo + réplicas + registro

Fija condiciones, define qué es éxito, repite N veces con semilla conocida y guarda cada resultado. Recién ahí resume.

Protocolo
Receta escrita: qué se sortea, con qué rango o distribución, cuántas veces y qué se mide.
Repetición
Cada ejecución individual del experimento bajo el mismo protocolo.
Registro
Lista de resultados crudos. Sin registro no hay histograma (tema 29) ni ajuste (tema 34).
Frecuencia relativa
Éxitos dividido por repeticiones. Estima la probabilidad cuando n es grande.

04 · Ejemplos

Experimentos que vas a programar

Protocolo→N repeticiones→Frecuencia
  1. 1
    Dado.

    Ω = {1…6}. Éxito = «sale 6». Frecuencia ≈ 1/6 con muchas tiradas.

  2. 2
    Venta.

    Ω = {compra, no compra}. Éxito = «compra». Estima la tasa de conversión.

  3. 3
    Día de demanda.

    Ω = [6, 14]. Registro = total vendido. Estima promedio y dispersión.

  4. 4
    Hora de cola.

    Ω = {0, 1, 2, …} llegadas. Éxito = «espera mayor a 10 min».

  5. 5
    Servidor.

    Ω = tiempos de respuesta. Éxito = «responde en menos de 2 s».

05 · Representación en Python

Del experimento al registro

Un experimento es una función + un bucle que repite y guarda. La lista de resultados es tu materia prima estadística:

Python en tu navegador. Editá los rangos y el N, ejecutá de nuevo y compará frecuencias.

import random
random.seed(21)

# Experimento: lanzar un dado 12 veces
lanzamientos = [random.randint(1, 6) for _ in range(12)]
print(lanzamientos)

# Frecuencia relativa de "sale 6"
exitos = sum(1 for x in lanzamientos if x == 6)
print("f12:", exitos / len(lanzamientos))

Consejo: repetí con 12, 120 y 1200 lanzamientos y mirá cómo la frecuencia se acerca a 0,166.

Definir éxito con claridad

Todo experimento necesita una regla de éxito explícita. Sin ella no hay frecuencia que calcular:

import random
random.seed(8)

# Experimento: día de demanda U(6,14). Éxito = "vende más de 10"
def un_dia():
    return random.uniform(6, 14)

dias = [un_dia() for _ in range(20)]
exito = [d > 10 for d in dias]
print("Éxitos:", sum(exito), "de", len(dias))
print("Frecuencia:", round(sum(exito) / len(dias), 3))

06 · Exploración

Laboratorio: la frecuencia se estabiliza

Repetimos el experimento «¿sale cara?» con probabilidad p durante N intentos. Las 3 curvas son 3 réplicas de la frecuencia acumulada. Con pocos intentos saltan; con muchos, se pegan a p.

EXPERIMENTO 03

Frecuencia relativa de éxitos

f(n) = éxitos hasta n / n → p

Los resultados numéricos aparecen debajo.
Frec. final R10,000
Frec. final R20,000
Frec. final R30,000
Desvío máx. |f−p|0,000

Con N grande, las 3 réplicas se acercan a p.

Cada curva muestra éxitos acumulados dividido por intentos. La línea blanca punteada es la probabilidad teórica p. Al aumentar N, el abanico se cierra: adelanto visual de la Ley de los Grandes Números (tema 15).

Preguntas para explorar

  1. Con N = 50, ¿qué tan separadas terminan las réplicas? ¿Y con N = 2000?
  2. Poné p = 0,5 y luego p = 0,1. ¿En cuál se estabiliza «más rápido» a ojo? ¿Por qué?
  3. ¿Qué le dirías a alguien que concluye con solo 20 repeticiones?
Ver respuestas sugeridas
  1. Con 50 hay abanico amplio (±0,1 o más); con 2000 las tres se pegan a p con desvío de centésimas.
  2. Cerca de 0,5 la variación absoluta se nota más; cerca de 0 o 1 el rango posible es menor. La estabilización real la mide el error estándar (tema 42).
  3. Que 20 repeticiones son una anécdota: la frecuencia todavía salta mucho y puede estar lejos de p.

07 · Comprensión

Confusiones frecuentes

«Si salió 5 veces seguidas, ya toca que salga lo otro»

No: en experimentos independientes (tema 7) la historia no empuja el próximo resultado. La frecuencia se estabiliza por volumen, no por compensación.

«Con 30 repeticiones ya estimo bien»

A veces sí, a veces no: depende de p y de la precisión que necesites. El N se justifica con error e intervalos (temas 33 y 42).

«El espacio muestral es obvio»

Escribir Ω evita errores: ¿el dado incluye el 0? ¿la demanda puede ser negativa? Lo obvio, escrito, se puede verificar.

«Guardo solo el promedio»

El promedio sin registro impide recalcular. Guardá la lista cruda: es barata y habilita todo el análisis posterior.

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: frecuencia del 6

Lanzá el dado 30 y 3000 veces y compará la frecuencia del 6. ¿Cuál está más cerca de 1/6?

import random

def frec_seis(n, semilla):
    random.seed(semilla)
    exitos = sum(1 for _ in range(n) if random.randint(1, 6) == 6)
    return exitos / n

print("n=30:", round(frec_seis(30, 1), 3))
print("n=3000:", round(frec_seis(3000, 1), 3))
print("teórico:", round(1/6, 3))
Ver solución razonada

Con n = 30 la frecuencia suele estar a décimas de 0,167; con n = 3000 cae a centésimas. Más repeticiones, menos salto: la intuición que formaliza la Ley de los Grandes Números.

Ejercicio 2: definir Ω y éxito

Para «tiempo de atención entre 2 y 8 minutos», escribí Ω y estimá P(tarda más de 6) con 1000 réplicas uniformes.

import random
random.seed(12)

# Omega = [2, 8] continuo. Éxito = tarda > 6
tiempos = [random.uniform(2, 8) for _ in range(1000)]
print("f:", round(sum(1 for t in tiempos if t > 6) / len(tiempos), 3))
print("teórico:", round((8 - 6) / (8 - 2), 3))
Ver solución

Ω = [2, 8]. La frecuencia ronda 0,333, igual que el cálculo (8−6)/(8−2). El experimento confirma la teoría; en temas 17 y 34 haremos el camino inverso: de datos a modelo.

Ejercicio 3: protocolo completo

Escribí un protocolo de 3 líneas para «probabilidad de quiebre con stock 100 en 10 días U(6,14)» y ejecútalo con 2000 réplicas.

Ver una posible respuesta
import random
random.seed(20)

# Protocolo: stock 100, 10 días U(6,14), éxito = stock < 0. N = 2000.
def quiebra():
    s = 100
    for _ in range(10):
        s -= random.uniform(6, 14)
        if s < 0:
            return True
    return False

N = 2000
print("P(quiebre):", round(sum(quiebra() for _ in range(N)) / N, 3))

Protocolo explícito, N grande y registro implícito en la suma. El resultado (~0,5) ya es una estimación publicable del riesgo, no una corazonada.

09 · Síntesis

Ideas para recordar

  • Un experimento aleatorio se diseña, se repite y se resume con frecuencias.
  • Ω define lo posible; el éxito define lo que contás.
  • La frecuencia relativa con N grande estima la probabilidad.
  • En Python: función de un intento + lista de N resultados + conteo.
  • Guardá resultados crudos: habilitan histogramas, ajustes e intervalos.

En el próximo tema agruparemos resultados en eventos: conjuntos de Ω con operaciones para describir «lo que nos interesa».