EmpezarEmpieza gratis

Error relativo

En este ejercicio, vas a comparar el error relativo con el error absoluto. A efectos de modelado, definiremos el error relativo como

$$ rel = \frac{(y - pred)}{y} $$

es decir, el error es relativo al valor real. Medirás el error relativo global de un modelo usando la raíz del error cuadrático medio relativo:

$$ rmse_{rel} = \sqrt(\overline{rel^2}) $$

donde \(\overline{rel^2}\) es la media de \(rel^2\).

El conjunto de datos de ejemplo (toy) fdata ya está cargado. Incluye las columnas:

  • y: el valor real que un modelo debe predecir; imagina que es el dinero que gastará un cliente en una visita a tu tienda.
  • pred: las predicciones de un modelo que predice y.
  • label: categórica: indica si y proviene de una población que hace compras small o large.

Quieres saber qué modelo lo hace “mejor”: el que predice las compras small o el que predice las large.

Este ejercicio forma parte del curso

Aprendizaje supervisado en R: Regresión

Ver curso

Instrucciones del ejercicio

  • Rellena los huecos para explorar los datos. Fíjate en que las compras grandes suelen ser unas 100 veces mayores que las pequeñas.
  • Rellena los huecos para crear las columnas de error:
    • Define el residuo como y - pred.
    • Define el error relativo como residual / y.
  • Rellena los huecos para calcular y comparar el RMSE y el RMSE relativo.
    • ¿Cómo se comparan los errores absolutos? ¿Y los relativos?
  • Examina el gráfico de predicciones frente al resultado.
    • En tu opinión, ¿qué modelo lo hace “mejor”?

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# fdata is available
summary(fdata)

# Examine the data: generate the summaries for the groups large and small:
fdata %>% 
    group_by(label) %>%     # group by small/large purchases
    summarize(min  = ___,   # min of y
              mean = ___,   # mean of y
              max  = ___)   # max of y

# Fill in the blanks to add error columns
fdata2 <- fdata %>% 
         group_by(label) %>%       # group by label
           mutate(residual = ___,  # Residual
                  relerr   = ___)  # Relative error

# Compare the rmse and rmse.rel of the large and small groups:
fdata2 %>% 
  group_by(label) %>% 
  summarize(rmse     = ___,   # RMSE
            rmse.rel = ___)   # Root mean squared relative error
            
# Plot the predictions for both groups of purchases
ggplot(fdata2, aes(x = pred, y = y, color = label)) + 
  geom_point() + 
  geom_abline() + 
  facet_wrap(~ label, ncol = 1, scales = "free") + 
  ggtitle("Outcome vs prediction")
Editar y ejecutar código