R² (Coeficiente de Determinación)

El Coeficiente de Determinación (R2R^2) es una métrica fundamentalmente diferente a MAE, MSE o RMSE. Mientras que esas métricas miden el error absoluto, R² mide la proporción de varianza explicada por el modelo.

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 R² se define como:

R2=1SSresSStotR^2 = 1 - \frac{SS_{res}}{SS_{tot}}

Donde:

SSres=i=1n(yiy^i)2(Suma de cuadrados residuales)SS_{res} = \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 \quad \text{(Suma de cuadrados residuales)} SStot=i=1n(yiyˉ)2(Suma de cuadrados totales)SS_{tot} = \sum_{i=1}^{n} (y_i - \bar{y})^2 \quad \text{(Suma de cuadrados totales)}

Desglose de la fórmula

SímboloNombreSignificado
SSresSS_{res}Residual Sum of SquaresVariación no explicada por el modelo
SStotSS_{tot}Total Sum of SquaresVariación total en los datos
yˉ\bar{y}Media muestral1nyi\frac{1}{n}\sum y_i
SSresSStot\frac{SS_{res}}{SS_{tot}}Fracción residualProporción de varianza no explicada

Interpretación

El R² responde a la pregunta: ¿Qué proporción de la variabilidad en yy explica mi modelo?

  • R2=1R^2 = 1: El modelo explica toda la variabilidad (predicción perfecta)
  • R2=0R^2 = 0: El modelo no explica nada (equivalente a predecir la media)
  • R2<0R^2 < 0: El modelo es peor que predecir la media

Relación con el modelo "baseline"

El denominador SStotSS_{tot} representa el error de un modelo trivial que siempre predice la media:

y^i=yˉi\hat{y}_i = \bar{y} \quad \forall i

Por lo tanto:

R2=1Error del modeloError del baselineR^2 = 1 - \frac{\text{Error del modelo}}{\text{Error del baseline}}

Propiedades matemáticas

Propiedad 1: Rango

Para regresión lineal con intercepto:

0R210 \leq R^2 \leq 1

Para modelos generales (no lineales o sin intercepto):

<R21-\infty < R^2 \leq 1

Propiedad 2: Relación con correlación

En regresión lineal simple (y=β0+β1xy = \beta_0 + \beta_1 x), el R² es exactamente el cuadrado del coeficiente de correlación de Pearson:

R2=rxy2R^2 = r_{xy}^2

donde:

rxy=(xixˉ)(yiyˉ)(xixˉ)2(yiyˉ)2r_{xy} = \frac{\sum(x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum(x_i - \bar{x})^2 \sum(y_i - \bar{y})^2}}

Propiedad 3: Invarianza ante escalado

El R² es invariante ante transformaciones lineales de yy:

R2(ay+b,ay^+b)=R2(y,y^)para a0R^2(ay + b, a\hat{y} + b) = R^2(y, \hat{y}) \quad \text{para } a \neq 0

Esto significa que cambiar las unidades (por ejemplo, de metros a centímetros) no afecta el R².

Propiedad 4: Relación con MSE

R2=1nMSESStot=1MSEVar(y)R^2 = 1 - \frac{n \cdot \text{MSE}}{SS_{tot}} = 1 - \frac{\text{MSE}}{\text{Var}(y)}

Descomposición de varianza

La suma de cuadrados totales se puede descomponer en dos partes:

SStot=SSreg+SSresSS_{tot} = SS_{reg} + SS_{res}

Donde SSreg=(y^iyˉ)2SS_{reg} = \sum(\hat{y}_i - \bar{y})^2 es la suma de cuadrados explicada (o de regresión).

Por lo tanto:

R2=SSregSStot=Varianza explicadaVarianza totalR^2 = \frac{SS_{reg}}{SS_{tot}} = \frac{\text{Varianza explicada}}{\text{Varianza total}}

El problema del R² inflado

Un problema conocido del R² es que siempre aumenta (o se mantiene igual) al agregar más variables al modelo, incluso si son irrelevantes:

Rp+12Rp2R^2_{p+1} \geq R^2_p

Donde pp es el número de predictores.

Demostración intuitiva: Agregar una variable nunca puede empeorar el ajuste porque, en el peor caso, su coeficiente óptimo es cero.

Este problema motiva el uso del R² Ajustado.

Ejemplo numérico

Datos:

iiyiy_iy^i\hat{y}_i
1250245
2300310
3180175
4420400

Paso 1: Calcular la media

yˉ=250+300+180+4204=11504=287.5\bar{y} = \frac{250 + 300 + 180 + 420}{4} = \frac{1150}{4} = 287.5

