Aan de slagGa gratis aan de slag

RMSE vergelijken met root-mean-squared relatieve fout

In deze oefening laat je zien dat het log-transformeren van een geldelijke output vóór het modelleren de gemiddelde relatieve fout verbetert (maar de RMSE vergroot) vergeleken met het direct modelleren van de geldelijke output. Je vergelijkt de resultaten van model.log uit de vorige oefening met een model (model.abs) dat het inkomen direct fit.

De gegevenssets income_train en income_test zijn al ingeladen, samen met je model, model.log.

Ook beschikbaar:

  • model.abs: een model dat het inkomen direct fit op de inputs met de formule

    Income2005 ~ Arith + Word + Parag + Math + AFQT

Deze oefening maakt deel uit van de cursus

Supervised Learning in R: Regressie

Cursus bekijken

Oefeninstructies

  • Vul de lege plekken in om voorspellingen van de modellen toe te voegen aan income_test.
    • Vergeet niet de exponent te nemen van de voorspellingen van model.log om de log-transformatie ongedaan te maken!
  • Vul de lege plekken in om de voorspellingen te pivot_longer() en bereken de residuen en de relatieve fout.
  • Vul de lege plekken in om de RMSE en de relatieve RMSE voor voorspellingen te berekenen.
    • Welk model heeft een grotere absolute fout? Een grotere relatieve fout?

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# fmla.abs is available
fmla.abs

# model.abs is available
summary(model.abs)

# Add predictions to the test set
income_test <- income_test %>%
  mutate(pred.absmodel = ___(___, income_test),        # predictions from model.abs
         pred.logmodel = ___(___(___, income_test)))   # predictions from model.log

# pivot_longer the predictions and calculate residuals and relative error
income_long <- income_test %>% 
  pivot_longer(names_to = 'modeltype', values_to = 'pred', cols=c('pred.absmodel', 'pred.logmodel')) %>%
  mutate(residual = ___,   # residuals
         relerr   = ___)   # relative error

# Calculate RMSE and relative RMSE and compare
income_long %>% 
  group_by(modeltype) %>%      # group by modeltype
  summarize(rmse     = ___,    # RMSE
            rmse.rel = ___)    # Root mean squared relative error
Code bewerken en uitvoeren