Confrontare RMSE e root-mean-squared Relative Error
In questo esercizio mostrerai che applicare il logaritmo a un output monetario prima di modellare migliora l’errore relativo medio (ma aumenta la RMSE) rispetto al modellare direttamente l’output monetario. Confronterai i risultati di model.log dell’esercizio precedente con un modello (model.abs) che stima direttamente il reddito.
I dataset income_train e income_test sono già caricati, insieme al tuo modello model.log.
Sono inoltre disponibili:
model.abs: un modello che adatta direttamente il reddito agli input usando la formulaIncome2005 ~ Arith + Word + Parag + Math + AFQT
Questo esercizio fa parte del corso
Supervised Learning in R: Regression
Istruzioni dell'esercizio
- Completa gli spazi vuoti per aggiungere a
income_testle previsioni dei modelli.- Non dimenticare di fare l’esponenziale delle previsioni di
model.logper annullare la trasformazione log!
- Non dimenticare di fare l’esponenziale delle previsioni di
- Completa gli spazi vuoti per eseguire
pivot_longer()sulle previsioni e calcolare i residui e l’errore relativo. - Completa gli spazi vuoti per calcolare la RMSE e la RMSE relativa delle previsioni.
- Quale modello ha un errore assoluto maggiore? E un errore relativo maggiore?
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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