Modelos Continuos · Tema 39

Calibración

Ajustar tasas a los datos reales: buscar, medir y no creerse el ajuste.

01 · Punto de partida

La ley dice la forma, los datos ponen los números

El logístico promete S con r y K; el cultivo real dice 12, 21, 38, 62… Calibrar es elegir r y K que minimicen el ECM entre curva y datos. Sin calibrar, el modelo es idea; calibrado sin validar, es espejismo.

El ritual completo: partir (qué ajusto), buscar (barrido), medir (ECM + residuos) y validar (otros datos).

  • ¿Qué parámetros ajusto y cuáles fijo por física?
  • ¿Qué función minimizo (ECM) y en qué rango?
  • ¿Los residuos quedan sin forma?
  • ¿El ajuste predice datos nuevos?

02 · Definición

¿Qué es calibrar un modelo continuo?

Cuatro piezas:

⚙

Parámetros libres

Los que ajusto: r y K. Los fijos (P₀ medido) no se tocan.

∑

ECM

Promedio (dato − modelo)²: la vara. Menos es mejor, con igual cantidad de parámetros.

✓

Validación

Probar en datos no usados: si el ECM se dispara, hubo sobreajuste.

Calibrar con todos los datos y festejar el ECM es mirarse al espejo: la prueba es afuera.

Logístico sobre cultivo (verdad r = 0,5, K = 100).
Candidatos (r, K)ECMVeredicto
(0,3, 100)≈ 120 (lejos)Despegue lento: no.
(0,5, 100)≈ 3 (ruido)Candidata: residuos sin forma.
(0,5, 80)≈ 60 (techo bajo)Satura antes: no.
(0,7, 100)≈ 90 (apurada)Se adelanta: no.

03 · Anatomía

Partir, buscar, medir, validar

El ritual en orden:

Partir
Separar fijos (P₀, unidades) de libres (r, K): menos libres, menos sobreajuste.
Buscar
Barrido grueso y luego fino alrededor del mínimo: rejilla 2D sobre (r, K).
Medir
ECM + residuos con forma o sin: el número y el diagnóstico.
Validar
Últimos datos reservados: si el ECM salta, el modelo memorizó ruido.

Calibración honesta

Ajusta poco, predice

Dos parámetros, residuos sin forma, ECM parecido adentro y afuera.

Sobreajuste

Ajusta todo, predice nada

Seis parámetros para siete datos: ECM cero adentro, disparate afuera.

04 · Calibración en el curso

Cada k se ganó su número

Todo parámetro del curso se calibra igual:

Datos→ECM mínimo→Validado
  1. 1
    k térmico.

    De la curva de la taza: pendiente en log (Tema 12).

  2. 2
    r exponencial.

    Pendiente en log de conteos (Tema 15).

  3. 3
    K logístico.

    Techo donde satura: pide datos tardíos (Tema 16).

  4. 4
    β, γ del SIR.

    De la joroba: R₀ del despegue, γ de la cola.

  5. 5
    Difusividad.

    Del ancho ∼ √(Dt) en perfiles (Tema 19).

05 · Representación en Python

Rejilla sobre (r, K) con ECM

En Python, calibrar es doble bucle sobre candidatos con la exacta adentro. Gana el menor ECM.

Python en tu navegador. Estos bloques se ejecutan localmente con Pyodide, sin instalar nada. Ampliá la rejilla a K = 120 y observá si el mínimo se mueve.

import math


datos = [(0, 10.1), (2, 24.8), (4, 49.5), (6, 71.2), (8, 86.3), (10, 93.1)]


def logistica(t, p0=10.0, r=0.5, k=100.0):
    return k / (1 + (k - p0) / p0 * math.exp(-r * t))


def ecm(r, k, p0=10.0):
    return sum((d - logistica(t, p0, r, k)) ** 2 for t, d in datos) / len(datos)


mejor = min(((r, k, ecm(r, k)) for r in [0.3, 0.5, 0.7] for k in [80, 100, 120]), key=lambda q: q[2])
print([round(v, 2) for v in mejor])

(0,5, 100) gana con ECM ≈ 3: la verdad estaba en la rejilla.

Residuos del ganador

El número elige; los residuos confirman:

def residuos(r=0.5, k=100.0, p0=10.0):
    return [(t, round(d - logistica(t, p0, r, k), 2)) for t, d in datos]


print(residuos())

06 · Exploración

Laboratorio: cazar (r, K) con el ECM

