まとめ
- MAPE expresa los errores como porcentaje respecto al valor real.
- Compara MAPE y sMAPE en un ejemplo de previsión de ventas y observa la inestabilidad cerca de cero.
- Revisa cómo actuar cuando la serie contiene ceros, valores pequeños o negativos.
1. Definición #
$$ \mathrm{MAPE} = \frac{100}{n} \sum_{i=1}^n \left| \frac{y_i - \hat{y}_i}{y_i} \right| $$
- Media del error porcentual sobre el valor real.
- Cuanto menor, mejor.
- Explota si algún \(y_i\) vale cero o se acerca a cero.
2. Cálculo en Python #
import numpy as np
from sklearn.metrics import mean_absolute_percentage_error
y_true = np.array([120, 150, 80, 200])
y_pred = np.array([110, 160, 75, 210])
mape = mean_absolute_percentage_error(y_true, y_pred)
print(f"MAPE = {mape * 100:.2f}%")
La función devuelve un valor en fracción; multiplícalo por 100 para expresarlo en porcentaje.
3. sMAPE (MAPE simétrico) #
Para reducir el problema cerca de cero, sMAPE añade las predicciones al denominador:
$$ \mathrm{sMAPE} = \frac{100}{n} \sum_{i=1}^n \frac{|y_i - \hat{y}_i|}{(|y_i| + |\hat{y}_i|)/2} $$
import numpy as np
def smape(y_true: np.ndarray, y_pred: np.ndarray) -> float:
numerator = np.abs(y_true - y_pred)
denominator = (np.abs(y_true) + np.abs(y_pred)) / 2
return float(np.mean(numerator / np.maximum(denominator, 1e-8)))
y_true = np.array([120, 150, 80, 200])
y_pred = np.array([110, 160, 75, 210])
print(f"sMAPE = {smape(y_true, y_pred) * 100:.2f}%")
El denominador puede ser cero; añade un epsilon pequeño para evitar divisiones problemáticas.
4. Precauciones #
- Ceros o valores negativos: MAPE explota con valores cero; utiliza sMAPE o analiza únicamente periodos con demanda positiva.
- Sesgo hacia valores pequeños: los porcentajes otorgan más peso a magnitudes pequeñas; adviértelo en los reportes.
- Outliers: los errores relativos minimizan el impacto de grandes volúmenes; acompáñalos con métricas absolutas.
- Interpretación: “errores medios del ±X%” resulta claro, pero conviene traducirlo a impacto monetario cuando sea posible.
5. Complemento con otras métricas #
- MAE / RMSE: muestran los errores absolutos y ayudan a estimar el impacto real.
- RMSLE: penaliza fuertes subestimaciones en pronósticos de crecimiento o demanda.
- Pinball loss: útil para evaluar intervalos/cuántiles cuando existen objetivos de riesgo.
Resumen #
- MAPE ofrece una métrica intuitiva en porcentaje, pero requiere cuidado cerca de cero.
- sMAPE mitiga esta inestabilidad al normalizar con la suma de observaciones y predicciones.
- Combina métricas relativas y absolutas para priorizar mejoras y comunicar los efectos de negocio.