Conserver les données manquantes
Dans certaines situations, le fait qu’une entrée soit manquante constitue en soi une information importante. Les NA peuvent être conservés dans une catégorie distincte "missing" grâce à la classification grossière.
La classification grossière permet de simplifier vos données et d’améliorer l’interprétabilité de votre modèle. Elle consiste à regrouper vos valeurs de réponse en classes correspondant à des plages de valeurs. Vous pouvez utiliser cette technique de regroupement pour placer tous les NA dans leur propre classe.
Dans la vidéo, nous avons illustré le principe de la classification grossière pour l’ancienneté d’emploi. Le code de cet exemple a été reproduit dans le script R à droite et peut être adapté pour appliquer une classification grossière à la variable int_rate.
Cet exercice fait partie du cours
<cours>Modélisation du risque de crédit en R</cours>Instructions de l’exercice
- Apportez les modifications nécessaires au code fourni pour effectuer une classification grossière de
int_rate, et enregistrez le résultat dans une nouvelle variable appeléeir_cat.- Commencez par remplacer
loan_data$emp_catparloan_data$ir_catpartout où cela apparaît dans le script R, ainsi queloan_data$emp_lengthparloan_data$int_rate. - Ensuite, les variables doivent être regroupées dans les catégories
"0-8","8-11","11-13.5"et"13.5+"(en remplaçant"0-15","15-30","30-45"et"45+"). L’utilisation de>et<=est exactement celle de la vidéo. Pensez à modifier aussi les nombres dans les conditions : 15, 30 et 45 doivent devenir 8, 11 et 13.5 respectivement.
- Commencez par remplacer
- Visualisez votre nouvelle variable
ir_catavecplot(loan_data$ir_cat).
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Make the necessary replacements in the coarse classification example below
loan_data$emp_cat <- rep(NA, length(loan_data$emp_length))
loan_data$emp_cat[which(loan_data$emp_length <= 15)] <- "0-15"
loan_data$emp_cat[which(loan_data$emp_length > 15 & loan_data$emp_length <= 30)] <- "15-30"
loan_data$emp_cat[which(loan_data$emp_length > 30 & loan_data$emp_length <= 45)] <- "30-45"
loan_data$emp_cat[which(loan_data$emp_length > 45)] <- "45+"
loan_data$emp_cat[which(is.na(loan_data$emp_length))] <- "Missing"
loan_data$emp_cat <- as.factor(loan_data$emp_cat)
# Look at your new variable using plot()