Calcular R-cuadrado
Ahora que has calculado el RMSE de las predicciones de tu modelo, vas a examinar qué tan bien ajusta el modelo a los datos: es decir, cuánta varianza explica. Puedes hacerlo usando \(R^2\).
Supón que \(y\) es el valor real, \(p\) es la predicción del modelo y \(res = y - p\) son los residuos de las predicciones.
Entonces, la suma total de cuadrados \(tss\) ("varianza total") de los datos es:
$$ tss = \sum{(y - \overline{y})^2} $$
donde \(\overline{y}\) es el valor medio de \(y\).
La suma de cuadrados de los errores residuales del modelo, \(rss\), es: $$ rss = \sum{res^2} $$
\(R^2\) (R-cuadrado), la "varianza explicada" por el modelo, es:
$$ 1 - \frac{rss}{tss} $$
Después de calcular \(R^2\), compararás lo que obtuviste con el \(R^2\) que informa glance() (docs). glance() devuelve un data frame de una fila; para un modelo de regresión lineal, una de las columnas devueltas es el \(R^2\) del modelo sobre los datos de entrenamiento.
El data frame unemployment ya está cargado y contiene las columnas predictions y residuals que calculaste en un ejercicio anterior. También tienes disponible unemployment_model para usarlo.
Este ejercicio forma parte del curso
Aprendizaje supervisado en R: Regresión
Instrucciones del ejercicio
- Calcula la media de
female_unemploymenty asígnala a la variablefe_mean. - Calcula la suma total de cuadrados y asígnala a la variable
tss. - Calcula la suma de cuadrados de los residuos y asígnala a la variable
rss. - Calcula \(R^2\). ¿Es un buen ajuste (\(R^2\) cercano a 1)?
- Usa
glance()para obtener el \(R^2\) del modelo. ¿Es el mismo que calculaste?
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# unemployment is available
summary(unemployment)
# unemployment_model is available
summary(unemployment_model)
# Calculate and print the mean female_unemployment: fe_mean
(fe_mean <- ___)
# Calculate and print the total sum of squares: tss
(tss <- ___((___ - ___)^2))
# Calculate and print residual sum of squares: rss
(rss <- ___)
# Calculate and print the R-squared: rsq
(rsq <- ___)
# Get R-squared from glance and print it
(rsq_glance <- ___(___)$___)