01 · Punto de partida
Todo arranca con una entrada
La salida solo puede ser tan buena como la entrada. Si la demanda, el costo o la falla están mal modelados, el promedio converge al valor equivocado con total seguridad.
Las entradas se dividen en dos familias: las aleatorias (se sortean con F) y las de decisión (las fijás vos para comparar, como Q o el precio).
- ¿Qué entradas son azar y cuáles son decisión?
- ¿Qué F describe cada azar: uniforme, Bernoulli, normal, empírica?
- ¿De dónde salen sus parámetros?
- ¿Son independientes o se mueven juntas?
02 · Definición
Dos familias de entradas
Aleatoria
Se sortea en cada réplica con su F: demanda, costo, falla, punto (x,y). Ejemplo: D ~ {80,100,120}.
Decisión
La fijás vos y no se sortea: Q a comprar, precio, umbral. Se prueba un valor por simulación.
Parámetro
Constante de F o del modelo: p = 0,3, μ = 100, σ = 15. Se estima con datos o se supone explícito.
| Si la entrada es… | Usá F… | Sorteo |
|---|---|---|
| Cualquier valor entre a y b | Uniforme(a,b) | random.uniform(a, b) |
| Sí/no con p | Bernoulli(p) | random.random() < p |
| Conteo 1–6, cara/ceca | Discreta equiprobable | random.randint / choice |
| Tabla de valores con pesos | Empírica | random.choices(val, weights) |
| Campana con μ, σ | Normal(μ,σ) | random.gauss(mu, sigma) |
03 · Cómo elegir F
Del dato a la distribución en 3 pasos
- 1Mirar el dato.
¿Toma 2 valores, 6, continuos? ¿Histograma parejo, con pico o con campana? La forma manda.
- 2Elegir la forma.
Binaria → Bernoulli. Pocos valores → discreta/empírica. Rango acotado sin pico → uniforme. Campana → normal.
- 3Poner parámetros.
p con la frecuencia, μ/σ con media/desvío, pesos con conteos. Siempre con fuente: «p = 0,3 de 400 tickets».
Bien declarada
Trazable
«D en {80,100,120} con 30/40/30% de 200 días». Otro puede repetirla, criticarla y mejorarla.
Mal declarada
Mágica
«Demanda más o menos 100». Nadie puede repetirla: ¿uniforme 80–120? ¿normal? ¿con qué σ?
- Independencia
- Supuesto por defecto: cada entrada se sortea sin mirar a las otras. Si hay correlación, hay que modelarla aparte.
- Rango válido
- Valores posibles: demanda ≥ 0, p en [0,1]. El generador debe respetarlo (truncar o elegir F acotada).
- Fuente
- De dónde sale cada parámetro: datos, experto o supuesto explícito. Sin fuente no hay confianza.
04 · Ejemplos
Cinco entradas bien escritas
- 1Punto para π.
x, y ~ U(0,1) independientes. Sin parámetros. Fuente: diseño del experimento.
- 2Falla.
Bernoulli(p = 0,05). Fuente: 50 fallas en 1 000 equipos.
- 3Demanda.
{80,100,120} con 30/40/30%. Fuente: 200 días de ventas.
- 4Costo.
Normal(μ = 100, σ = 15), truncada en ≥ 0. Fuente: 60 presupuestos.
- 5Decisión Q.
No es aleatoria: se prueba Q = 80, 100, 120. Fuente: decisión a evaluar.
05 · Representación en Python
Una función generadora por entrada
Cada entrada aleatoria merece su generar_*. La simulación queda legible y cambiar F es tocar un solo lugar.
Python en tu navegador. Ejecutá y cambiá p, μ, σ y los pesos: las salidas se moverán en el próximo tema.
import random
def generar_punto():
return random.random(), random.random()
def generar_falla(p=0.05):
return 1 if random.random() < p else 0
def generar_demanda():
return random.choices([80, 100, 120], weights=[30, 40, 30])[0]
def generar_costo(mu=100, sigma=15):
return max(0, random.gauss(mu, sigma))
print(generar_punto())
print(generar_falla())
print(generar_demanda())
print(generar_costo())
06 · Exploración
Laboratorio: qué forma tiene cada entrada
Elegí la entrada, mové su parámetro y sorteá. Mirá cómo el histograma cambia de forma y cómo la media sigue al parámetro.
Entradas con forma propia
X ~ F(parámetro)
Tocá «Sortear» para generar la entrada.
Uniforme: barras parejas entre 0 y b. Bernoulli: dos barras (0 y 1). Normal: campana centrada en μ. Cambiar el parámetro mueve la escala, no el método.
Preguntas para explorar
- En Uniforme(0, b), si duplicás b, ¿qué le pasa a la media?
- En Bernoulli(p), ¿qué p da la barra del 1 más alta que la del 0?
- En Normal, ¿por qué el rango mín–máx supera a μ ± 15?
Ver respuestas sugeridas
- Se duplica: la media teórica es b/2. La forma sigue pareja, solo cambia la escala.
- Solo p > 0,5. Con p = 0,3 lo normal es que el 0 domine: eso es respetar F.
- Porque σ = 15 dispersa: con N = 5 000 aparecen colas de ±3σ. El rango crece con N; σ no.
07 · Comprensión
Confusiones frecuentes
«La decisión también se sortea»
No: Q o el precio se fijan para comparar. Si los sorteás, mezclás políticas y el promedio no decide nada.
«Uniforme sirve para todo»
Solo si todo vale igual. Para sí/no va Bernoulli; para campanas va normal; para tablas va empírica.
«Los parámetros se adivinan»
Se estiman con datos o se declaran como supuesto con fuente. Adivinar sin escribirlo es el error más caro.
«Si son varias, son independientes»
Solo si lo verificás o lo suponés por escrito. Precio y demanda suelen moverse juntos.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: uniforme a medida
Generá Uniforme(10, 20) con uniform() y verificá media ~15.
import random
N = 10000
m = sum(random.uniform(10, 20) for _ in range(N)) / N
print(m)
Ver solución razonada
Verás ~15 ± 0,1. La media de U(a,b) es (a+b)/2: el generador la respeta si N es grande.
Ejercicio 2: Bernoulli con p dado
Simulá fallas con p = 0,05 y N = 20 000. ¿La proporción se pega a 0,05?
import random
p, N = 0.05, 20000
print(sum(1 for _ in range(N) if random.random() < p) / N)
Ver solución
Sí: ~0,05 ± 0,003. Con N = 100 verías 0,02 u 0,09: el mismo generador, distinto ruido.
Ejercicio 3: empírica desde datos
Con ventas [80×30, 100×40, 120×30], escribí la generadora y comprobá la media 100.
Ver una posible respuesta
import random
def generar_demanda():
return random.choices([80, 100, 120], weights=[30, 40, 30])[0]
N = 10000
print(sum(generar_demanda() for _ in range(N)) / N)
Media teórica: 80·0,3 + 100·0,4 + 120·0,3 = 100. Verás ~100 ± 1.
09 · Síntesis
Ideas para recordar
- Separar aleatorias (se sortean) de decisión (se fijan) y parámetros (se estiman).
- Cada aleatoria declara F + parámetros + fuente + rango.
- Elegir F por la forma del dato, no por comodidad.
- En Python: una
generar_*()por entrada, validada sola. - La independencia se supone por escrito o se modela; nunca se asume en silencio.
En el próximo tema veremos las variables de salida: qué medir en cada réplica y cómo promediarlo.