Modelos y Simulación · Tema 43

Limitaciones y peligros

Lo que la simulación no puede garantizar: supuestos, rango y sobreconfianza.

01 · Punto de partida

El contrapeso honesto

En el Tema 42 celebramos las ventajas: barato, sin riesgo, repetible. Ahora el contrapeso: la simulación no prueba nada sobre la realidad por sí sola. Todo resultado vive dentro de supuestos, de un rango validado y de datos finitos. Fuera de ahí, el gráfico más lindo es decoración.

Conocer los límites no debilita la simulación: la vuelve defendible. Quien declara lo que su modelo no puede decir decide mejor que quien promete de más.

  • ¿Qué supuestos sostienen este resultado?
  • ¿Dentro de qué rango fue validado?
  • ¿Qué pasa si el futuro rompe esos supuestos?
  • ¿La decisión aguanta el peor límite honesto?

02 · Vocabulario mínimo

Supuesto, rango y sobreconfianza

✎

Supuesto

Lo que se da por cierto para modelar: demanda estable, sin feriados, cajeros que no fallan.

⬔

Rango

Dónde el modelo fue validado (Tema 36): fuera de rango, el resultado es extrapolación.

◍

Sobreconfianza

Creerle al número más de lo que sus supuestos y datos permiten.

Lo que la simulación sí y no puede dar.
Promesa¿La cumple?Condición
Comparar escenariosSíMisma vara y supuestos escritos
Ordenar opcionesSíDentro del rango validado
Predecir el futuro exactoNoEl futuro rompe supuestos
Garantizar sin datosNoSin datos no hay validación

03 · Tres peligros

Cómo se rompe una buena simulación

  1. 1
    Supuestos ocultos.

    Lo no escrito no se discute: «demanda estable» escondida convierte un feriado en catástrofe.

  2. 2
    Extrapolación.

    Usar el modelo fuera de su rango validado: vale hasta demanda 8, se lo usa en 15.

  3. 3
    Sobreconfianza.

    El decimal del promedio se lee como certeza y se decide sin margen.

Modelo oráculo

Promete el número

«La espera será 6,83». Esconde supuestos y rango: cuando falla, nadie sabe por qué.

Modelo honesto

Promete el abanico

«Entre 5 y 8 si la demanda no supera 8 y es día normal». Falla avisando y se puede defender.

Supuesto
Condición asumida para modelar, que debe escribirse.
Extrapolación
Uso fuera del rango validado.
Sobreconfianza
Certeza mayor que la que permiten datos y supuestos.
Margen
Colchón de decisión ante lo no modelado.

04 · Protocolo

La honestidad en cinco pasos

Escribir→Acotar→Probar→Margen→Avisar

Se escriben supuestos, se acota el rango validado, se prueba la ruptura (Tema 39), se decide con margen y se avisa qué rompería la conclusión.

05 · En Python

Supuestos como datos, no como olvido

Los supuestos viven en el código junto a los parámetros: quien lee el resultado lee también sus condiciones.

Python en tu navegador. Los límites también se programan.

supuestos = {"demanda_max": 8, "dias": "normales", "cajeros_sanos": True}
valido = {"demanda": (2, 8), "tolerancia": 1.0}

def dentro_de_rango(demanda):
    lo, hi = valido["demanda"]
    return lo <= demanda <= hi


print("demanda 7:", "válido" if dentro_de_rango(7) else "extrapolación")
print("demanda 15:", "válido" if dentro_de_rango(15) else "extrapolación")

Avisar antes de extrapolar

La función no calcula fuera de rango en silencio: avisa y pide revalidar.

def espera(demanda, cajeros=1):
    if not dentro_de_rango(demanda):
        return "FUERA DE RANGO: revalidar antes de decidir"
    return round(max(0, 2 + 1.2 * (demanda - 2.5 * cajeros)), 2)


print(espera(6))
print(espera(15))

06 · Exploración

Laboratorio: hasta dónde vale

El modelo fue validado para demanda 2–8 (zona clara). Movete la demanda a probar y mirá qué pasa con el error real: dentro del rango el modelo acompaña; fuera, se despega porque la realidad se vuelve no lineal y el modelo sigue recto.

EXPERIMENTO 43

Rango y extrapolación

válido 2–8 · más allá, avisar

Los resultados numéricos aparecen debajo.
Error real0
ZonaVálida
Margen1,00
LecturaDecidible

Demanda 6, dentro del rango: el error acompaña y se puede decidir.

Zona clara: rango validado 2–8. Curva del error real, que se dispara fuera de rango aunque el modelo siga confiado.

Preguntas para explorar

  1. Probá demanda 6 y después 13. ¿El error crece lineal o se dispara? ¿Qué lo explica?
  2. Con demanda 13, ¿alcanzaría con pedir más réplicas para «arreglarlo»?
  3. Subí el margen a 3 con demanda 10. ¿El margen tapa la extrapolación o solo la maquilla?
Ver respuestas sugeridas
  1. Se dispara: fuera de rango la realidad se curva (congestión) y el modelo lineal queda ciego.
  2. No: más réplicas achican el ruido, no el sesgo de extrapolar. Es error de modelo, no de muestra.
  3. La maquilla: el margen cubre el número pero no devuelve validez. Hay que revalidar, no ensanchar el colchón.

07 · Comprensión

Confusiones frecuentes

«Validado una vez, válido siempre»

La validez tiene rango y fecha: cambian la demanda, el sistema o el uso, y hay que revalidar.

«Más réplicas compensan extrapolar»

No: las réplicas achican ruido, no corrigen un modelo fuera de su rango. El sesgo queda intacto.

«El margen reemplaza al rango»

El margen protege de lo no modelado dentro del rango; fuera de rango es maquillaje.

«Declarar límites debilita la propuesta»

Al revés: la propuesta con límites se puede defender y usar. La que promete todo se rompe toda junta.

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: chequear el rango

Marcá qué demandas están dentro del rango validado 2–8.

def dentro(d):
    return 2 <= d <= 8

for d in [5, 8, 9, 15]:
    print(d, "válido" if dentro(d) else "extrapolación")
Ver solución razonada

Dan válido, válido, extrapolación, extrapolación: el 8 es el borde, el 9 ya es afuera.

Ejercicio 2: avisar en la salida

Hacé que la función avise en lugar de devolver un número mudo fuera de rango.

def espera(demanda):
    if not 2 <= demanda <= 8:
        return "FUERA DE RANGO"
    return round(2 + 1.2 * (demanda - 2.5), 2)

print(espera(6))
print(espera(15))
Ver solución

Dan 5.2 y FUERA DE RANGO: el segundo no calcula, avisa. Eso salva decisiones.

Ejercicio 3: escribir los supuestos

Empaquetá supuestos y rango junto al resultado, como traza honesta.

Ver una posible respuesta
ficha = {"resultado": 5.2, "rango": "demanda 2–8",
         "supuestos": ["días normales", "cajeros sanos"]}
print(ficha)

El número viaja con sus condiciones: quien lo lee sabe cuándo dejar de creerle.

09 · Síntesis

Ideas para recordar

  • Todo resultado lleva supuestos, rango y datos: sin ellos no es evidencia.
  • Tres peligros: supuestos ocultos, extrapolación y sobreconfianza.
  • Más réplicas no curan la extrapolación; el margen no reemplaza al rango.
  • El modelo honesto promete el abanico, no el número exacto.
  • En Python: rango como dato y avisos de fuera de rango en la salida.

En el próximo tema, el error más común de todos: los errores de modelado.