R² Ajustado

El R² Ajustado es una modificación del que penaliza la inclusión de variables irrelevantes en el modelo. Resuelve el problema de que el R² siempre aumenta al agregar más predictores.

Motivación

Como vimos en R², agregar variables siempre mejora (o mantiene) el ajuste:

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

Esto puede llevar a sobreajuste: un modelo con muchas variables tendrá R² alto en los datos de entrenamiento, pero predecirá mal en datos nuevos.

El R² Ajustado introduce una penalización que crece con el número de variables.

Definición

Sea nn el número de observaciones y pp el número de predictores (sin contar el intercepto).

Radj2=1(1R2)n1np1R^2_{adj} = 1 - (1 - R^2) \cdot \frac{n - 1}{n - p - 1}

Alternativamente, en términos de sumas de cuadrados:

Radj2=1SSres/(np1)SStot/(n1)R^2_{adj} = 1 - \frac{SS_{res} / (n - p - 1)}{SS_{tot} / (n - 1)}

Desglose de la fórmula

SímboloNombreSignificado
R2R^2R² ordinarioProporción de varianza explicada
nnObservacionesNúmero de datos
ppPredictoresNúmero de variables independientes
np1n - p - 1Grados de libertad residualesGL para estimar la varianza del error
n1n - 1Grados de libertad totalesGL para estimar la varianza de yy

Propiedades matemáticas

Propiedad 1: Factor de penalización

El término n1np1\frac{n - 1}{n - p - 1} es siempre 1\geq 1 y crece cuando:

  • pp aumenta (más variables)
  • nn disminuye (menos datos)
n1np1=1+pnp1\frac{n - 1}{n - p - 1} = 1 + \frac{p}{n - p - 1}

Propiedad 2: Puede ser negativo

A diferencia del R² en regresión lineal, el R² ajustado puede ser negativo:

Radj2<0 cuando R2<pn1R^2_{adj} < 0 \text{ cuando } R^2 < \frac{p}{n - 1}

Esto ocurre cuando el modelo explica menos varianza de la que se "pierde" por la penalización.

Propiedad 3: Relación con R²

Radj2R2R^2_{adj} \leq R^2

La igualdad se da solo cuando p=0p = 0 (modelo sin predictores).

Propiedad 4: Selección de modelos

Al agregar una variable xp+1x_{p+1}, el R² ajustado aumenta solo si:

Fp+1>1F_{p+1} > 1

donde Fp+1F_{p+1} es el estadístico F para la significancia de la nueva variable.

En otras palabras, la variable debe contribuir significativamente.

Interpretación de grados de libertad

La fórmula puede reescribirse como:

Radj2=1σ^ϵ2σ^y2R^2_{adj} = 1 - \frac{\hat{\sigma}^2_{\epsilon}}{\hat{\sigma}^2_y}

Donde:

  • σ^ϵ2=SSresnp1\hat{\sigma}^2_{\epsilon} = \frac{SS_{res}}{n - p - 1} es la varianza estimada del error
  • σ^y2=SStotn1\hat{\sigma}^2_y = \frac{SS_{tot}}{n - 1} es la varianza muestral de yy

Los denominadores np1n - p - 1 y n1n - 1 son los grados de libertad correctos para estimadores insesgados de varianza.

Ejemplo numérico

Usando los datos de :

  • n=4n = 4 (observaciones)
  • p=2p = 2 (predictores, asumiendo dos features)
  • R2=0.9821R^2 = 0.9821

Cálculo:

Radj2=1(10.9821)41421R^2_{adj} = 1 - (1 - 0.9821) \cdot \frac{4 - 1}{4 - 2 - 1} =10.017931= 1 - 0.0179 \cdot \frac{3}{1} =10.0537= 1 - 0.0537 =0.9463= 0.9463

Interpretación: Después de ajustar por el número de predictores, el modelo explica aproximadamente el 94.6% de la variabilidad.

Nota cómo el R² ajustado (0.946) es menor que el R² (0.982), reflejando la penalización por usar 2 predictores con solo 4 observaciones.

Comparación de modelos

ModeloppR2R^2Radj2R^2_{adj}
A20.850.84
B100.870.75
C500.920.40

Aunque el modelo C tiene el R² más alto, su R² ajustado es el más bajo, indicando sobreajuste.

Limitaciones

  1. Requiere n>p+1n > p + 1: Si np+1n \leq p + 1, el denominador es cero o negativo.

  2. Asume linealidad: La fórmula está diseñada para regresión lineal.

  3. No es definitivo: Un R² ajustado alto no garantiza un buen modelo; deben usarse otras técnicas de validación.

Implementación

Example.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import com.minerva.core.primitives.Matrix;
import com.minerva.core.primitives.Vector;
import com.minerva.metrics.RegressionMetrics.RegressionMetrics;
public class R2AdjExample {
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});
int numFeatures = 2;
RegressionMetrics metrics = new RegressionMetrics();
double r2adj = metrics.R2adj(actual, predicted, numFeatures);
System.out.printf("R² Ajustado: %.4f%n", r2adj);
}
}
java R2AdjExample
R² Ajustado: 0.9463

