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 :
ArithWordParagMathAFQT(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>Instructions de l’exercice
- Appelez
summary()surincome_train$Income2005pour 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 variablefmla.log. Affichez-la. - Ajustez un modèle linéaire de
log(Income2005)sur les donnéesincome_train:model.log. - Utilisez
model.logpour prédire le revenu sur l’ensembleincome_test. Placez la prédiction dans la colonnelogpred.- Vérifiez le
summary()delogpredpour constater que les ordres de grandeur sont très différents de ceux deIncome2005.
- Vérifiez le
- Inversez la transformation logarithmique pour remettre les prédictions en « unités monétaires » :
exp(income_test$logpred).- Vérifiez le
summary()depred.incomeet constatez que les ordres de grandeur sont désormais similaires à ceux deIncome2005.
- Vérifiez le
- 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")