01 · Punto de partida
Todo conteo empieza con un sí/no
¿El cliente compra? ¿La pieza falla? ¿El paquete llega? Cada pregunta binaria es una Bernoulli(p). Y cada binomial cuenta Bernoullis, cada geométrica espera la primera, cada thinning decide con una. Dominar su generación es dominar el ladrillo.
El método es el umbral del Tema 1, ahora con propiedades, varianza y tests que lo auditan en serio.
- ¿Por qué 1 si U < p es exacto?
- ¿Qué media y varianza debe reproducir la muestra?
- ¿Cómo testear con N chico y con N grande?
- ¿Qué errores sesgan p sin que se note a ojo?
02 · Definición
Masa, media y varianza del 0/1
P(X=1) = p, P(X=0) = 1−p. E[X] = p, E[X²] = p, Var(X) = p − p² = p(1−p), máxima en p = 0,5 (0,25) y nula en bordes.
Umbral exacto
P(U < p) = p por uniforme. Sin aproximación: la única fuente de error es Monte Carlo finito.
Indicadora
Toda Bernoulli es 1_{evento}. Sumar indicadoras cuenta ocurrencias: ahí nace la binomial (Tema 19).
Un U por ensayo
O(1) y sin estado. Vectoriza perfecto: N uniformes ⇒ N ensayos independientes.
| p | Media | Varianza | Lectura |
|---|---|---|---|
| 0,1 | 0,10 | 0,090 | Raros unos, poca varianza absoluta |
| 0,5 | 0,50 | 0,250 | Máxima incertidumbre |
| 0,9 | 0,90 | 0,090 | Casi siempre 1 |
03 · Anatomía
Umbral, bordes y vectorización
- Comparación estricta o no
- U < p vs U ≤ p difieren en prob. 0 (continuo). Fijar una y ser consistente; el borde U = p exacto mide 0.
- p = 0 / p = 1 degeneradas
- Devuelven constante sin gastar U. Útil en mezclas con ramas apagadas y en tests.
- Vectorizar
- Generar el vector U de tamaño N y comparar de una vez (NumPy/listas). Un bucle Python por ensayo es 50× más lento.
- Reproducibilidad
- Semilla fija ⇒ secuencia fija de unos/ceros. Guardar (p, N, semilla) reproduce el experimento bit a bit.
Umbral U < p
Exacto y auditable
La frecuencia tiende a p y la varianza a p(1−p). Dos momentos verifican el generador.
Atajos sesgados
Parecen binarios
round(U) solo da p = 0,5; int(U*10) % 2 discretiza mal bordes. Binario ≠ Bernoulli(p).
04 · Para qué sirve un 0/1 perfecto
El ladrillo de medio curso
- 1Binomial(n,p).
Sumar n Bernoullis independientes. (Tema 19)
- 2Geométrica(p).
Contar fracasos hasta el primer 1. (Tema 18)
- 3Thinning de Poisson.
Quedarse con cada evento con prob. p: Poisson(λ) ⇒ Poisson(λp).
- 4Decisiones del simulador.
Composición (elegir rama), aceptación (aceptar propuesta), dropout, fallas.
05 · Representación en Python
Ensayo, ráfaga y auditoría de dos momentos
Una función, un vector y dos asserts: media y varianza.
Python en tu navegador. Llevá p a 0,05 con N = 2000: la varianza ≈ 0,0475.
import random
random.seed(120)
p, N = 0.3, 8000
def bernoulli(p):
return 1 if random.random() < p else 0
m = [bernoulli(p) for _ in range(N)]
media = sum(m) / N
var = sum((x - media) ** 2 for x in m) / N
print("media:", round(media, 3), "teórica:", p)
print("var:", round(var, 3), "teórica:", round(p * (1 - p), 3))
print("unos:", sum(m), "de", N)
Media ≈ 0,30 y var ≈ 0,21. Si la var da ≈ 0,25 con p = 0,3, estás generando p = 0,5 sin querer.
06 · Exploración
Laboratorio: media y varianza bajo control
Movete p y N. Las barras son frecuencias de 0/1; los rombos, la teoría. El panel compara varianza muestral vs p(1−p): con N grande calzan; con N chico bailan.
Bernoulli por umbral
X = 1 si U < p
Con p 0,3 y N 3000, media y varianza calzan.
Barra celeste X=0, naranja X=1, rombos teoría. Probá p = 0,5 (varianza máxima) y N = 100.
Preguntas para explorar
- Con p = 0,5, ¿qué varianza esperás? ¿Es la máxima?
- Con N = 100 y p = 0,1, ¿la barra del 1 se acerca a 0,1? ¿Y la varianza?
- Si p = 0,95, ¿por qué la varianza es igual que con p = 0,05?
Ver respuestas sugeridas
- 0,25, sí: p(1−p) se maximiza en 0,5.
- Aproximada con error ~√[0,09/100] ≈ 0,03 en media; la varianza fluctúa más.
- Por simetría p(1−p): 0,95·0,05 = 0,05·0,95.
07 · Comprensión
Confusiones frecuentes
«round(U) ya es Bernoulli»
Solo con p = 0,5. Para p general hay que comparar con p, no redondear.
«La media alcanza para validar»
Dos generadores con igual media pueden diferir en varianza (ej. mezcla). Validar ambos momentos.
«Con N = 50 la varianza debe calzar»
La varianza muestral tiene más ruido que la media. Con N chico, tolerancia amplia o N mayor.
«p chico no necesita N grande»
Al revés: con p = 0,01 necesitás ~10⁴ para ver ~100 unos. Eventos raros piden N enorme.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: moneda sesgada auditada
Con p = 0,7 y N = 5000 (semilla 121), verificá media ≈ 0,7 y var ≈ 0,21.
import random
random.seed(121)
p, N = 0.7, 5000
m = [1 if random.random() < p else 0 for _ in range(N)]
media = sum(m) / N
print(round(media, 3), round(sum((x-media)**2 for x in m)/N, 3))
Ver solución razonada
≈ 0,70 y ≈ 0,21 (típicamente 0,69–0,71 y 0,20–0,22).
Ejercicio 2: evento raro
Con p = 0,02 y N = 20000 (semilla 122), ¿cuántos unos esperás? Contalos y compará.
import random
random.seed(122)
p, N = 0.02, 20000
m = [1 if random.random() < p else 0 for _ in range(N)]
print(sum(m), "vs", N * p)
Ver solución
Esperados 400, típico 360–440. Con N = 200 el intervalo sería 0–8: puro ruido.
Ejercicio 3: thinning que preserva Poisson
Generá 3000 Poisson(4) por suma de exponenciales o librería simple, quedate con cada evento con p = 0,5 y verificá media ≈ 2.
Ver una posible respuesta
import random
import math
random.seed(123)
lam, p, N = 4.0, 0.5, 3000
def poisson(lam):
L, k, q = math.exp(-lam), 0, 1.0
while True:
q *= random.random()
if q <= L:
return k
k += 1
adelgazada = [sum(1 if random.random() < p else 0 for _ in range(poisson(lam)))
for _ in range(N)]
print(round(sum(adelgazada) / N, 3), "vs", lam * p)
Media ≈ 2,0. Cada evento sobrevive como Bernoulli(p): la composición de Poisson con thinning es Poisson(λp).
09 · Síntesis
Ideas para recordar
- Bernoulli(p) = 1_{U<p}: exacta, 1 uniforme, media p.
- Varianza p(1−p), máxima 0,25 en p = 0,5.
- Validar media + varianza, no solo media.
- Eventos raros exigen N enorme.
- Es el ladrillo de binomial, geométrica y thinning.
En el próximo tema escalamos el 0/1 a enteros equiprobables: la uniforme discreta.