01 · Punto de partida
El absoluto es ciego entre escalas
MAE 1,2 litros es excelente si el tanque promedia 100 y desastroso si promedia 2. El error relativo divide por lo real y habla en proporción: «erramos 8% en promedio». Imprescindible para comparar productos, sucursales o períodos de distinta magnitud.
- ¿Qué proporción del valor real representa el error?
- ¿El MAPE permite comparar el tanque con la fila?
- ¿Qué pasa cuando lo real vale cero o casi cero?
- ¿Relativo o absoluto para dictaminar?
02 · Definición
Proporción, porcentaje y MAPE
Relativo con signo
er dice dirección proporcional: +0,10 = 10% arriba. Se cancela si hay compensación, igual que el sesgo.
MAPE
Media de |er| en %: interpretable entre escalas y comunicable («8%»). El estándar para comparar modelos.
Ceros
Con r = 0 la división explota; con r ≈ 0 el % se dispara por centavos. Ahí el relativo miente: usar absoluto o sMAPE.
| Real | Sim | |e| | |er| | Lectura |
|---|---|---|---|---|
| 100 | 101 | 1 | 1% | Excelente |
| 5 | 6 | 1 | 20% | Malo |
| 0,5 | 1,5 | 1 | 200% | Catastrófico |
03 · Método
Protocolo en 5 pasos
- 1Verificar denominadores.
Si hay ceros o valores ≈ 0, el MAPE es inválido: pasar a absoluto (Tema 20) o sMAPE.
- 2Calcular er punto a punto.
Guardar la serie: el MAPE promedia, pero un 200% puntual ya invalida ciertos usos.
- 3Resumir: MRE, MAPE, máx|er|.
Sesgo relativo + magnitud típica + peor proporción. Tres números, como en absoluto.
- 4Comparar entre escalas.
El MAPE habilita rankings (tanque 5% vs. fila 12%): el MAE no.
- 5Dictaminar en % con tolerancia %.
«MAPE 6% ≤ 10%: válido». La tolerancia también se escribe en % y antes.
04 · Trampas del porcentaje
Asimetría y ceros
Asimetría
Castiga distinto
Predecir el doble (r=10, s=20) da +100%; predecir la mitad (s=5) da −50%. El mismo factor 2 pesa distinto: el MAPE premia subestimar.
Ceros
Explosión
r = 0 → división por cero; r = 0,1 con e = 1 → 1000%. Alternativas: sMAPE (divide por (|r|+|s|)/2) o volver al absoluto.
- sMAPE
- Simétrico y acotado (0–200%): divide por el promedio de |r| y |s|. Menos intuitivo pero no explota.
- MedAPE
- Mediana de |er|: robusta al 200% puntual que arrastra el MAPE. Prima del MedAE (Tema 20).
- Regla de oro
- Absoluto para dictaminar en la unidad del uso; relativo para comparar y comunicar. Ambos, siempre.
05 · Representación en Python
MAPE en 10 líneas con guardia de ceros
Python en tu navegador. Poné un cero en real y observá la explosión: por eso la guardia.
real = [50, 52, 48, 51, 49, 50]
sim = [51, 52, 50, 52, 50, 51]
if any(r == 0 for r in real):
print("MAPE inválido: hay ceros -> usar absoluto o sMAPE")
else:
er = [(s-r)/abs(r) for s, r in zip(sim, real)]
mape = sum(abs(e) for e in er)/len(er)*100
print("er:", [f"{e:+.1%}" for e in er])
print(f"MAPE {mape:.1f}% (tol 10%: {'Válido' if mape <= 10 else 'No válido'})")
MAPE ≈ 2,6%: válido con holgura. Cambiá un real a 2 y mirá cómo el mismo |e| = 2 pasa de 4% a 100%.
sMAPE cuando hay ceros
real2 = [0, 10, 10]
sim2 = [1, 11, 9]
smape = sum(2*abs(s-r)/(abs(s)+abs(r)) for s, r in zip(sim2, real2))/len(real2)*100
print(f"sMAPE {smape:.1f}% (no explota con el cero)")
06 · Exploración
Laboratorio: el mismo litro, distinto %
Realidad en torno a un nivel base con ruido; modelo con sesgo absoluto fijo (+1). Mové el nivel base de 5 a 50: el |e| no cambia, pero el % se derrumba. La banda es tu tolerancia %.
|er| contra tolerancia %
MAPE ≤ tol % · mismo |e|, distinto %
Con base 20 y sesgo +1, el MAPE ronda 5%: válido para 10%.
Serie de |er| en % con banda ±tol %. Puntos rojos = instantes que violan la tolerancia proporcional.
Preguntas para explorar
- Con base 20, sesgo +1 y tol 10%: ¿MAE y MAPE? Bajá la base a 5 sin tocar el sesgo: ¿MAE y MAPE? ¿Qué número cambió?
- Subí la base a 50: ¿MAPE aunque el modelo siga errando 1 litro siempre? ¿Eso es trampa o lectura correcta?
- Poné base 5 con tol 10%: ¿cubre? ¿Qué alternativa (absoluto o sMAPE) usarías si lo real roza cero?
Ver respuestas sugeridas
- MAE ≈ 1 en ambos; MAPE ≈ 5% vs. ≈ 20%: el absoluto no ve la escala, el relativo sí. Cambió el % porque cambió el denominador.
- MAPE ≈ 2%: lectura correcta si el uso tolera 10% proporcional. No es trampa: en un tanque de 50, 1 litro duele poco.
- No cubre (≈ 20% > 10%): con base chica el % castiga de más. Mejor dictaminar en litros (Tema 20) o sMAPE.
07 · Comprensión
Confusiones frecuentes
«MAPE bajo = modelo bueno en todo»
MAPE bajo con máx 300% es promedio bueno con pico letal. Máx siempre informado.
«Comparo MAPE con ceros»
Con ceros el MAPE es indefinido o absurdo. sMAPE o absoluto: el MAPE con ceros es un número roto.
«El relativo reemplaza al absoluto»
No: la tolerancia del uso suele estar en unidades (Tema 5). Relativo para comparar, absoluto para dictaminar.
«Subestimar y sobrestimar pesan igual»
En MAPE no: factor 2 arriba = +100%, abajo = −50%. Si la asimetría importa, usar sMAPE o log.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: mismo |e|, distinto veredicto
¿MAPE con real 100 vs. real 4?
for r, s in [(100, 101), (4, 5)]:
print(r, s, f"{abs(s-r)/abs(r):.0%}")
Ver solución razonada
1% vs. 25%: el mismo litro vale 25× más en el chico. Por eso el MAPE compara y el MAE no.
Ejercicio 2: cero que rompe todo
¿Qué pasa con r = 0?
print("r=0, e=1 -> división por cero: MAPE inválido, usar sMAPE o absoluto")
Ver solución
Indefinido: Python lanza ZeroDivisionError y la metodología debe lanzar «métrica inválida». Cambiar de métrica, no esconder el cero.
Ejercicio 3: asimetría del MAPE
¿+100% vs. −50% con factor 2?
Ver una posible respuesta
print("10->20: +100% | 10->5: -50% (mismo factor, distinto castigo)")
El MAPE premia subestimar. Si eso sesga decisiones, usar sMAPE (ambos 67%) o error logarítmico simétrico.
09 · Síntesis
Ideas para recordar
- er = e/|r|, MAPE en %: compara escalas, ciega unidades.
- Ceros o ≈ 0 → MAPE inválido: sMAPE o absoluto.
- Asimétrico (premia subestimar): si importa, simetrizar.
- MAPE (MedAPE) [máx] siempre juntos; tolerancia en % y previa.
- Absoluto dictamina, relativo compara: ambos, nunca uno solo.
En el próximo tema, el que castiga los picos: error cuadrático medio.