MAE (Mean Absolute Error)

El Error Absoluto Medio (MAE, por sus siglas en inglés) es una de las métricas más fundamentales para evaluar modelos de regresión. Su definición es directa y su interpretación intuitiva.

Definición

Sea un conjunto de nn observaciones con valores reales y1,y2,,yny_1, y_2, \ldots, y_n y valores predichos y^1,y^2,,y^n\hat{y}_1, \hat{y}_2, \ldots, \hat{y}_n.

El MAE se define como:

MAE=1ni=1nyiy^i\text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i|

Desglose de la fórmula

Analicemos cada componente:

SímboloNombreSignificado
nnTamaño muestralNúmero total de observaciones
yiy_iValor realEl valor verdadero de la observación ii
y^i\hat{y}_iValor predichoEl valor que el modelo predijo para ii
yiy^iy_i - \hat{y}_iErrorDiferencia entre real y predicho
yiy^i\|y_i - \hat{y}_i\|Error absolutoValor absoluto del error
i=1n\sum_{i=1}^{n}SumatoriaSuma sobre todas las observaciones
1n\frac{1}{n}Factor de promedioDivide para obtener el promedio

Propiedades matemáticas

Propiedad 1: No negatividad

El MAE siempre es mayor o igual a cero:

MAE0\text{MAE} \geq 0

Demostración: El valor absoluto siempre es no negativo (x0|x| \geq 0 para todo xRx \in \mathbb{R}). La suma de valores no negativos es no negativa. Dividir por n>0n > 0 preserva el signo.

Propiedad 2: Identidad

El MAE es cero si y solo si todas las predicciones son perfectas:

MAE=0    yi=y^ii{1,,n}\text{MAE} = 0 \iff y_i = \hat{y}_i \quad \forall i \in \{1, \ldots, n\}

Demostración:

()(\Rightarrow) Si MAE = 0, entonces yiy^i=0\sum |y_i - \hat{y}_i| = 0. Como cada término es no negativo, todos deben ser cero: yiy^i=0yi=y^i|y_i - \hat{y}_i| = 0 \Rightarrow y_i = \hat{y}_i.

()(\Leftarrow) Si yi=y^iy_i = \hat{y}_i para todo ii, entonces yiy^i=0|y_i - \hat{y}_i| = 0 para todo ii, y la suma es 0.

Propiedad 3: Unidades

El MAE tiene las mismas unidades que la variable objetivo yy:

[MAE]=[y][\text{MAE}] = [y]

Esto hace que el MAE sea directamente interpretable. Si yy está en dólares, el MAE también está en dólares.

Propiedad 4: Robustez ante outliers

El MAE es menos sensible a valores atípicos que el MSE porque usa el valor absoluto (función lineal) en lugar del cuadrado (función cuadrática).

Ejemplo: Sean los errores {1,2,3,100}\{1, 2, 3, 100\}:

MAE=1+2+3+1004=26.5\text{MAE} = \frac{1 + 2 + 3 + 100}{4} = 26.5 MSE=1+4+9+100004=2503.5\text{MSE} = \frac{1 + 4 + 9 + 10000}{4} = 2503.5

El MSE amplifica desproporcionadamente el outlier de 100.

Interpretación geométrica

El MAE puede interpretarse como la distancia Manhattan (o norma L1L^1) promedio entre los vectores de valores reales y predichos.

Si definimos y=(y1,,yn)\vec{y} = (y_1, \ldots, y_n) y y^=(y^1,,y^n)\hat{\vec{y}} = (\hat{y}_1, \ldots, \hat{y}_n):

MAE=1nyy^1\text{MAE} = \frac{1}{n} \|\vec{y} - \hat{\vec{y}}\|_1

donde 1\|\cdot\|_1 es la norma L1L^1 (suma de valores absolutos).

Relación con la mediana

El MAE está íntimamente relacionado con la mediana. Si buscamos un valor constante cc que minimice el error absoluto total:

minci=1nyic\min_c \sum_{i=1}^{n} |y_i - c|

La solución es c=mediana(y1,,yn)c = \text{mediana}(y_1, \ldots, y_n).

Esto contrasta con el MSE, donde el valor óptimo es la media.

Ejemplo numérico

Supongamos que tenemos un modelo que predice precios de casas (en miles de dólares):

CasaPrecio real (yy)Precio predicho (y^\hat{y})ErrorError absoluto
125024555
2300310-1010
318017555
44204002020

Cálculo paso a paso:

MAE=5+10+5+204=5+10+5+204=404=10\text{MAE} = \frac{|5| + |-10| + |5| + |20|}{4} = \frac{5 + 10 + 5 + 20}{4} = \frac{40}{4} = 10

Interpretación: El modelo se equivoca, en promedio, por $10,000 en sus predicciones de precio.

Implementación

Example.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import com.minerva.core.primitives.Vector;
import com.minerva.metrics.RegressionMetrics.RegressionMetrics;
public class MAEExample {
public static void main(String[] args) {
Vector actual = new Vector(new double[] {250, 300, 180, 420});
Vector predicted = new Vector(new double[] {245, 310, 175, 400});
RegressionMetrics metrics = new RegressionMetrics();
double mae = metrics.MAE(actual, predicted);
System.out.println("MAE: " + mae);
}
}
java MAEExample
MAE: 10.0