Paso 2: Calcular SStotSS_{tot}

yiy_iyiyˉy_i - \bar{y}(yiyˉ)2(y_i - \bar{y})^2
250-37.51406.25
30012.5156.25
180-107.511556.25
420132.517556.25
SStot=1406.25+156.25+11556.25+17556.25=30675SS_{tot} = 1406.25 + 156.25 + 11556.25 + 17556.25 = 30675

Paso 3: Calcular SSresSS_{res}

SSres=25+100+25+400=550SS_{res} = 25 + 100 + 25 + 400 = 550

Paso 4: Calcular R²

R2=155030675=10.0179=0.9821R^2 = 1 - \frac{550}{30675} = 1 - 0.0179 = 0.9821

Interpretación: El modelo explica el 98.21% de la variabilidad en los precios de las casas.

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 R2Example {
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 r2 = metrics.R2(actual, predicted);
System.out.printf("R²: %.4f%n", r2);
}
}
java R2Example
R²: 0.9821

Ver también

  • R² Ajustado — Versión penalizada por número de variables
  • MSE — Base del cálculo de R²

Bonus: Teoría avanzada del R²

Advertencia

Esta sección requiere conocimientos de inferencia estadística y teoría de la información. Puedes saltarla sin perder continuidad.

R² poblacional vs muestral

El R² que calculamos es una estimación muestral. El R² poblacional se define como:

ρ2=1Var(ϵ)Var(y)=Var(E[yx])Var(y)\rho^2 = 1 - \frac{\text{Var}(\epsilon)}{\text{Var}(y)} = \frac{\text{Var}(\mathbb{E}[y|x])}{\text{Var}(y)}

donde ϵ=yE[yx]\epsilon = y - \mathbb{E}[y|x] es el error irreducible.

Problema: El R² muestral es un estimador sesgado del R² poblacional:

E[R^2]>ρ2\mathbb{E}[\hat{R}^2] > \rho^2

El sesgo es aproximadamente p(1ρ2)n\frac{p(1-\rho^2)}{n}.

Distribución del R² bajo la hipótesis nula

Bajo H0:ρ2=0H_0: \rho^2 = 0 (ningún predictor tiene relación con yy):

R2/p(1R2)/(np1)Fp,np1\frac{R^2 / p}{(1 - R^2)/(n - p - 1)} \sim F_{p, n-p-1}

Esta es la base de la prueba F global en regresión.

R² y el estadístico F

La relación entre R² y F es:

F=np1pR21R2F = \frac{n - p - 1}{p} \cdot \frac{R^2}{1 - R^2}

Equivalentemente:

R2=pFpF+(np1)R^2 = \frac{pF}{pF + (n - p - 1)}

Criterios de información y R²

Mientras que R² y R² ajustado se usan para comparar modelos, los criterios de información ofrecen alternativas basadas en teoría de la información.

AIC (Akaike Information Criterion):

AIC=nln(MSE)+2p\text{AIC} = n \ln(\text{MSE}) + 2p

BIC (Bayesian Information Criterion):

BIC=nln(MSE)+pln(n)\text{BIC} = n \ln(\text{MSE}) + p \ln(n)
CriterioPenalizaciónUso
NingunaDescriptivo
R² adjLineal en ppComparación simple
AIC2p/n2p/nPredicción
BICpln(n)/np \ln(n)/nSelección de modelo verdadero

BIC penaliza más que AIC para n8n \geq 8, favoreciendo modelos más parsimoniosos.

Limitaciones teóricas del R²

1. No indica causalidad: Un R² alto no implica que xx cause yy.

2. Sensible a la varianza de xx: Para el mismo modelo verdadero, más variabilidad en xx produce mayor R².

3. No comparable entre muestras diferentes: El R² depende de la distribución de xx en la muestra.

4. No monótono en la complejidad del modelo verdadero: Un modelo más complejo puede tener menor R² si agrega ruido.

Coeficiente de determinación parcial

Para medir la contribución de una variable xjx_j dado que ya tenemos otras variables en el modelo:

Rjresto2=SSres,sinjSSres,conjSSres,sinjR^2_{j|resto} = \frac{SS_{res,sin\,j} - SS_{res,con\,j}}{SS_{res,sin\,j}}

Este mide cuánta variación residual explica xjx_j que no explicaban las demás variables.

Conexión con la correlación múltiple

El R² es el cuadrado del coeficiente de correlación múltiple RR:

R=Corr(y,y^)R = \text{Corr}(y, \hat{y})

Este RR siempre está entre 0 y 1 para regresión lineal con intercepto.