2 votos

¿El R-cuadrado debe calcularse en la muestra de entrenamiento o en la muestra de prueba?

Actualmente estoy revisando el libro Aprendizaje automático para la inversión en factores cuya versión en línea puede leerse aquí: http://www.mlfactor.com

En la sección de validación del modelo se puede leer lo siguiente

De acuerdo con las regresiones lineales, el $R^2$ puede calcularse en cualquier ejercicio de predicción. $$R^2 = 1 - \frac{\sum_{i=1}^I(y_i-\tilde{y_i})^2}{\sum_{i=1}^I(y_i-\bar{y})^2}$$ donde $\bar{y}$ es la media muestral de la etiqueta. Una diferencia importante con el clásico $R^2$ es que la cantidad anterior se puede calcular en el muestra de prueba y no en el muestra de formación . En este caso, el $R^2$ puede ser negativo cuando el error cuadrático medio en el numerador es mayor que la varianza (sesgada) de la muestra de prueba.

¿Qué quiere decir el autor con "clásico"? $R^2$ ? Y lo que es más importante, ¿por qué dice que no se puede calcular la cantidad en la muestra de entrenamiento?

1voto

Jim Clay Puntos 113

Sólo en determinadas circunstancias $R^2$ tienen su interpretación tradicional de la proporción de la varianza explicada y fuera de la muestra no es una circunstancia de este tipo. Sin embargo, algún tipo de medida estandarizada para el rendimiento de la regresión podría ser más útil que decir: "Bueno, jefe, tenemos un MSE de 11".

(En realidad, no estoy convencido de que esto sea tan útil como parece. Por ejemplo, ¿es $R^2=0.4$ siempre como un suspenso en la escuela, o es $R^2=0.9$ siempre como un grado A).

Para responder a su pregunta, considere lo que $R^2$ lo hace en su entorno tradicional.

$$ R^2 = 1-\dfrac{\sum\bigg( y_i-\hat y_i \bigg)^2} {\sum \bigg( y_i-\bar y \bigg)^2 } $$

Mirando la ecuación, $R^2$ compara el rendimiento de su modelo que hace predicciones $\hat y_i$ a un modelo ingenuo que, para estimar el valor esperado condicional, predice siempre el valor esperado agrupado/marginal de $y$ por lo que la media $\bar y$ .

Por lo tanto, para hacer algún tipo de $R^2$ La única forma que, para mí, encaja con el espíritu de eso es comparar sus predicciones fuera de la muestra con las predicciones de un modelo ingenuo que siempre adivina el mismo valor: la media de $y$ calculado a partir de los datos de la muestra, por lo que $\bar y_{in}$ y no $\bar y_{out}$ .

Respondiendo explícitamente a sus dos preguntas:

  1. El valor "clásico" es el habitual en la muestra $R^2$ .

  2. Creo que hay un "sólo" implícito, como en "no SÓLO en la muestra de formación".

EDITAR

Incluiré un R simulación para demostrar que $R^2$ pierde su interpretación como "proporción de la varianza explicada" cuando se utilizan datos fuera de la muestra, ya que el término "otros" en ese enlace con validación cruzada no es igual a cero.

set.seed(2021)

# Set size of both training and test sets
# (They're not usually equal, but they will be here,
# since simulation data are unlimited)
#
N <- 1000

# Simulate the in-sample and out-of-sample values of a feature
#
x_in <- runif(N, 0, 7)
x_out <- runif(N, 0, 7)

# Simulate the in-sample and out-of-sample values of a response variable
#
y_in <- x_in + rnorm(N)
y_out <- x_out + rnorm(N)

# Fit a linear regression to the in-sample data
#
L <- lm(y_in ~ x_in)

# Make predictions on the in-sample and out-of-sample data
#
preds_in <- predict(L)
preds_out <- predict(L, data.frame(x_in = x_out))

# Calculate that "other" term from:
# https://stats.stackexchange.com/questions/551915
#
other_in <- sum((y_in - preds_in) * (preds_in - mean(y_in)))
other_out <- sum((y_out - preds_out) * (preds_out - mean(y_in)))

# Also calculate the "other" term using the out-of-sample mean of y
#
other_out_out_mean <- sum((y_out - preds_out) * (preds_out - mean(y_out)))

# Display the "other" terms to show that the in-sample "other
# is effectively zero while the out-of-sample "other"
# has a large absolute value of ~50.
#
# Using the mean of out-of-sample y does not fare much better,
# since the regression coefficients are OLS estimates for the
# in-sample data, NOT for the out-of-sample data
#
other_in # 1.226068e-11
other_out # -50.96088
other_out_out_mean # -51.3533
```

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X