CommencerCommencez gratuitement

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 formule

    Income2005 ~ Arith + Word + Parag + Math + AFQT

Cet exercice fait partie du cours

<cours>Apprentissage supervisé en R : Régression</cours>
Voir le 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.log pour annuler la transformation logarithmique !
  • 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
Modifier et exécuter le code