Puntos grises: cultivo con ruido (verdad r = 0,5, K = 100, P₀ = 10). Curva dorada: tu logístico con tu r y tu K. Barras: residuos. Encontrá el mínimo moviendo r y K: el ECM avisa y los residuos confirman (sin forma = ruido).

EXPERIMENTO 39

Ajuste en dos perillas

Logístico · verdad r = 0,5, K = 100

Los resultados numéricos aparecen debajo.
Tu ECM3,10
ECM con K = 8060,20
Residuo mayor2,80
LecturaCalibrado

Con r 0,5 y K 100 el ECM es 3,10: piso de ruido.

Mover r desplaza la subida; mover K desplaza el techo: cada perilla duele en su tramo. Por eso se calibran juntas.

Preguntas para explorar

  1. Con r = 0,5 y K = 80, ¿dónde duelen los residuos: al inicio o al final?
  2. Con r = 0,3 y K = 100, ¿el ECM sube? ¿Los residuos tienen forma?
  3. Subí el ruido a 2 con r y K exactos. ¿El ECM mínimo sube o baja?
Ver respuestas sugeridas
  1. Al final: el techo bajo falla tardía. Los residuos tardíos diagnostican K.
  2. Sí, con forma de S (modelo lento): los tempranos diagnostican r.
  3. Sube: el piso lo pone el ruido, no la forma. Exacto con ruido ≠ ECM cero.

07 · Comprensión

Confusiones frecuentes

«ECM mínimo es verdad»

Es el mejor dentro de la rejilla y la forma: con forma equivocada, el mínimo miente con confianza.

«Calibrar es validar»

No: calibrar elige con unos datos; validar prueba con otros. Sin reserva, el ECM es optimista.

«Más parámetros, mejor»

Mejor adentro, peor afuera: cada libre extra memoriza ruido. Dos que predicen ganan a seis que recitan.

«r y K son independientes»

Se compensan en el tramo medio: el valle del ECM es alargado. Informarlos con rango, no como puntos.

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: ECM a mano

Con los 6 datos del bloque, calculá el ECM de (r = 0,5, K = 100). ¿Da menos que 10?

import math


datos = [(0, 10.1), (2, 24.8), (4, 49.5), (6, 71.2), (8, 86.3), (10, 93.1)]


def logistica(t, p0=10.0, r=0.5, k=100.0):
    return k / (1 + (k - p0) / p0 * math.exp(-r * t))


e = sum((d - logistica(t)) ** 2 for t, d in datos) / len(datos)
print(round(e, 2))
Ver solución

Da ≈ 3,10: residuos de ±2, puro ruido. La candidata es la verdad.

Ejercicio 2: techo equivocado

Calculá el ECM con (r = 0,5, K = 80). ¿Dónde duele?

import math


datos = [(0, 10.1), (2, 24.8), (4, 49.5), (6, 71.2), (8, 86.3), (10, 93.1)]


def logistica(t, p0=10.0, r=0.5, k=80.0):
    return k / (1 + (k - p0) / p0 * math.exp(-r * t))


e = sum((d - logistica(t)) ** 2 for t, d in datos) / len(datos)
print(round(e, 1))
Ver solución

≈ 60,2: duele tardío (techo bajo). Los residuos finales diagnostican K.

Ejercicio 3: validar con reserva

Calibrá con los 4 primeros y probá en los 2 últimos. ¿El ECM salta?

Ver una posible respuesta
import math


datos = [(0, 10.1), (2, 24.8), (4, 49.5), (6, 71.2), (8, 86.3), (10, 93.1)]
entrena, prueba = datos[:4], datos[4:]


def logistica(t, p0=10.0, r=0.5, k=100.0):
    return k / (1 + (k - p0) / p0 * math.exp(-r * t))


def ecm(sub, r=0.5, k=100.0):
    return sum((d - logistica(t, 10.0, r, k)) ** 2 for t, d in sub) / len(sub)


print(round(ecm(entrena), 2), round(ecm(prueba), 2))

Entrena ≈ 2,4, prueba ≈ 4,1: parecido, sin salto. Valida: predice afuera.

09 · Síntesis

Ideas para recordar

  • Calibrar = argmín ECM en libres; validar = probar en nuevos.
  • r manda temprano, K manda tarde: cada residuo diagnostica su perilla.
  • Menos libres con igual ECM gana; r–K se compensan en valle.
  • En Python: rejilla (r, K) + ECM + residuos + reserva final.
  • Sin reserva no hay validación: el ECM de entrenamiento es optimista.

En el próximo tema moveremos las perillas a propósito: sensibilidad.