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 formuleIncome2005 ~ Arith + Word + Parag + Math + AFQT
Deze oefening maakt deel uit van de cursus
Supervised Learning in R: Regressie
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.logom de log-transformatie ongedaan te maken!
- Vergeet niet de exponent te nemen van de voorspellingen van
- 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