Ver también

  • — Versión sin penalización
  • MSE — Base del cálculo

Bonus: Fundamentos teóricos del R² Ajustado

Advertencia

Esta sección requiere conocimientos de teoría de estimación y selección de modelos. Puedes saltarla sin perder continuidad.

Derivación del factor de ajuste

El R² ajustado se obtiene al usar estimadores insesgados de varianza.

El estimador insesgado de σϵ2\sigma^2_\epsilon es:

σ^ϵ2=SSresnp1\hat{\sigma}^2_\epsilon = \frac{SS_{res}}{n - p - 1}

El estimador insesgado de σy2\sigma^2_y es:

σ^y2=SStotn1\hat{\sigma}^2_y = \frac{SS_{tot}}{n - 1}

Por lo tanto:

Radj2=1σ^ϵ2σ^y2=1SSres/(np1)SStot/(n1)R^2_{adj} = 1 - \frac{\hat{\sigma}^2_\epsilon}{\hat{\sigma}^2_y} = 1 - \frac{SS_{res}/(n-p-1)}{SS_{tot}/(n-1)} =1n1np1SSresSStot=1(1R2)n1np1= 1 - \frac{n-1}{n-p-1} \cdot \frac{SS_{res}}{SS_{tot}} = 1 - (1 - R^2) \cdot \frac{n-1}{n-p-1}

Estadístico Cp de Mallows

El Cp de Mallows es una alternativa al R² ajustado para selección de modelos:

Cp=SSresσ^2n+2(p+1)C_p = \frac{SS_{res}}{\hat{\sigma}^2} - n + 2(p + 1)

donde σ^2\hat{\sigma}^2 es la varianza estimada del modelo completo.

Interpretación: Para un modelo bien especificado, E[Cp]p+1\mathbb{E}[C_p] \approx p + 1.

Modelos con Cp<p+1C_p < p + 1 o Cpp+1C_p \approx p + 1 son preferibles.

Relación con otros criterios

CriterioFórmula simplificadaPenalización efectiva
R² adj1(1R2)n1np11 - (1-R^2)\frac{n-1}{n-p-1}pnp1(1R2)\frac{p}{n-p-1}(1-R^2)
AICnln(MSE)+2pn\ln(\text{MSE}) + 2p2p2p
BICnln(MSE)+pln(n)n\ln(\text{MSE}) + p\ln(n)pln(n)p\ln(n)
Mallows CpSSresσ^2+2pn\frac{SS_{res}}{\hat{\sigma}^2} + 2p - n2p2p

Condición para que R² adj aumente

Al agregar variable xp+1x_{p+1}:

Radj,p+12>Radj,p2    Fparcial>1R^2_{adj,p+1} > R^2_{adj,p} \iff F_{parcial} > 1

donde:

Fparcial=(SSres,pSSres,p+1)/1SSres,p+1/(np2)F_{parcial} = \frac{(SS_{res,p} - SS_{res,p+1})/1}{SS_{res,p+1}/(n-p-2)}

Interpretación: La nueva variable debe reducir SSresSS_{res} lo suficiente como para compensar la pérdida de un grado de libertad.

Shrinkage estimators

El R² ajustado puede verse como un caso de estimador encogido (shrinkage):

ρ^shrink2=max(0,1(1R2)(n1)np1)\hat{\rho}^2_{shrink} = \max\left(0, 1 - \frac{(1-R^2)(n-1)}{n-p-1}\right)

Otros estimadores propuestos:

Olkin-Pratt:

ρ^OP2=1n3np1(1R2)2F1(1,1;np+12;1R2)\hat{\rho}^2_{OP} = 1 - \frac{n-3}{n-p-1}(1-R^2) \cdot {}_2F_1\left(1, 1; \frac{n-p+1}{2}; 1-R^2\right)

donde 2F1{}_2F_1 es la función hipergeométrica.

Ezekiel:

ρ^E2=1(n1)(1R2)np1\hat{\rho}^2_E = 1 - \frac{(n-1)(1-R^2)}{n-p-1}

(idéntico al R² ajustado estándar)

Perspectiva bayesiana

Desde un enfoque bayesiano, la selección de modelos usa el factor de Bayes:

BF01=P(DM0)P(DM1)BF_{01} = \frac{P(D|M_0)}{P(D|M_1)}

Bajo priors apropiados, esto se relaciona con BIC:

ln(BF01)12(BIC1BIC0)\ln(BF_{01}) \approx \frac{1}{2}(\text{BIC}_1 - \text{BIC}_0)

El R² ajustado no tiene interpretación bayesiana directa, pero los criterios de información sí aproximan el factor de Bayes.