Comparer la RMSE et la racine de l’erreur quadratique moyenne relative
Dans cet exercice, vous allez montrer que l’application d’une transformation logarithmique à une variable monétaire avant la modélisation améliore l’erreur relative moyenne (mais augmente la RMSE) par rapport à une modélisation directe de la variable monétaire. Vous comparerez les résultats de model.log de l’exercice précédent à un modèle (model.abs) qui ajuste directement le revenu.
Les jeux de données income_train et income_test ont été préchargés, ainsi que votre modèle model.log.
Également disponibles :
model.abs: un modèle qui ajuste directement le revenu aux variables explicatives selon la formuleIncome2005 ~ Arith + Word + Parag + Math + AFQT
Cet exercice fait partie du cours
<cours>Apprentissage supervisé en R : Régression</cours>Instructions de l’exercice
- Complétez les blancs pour ajouter les prédictions des modèles à
income_test.- N’oubliez pas d’exponentier les prédictions de
model.logpour annuler la transformation logarithmique !
- N’oubliez pas d’exponentier les prédictions de
- Complétez les blancs pour utiliser
pivot_longer()sur les prédictions et calculer les résidus et l’erreur relative. - Complétez les blancs pour calculer la RMSE et la RMSE relative des prédictions.
- Quel modèle a la plus grande erreur absolue ? La plus grande erreur relative ?
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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