Limitaciones

  1. No diferenciable en cero: La función valor absoluto no es diferenciable en x=0x = 0, lo que puede causar problemas en algoritmos de optimización basados en gradiente.

  2. No penaliza errores grandes: La relación lineal puede ser no deseada cuando errores grandes son particularmente costosos.

  3. Sensible a la escala: El MAE depende de las unidades de yy, lo que dificulta comparar modelos de diferentes dominios.

Ver también

  • MSE — Métrica cuadrática que penaliza errores grandes
  • RMSE — MSE en unidades originales

Bonus: Análisis avanzado del MAE

Advertencia

Esta sección requiere conocimientos de cálculo, análisis convexo y teoría de estimación. Puedes saltarla sin perder continuidad.

El problema de no diferenciabilidad

La función valor absoluto f(x)=xf(x) = |x| no es diferenciable en x=0x = 0:

limh0+h0h=1,limh0h0h=1\lim_{h \to 0^+} \frac{|h| - |0|}{h} = 1, \quad \lim_{h \to 0^-} \frac{|h| - |0|}{h} = -1

Los límites laterales no coinciden, por lo que la derivada no existe en el origen.

Subgradiente

Para manejar esta no diferenciabilidad, usamos el concepto de subgradiente del análisis convexo.

El subgradiente de f(x)=xf(x) = |x| es:

x={{1}si x>0[1,1]si x=0{1}si x<0\partial |x| = \begin{cases} \{1\} & \text{si } x > 0 \\ [-1, 1] & \text{si } x = 0 \\ \{-1\} & \text{si } x < 0 \end{cases}

Para el MAE como función de las predicciones y^\hat{y}:

y^iMAE=1nsign(yiy^i)\partial_{\hat{y}_i} \text{MAE} = -\frac{1}{n} \cdot \text{sign}(y_i - \hat{y}_i)

donde sign(x)[1,1]\text{sign}(x) \in [-1, 1] cuando x=0x = 0.

Demostración: La mediana minimiza el MAE

Teorema: Sea c=argminci=1nyicc^* = \arg\min_c \sum_{i=1}^{n} |y_i - c|. Entonces cc^* es la mediana de {y1,,yn}\{y_1, \ldots, y_n\}.

Demostración:

Definimos L(c)=i=1nyicL(c) = \sum_{i=1}^{n} |y_i - c|.

El subgradiente de LL respecto a cc es:

cL=i=1nsign(yic)\partial_c L = -\sum_{i=1}^{n} \text{sign}(y_i - c)

Para un mínimo, necesitamos 0cL0 \in \partial_c L, es decir:

i=1nsign(yic)=0\sum_{i=1}^{n} \text{sign}(y_i - c^*) = 0

Esto ocurre cuando hay tantos yi>cy_i > c^* como yi<cy_i < c^*, lo cual es precisamente la definición de la mediana.

Función de pérdida Huber

Para combinar las ventajas del MAE (robustez) y MSE (diferenciabilidad), se usa la pérdida de Huber:

Lδ(e)={12e2si eδδ(e12δ)si e>δL_\delta(e) = \begin{cases} \frac{1}{2}e^2 & \text{si } |e| \leq \delta \\ \delta(|e| - \frac{1}{2}\delta) & \text{si } |e| > \delta \end{cases}

Esta función es:

  • Cuadrática para errores pequeños (eδ|e| \leq \delta): comportamiento tipo MSE
  • Lineal para errores grandes (e>δ|e| > \delta): comportamiento tipo MAE
  • Diferenciable en todo el dominio

Su derivada es:

dLδde={esi eδδsign(e)si e>δ\frac{dL_\delta}{de} = \begin{cases} e & \text{si } |e| \leq \delta \\ \delta \cdot \text{sign}(e) & \text{si } |e| > \delta \end{cases}

Regresión de cuantiles

El MAE es un caso especial de la regresión de cuantiles con τ=0.5\tau = 0.5.

La función de pérdida de cuantil (pinball loss) es:

ρτ(e)=e(τ1e<0)\rho_\tau(e) = e \cdot (\tau - \mathbb{1}_{e < 0})

Para τ=0.5\tau = 0.5:

ρ0.5(e)=12e\rho_{0.5}(e) = \frac{1}{2}|e|

Minimizar ρτ(ei)\sum \rho_\tau(e_i) produce el cuantil τ\tau condicional, y para τ=0.5\tau = 0.5 obtenemos la mediana condicional.

Análisis de sensibilidad: Función de influencia

La función de influencia mide cómo un punto atípico afecta a un estimador.

Para la media (minimizador de MSE):

IF(x;yˉ)=xyˉIF(x; \bar{y}) = x - \bar{y}

Esta función no está acotada: un outlier puede mover la media arbitrariamente.

Para la mediana (minimizador de MAE):

IF(x;med)=sign(xmed)IF(x; \text{med}) = \text{sign}(x - \text{med})

Esta función está acotada en [1,1][-1, 1]: un outlier tiene influencia limitada.

Esto demuestra formalmente por qué el MAE es más robusto que el MSE.

Conexión con normas LpL^p

El MAE y MSE son casos especiales de la familia de métricas LpL^p:

ErrorLp=(1ni=1nyiy^ip)1/p\text{Error}_{L^p} = \left( \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i|^p \right)^{1/p}
ppMétricaOptimizador
1MAEMediana
2RMSEMedia
\inftyError máximoPunto medio del rango

A medida que pp aumenta, la métrica se vuelve más sensible a los errores grandes.