CommencerCommencez gratuitement

Modéliser une variable monétaire transformée en log

Dans cet exercice, vous allez vous entraîner à modéliser une variable monétaire transformée en logarithme, puis à reconvertir les prédictions « log-money » en unités monétaires. Les données chargées contiennent les revenus des sujets en 2005 (Income2005), ainsi que les résultats de plusieurs tests d’aptitudes passés par les sujets en 1981 :

  • Arith
  • Word
  • Parag
  • Math
  • AFQT (centile au Armed Forces Qualifying Test)

Les données ont déjà été divisées en ensembles d’apprentissage et de test (income_train et income_test, respectivement) et préchargées. Vous allez construire un modèle de log(income) à partir des variables explicatives, puis convertir log(income) en revenu.

Cet exercice fait partie du cours

<cours>Apprentissage supervisé en R : Régression</cours>
Voir le cours

Instructions de l’exercice

  • Appelez summary() sur income_train$Income2005 pour voir les statistiques descriptives du revenu dans l’ensemble d’apprentissage.
  • Écrivez une formule qui exprime log(Income2005) en fonction des cinq tests dans la variable fmla.log. Affichez-la.
  • Ajustez un modèle linéaire de log(Income2005) sur les données income_train : model.log.
  • Utilisez model.log pour prédire le revenu sur l’ensemble income_test. Placez la prédiction dans la colonne logpred.
    • Vérifiez le summary() de logpred pour constater que les ordres de grandeur sont très différents de ceux de Income2005.
  • Inversez la transformation logarithmique pour remettre les prédictions en « unités monétaires » : exp(income_test$logpred).
    • Vérifiez le summary() de pred.income et constatez que les ordres de grandeur sont désormais similaires à ceux de Income2005.
  • Complétez les espaces vides pour tracer un nuage de points du revenu prédit vs le revenu observé sur l’ensemble de test.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Examine Income2005 in the training set
___

# Write the formula for log income as a function of the tests and print it
(fmla.log <- ___)

# Fit the linear model
model.log <-  ___

# Make predictions on income_test
income_test$logpred <- ___
summary(income_test$logpred)

# Convert the predictions to monetary units
income_test$pred.income <- ___
summary(income_test$pred.income)

#  Plot predicted income (x axis) vs income
ggplot(___, aes(x = ___, y = ___)) + 
  geom_point() + 
  geom_abline(color = "blue")
Modifier et exécuter le code