Método de Monte Carlo · Tema 44

Proyecto integral de Monte Carlo

El kiosco completo: Q óptimo con media, riesgo, sensibilidad e informe que decide.

01 · Punto de partida

El kiosco que integra el curso

Un kiosco compra diarios a $2 y vende a $5 con demanda en {80, 100, 120} (30/40/30%). Hay que elegir Q, medir riesgo, chequear sensibilidad al precio y entregar un informe de 1 página con N justificado, IC y decisión.

Si hacés este proyecto sin mirar, aprobaste Monte Carlo.

  • ¿Qué Q maximiza la media con P < 5%?
  • ¿Qué N justifica el ±?
  • ¿Qué entrada manda según el tornado?
  • ¿Qué frase decide en 3 líneas?

02 · Consigna

Entregable en 5 partes

📋

Plano

Pregunta, entradas, modelo G, salidas, supuestos y N piloto.

⚙️

Motor

generar/modelo/simular con semillas y agregación correcta.

📊

Informe

Q* con media [IC], riesgo, tornado y frase de decisión.

Rúbrica: 20 puntos.
PartePuntosSe aprueba con
Plano + N justificado4N = (zσ/e)² con σ piloto
Barrido con bloques5Mismas semillas, top + empates
Riesgo (P/VaR)4Tablero por Q con N ≥ 8 000
Sensibilidad3Tornado precio/costo/demanda
Informe 1 página4Frase con ±, N y semillas

03 · Plan

Plano→Barrido→Riesgo→Informe
  1. 1
    Plano (30 min).

    Pregunta «¿qué Q con ±5 $ y P < 5%?», F de D, G = 5·mín−2Q, salidas media/P/VaR, N piloto 1 000.

  2. 2
    Barrido (30 min).

    Q 60–140 cada 10 con N = 5 000 y semillas 1…10. Top + empates a 1SE.

  3. 3
    Riesgo + sensibilidad (30 min).

    Tablero P/VaR por Q y tornado precio/costo/demanda.

  4. 4
    Informe (30 min).

    1 página: Q*, media [IC], riesgo, tornado y frase. Checklist del tema 43.

04 · Solución orientativa

Con estos datos el resultado es conocido: úsalo para validar, no para copiar.

  1. 1
    Q* = 100.

    Media ≈ 290 [287, 293] (95%, N = 8 000), servicio 70%, P = 0%.

  2. 2
    Riesgo.

    Q = 120 sube poco y mete P ≈ 3–8%: vetado por regla P < 5% según N.

  3. 3
    Tornado.

    Manda precio (±100), luego costo y demanda. Medir precio primero.

05 · Esqueleto en Python

Del plano al informe corriendo

Python en tu navegador. Completá los TODO y el informe sale solo.

import random
import statistics
import math

# TODO 1: plano como dict (pregunta, entradas, modelo, salidas, N)
VALS, W = [80, 100, 120], [30, 40, 30]

def generar():
    return random.choices(VALS, weights=W)[0]

def modelo(Q, D, precio=5, costo=2):
    return precio*min(Q, D) - costo*Q

def simular(Q, N, semilla):
    random.seed(semilla)
    gs = [modelo(Q, generar()) for _ in range(N)]
    m = sum(gs)/N
    se = statistics.pstdev(gs)/math.sqrt(N)
    return m, se, gs

# TODO 2: barrido con bloques
for Q in [80, 100, 120]:
    ms = [simular(Q, 3000, s)[0] for s in [1, 2, 3]]
    print(Q, [round(m, 1) for m in ms])

# TODO 3: riesgo + informe (P, VaR, frase)
# TODO 4: N justificado con piloto
import statistics
import math

random.seed(7)
piloto = [5*min(100, random.choices([80,100,120], weights=[30,40,30])[0])-200 for _ in range(1000)]
s = statistics.pstdev(piloto)
print("sigma:", round(s, 1), "N para e=5:", math.ceil((1.96*s/5)**2))

06 · Tablero final

Laboratorio: el kiosco en un vistazo

Curva exacta con óptimo ★ y tu Q. Abajo: media, P(pérdida), VaR₅ y servicio. Mové Q y validá que 100 gana con riesgo 0.

PROYECTO FINAL

Tablero del kiosco

G = 5·mín(Q,D) − 2·Q

Los resultados numéricos aparecen debajo.
Media [IC]—
P(pérdida)—
VaR₅ / Servicio—
Veredicto—

Mové Q para auditar el proyecto.

El tablero replica el informe: si tu Q empata a 1SE con 100 y tiene mejor servicio, defendelo con números.

Checklist de entrega

  1. Plano + N = (1,96σ/5)² con σ piloto publicado.
  2. Barrido 60–140 con semillas 1…10 y top + empates.
  3. Tablero P/VaR con N ≥ 8 000 por Q.
  4. Tornado precio/costo/demanda con semilla común.
  5. Informe de 1 página con frase y reproducibilidad.
Ver frase modelo

«Q* = 100 con media 290 [287, 293] (95%, N = 8 000, semillas 1…10), P(pérdida) 0%, VaR₅ 200 y servicio 70%. Supera a 80 (+50) y empata con 110 dentro de 1SE con mejor servicio. Decisión: Q = 100.»

07 · Antipánico

Si algo falla, mirar aquí

«Mi Q* da 120, no 100»

Revisá costo (¿2?), pesos (¿30/40/30?) y mismas demandas. Con N = 500 el ruido corrompe el podio.

«P da 0 en todos»

Normal aquí con umbral 0. Probá umbral 200 (meta) para ver riesgo de meta.

«El IC no cubre 290»

Con N = 8 000 el SE ≈ 1,5: si tu media da 270, hay bug (costo, pesos o ×).

«No llego con el tiempo»

Entregar plano + barrido grueso + frase vale 12/20. El 8 restante es pulido.

08 · Cierre del curso

Qué te llevás

  • Aleatorio → promedio → decisión, con ± siempre.
  • N por fórmula, R por bloques, mismas semillas.
  • Reducción cuando paga; diseño en embudo; riesgo que veta.
  • Informe de 1 página que cualquiera repite.
  • Checklist del tema 43 antes de entregar.

Volvé al índice y marcá los 44: el recorrido verde es tu diploma.