dataPreprocess binning

Scénario Cas Limite : Nettoyage de Données Cliniques avec Valeurs Manquantes

Scénario de test & Cas d'usage

Contexte Métier

Un data scientist prépare des données pour une étude clinique. La variable 'TAUX_CHOLESTEROL' est incomplète et doit être catégorisée selon des seuils cliniques précis (Normal, Limite, Élevé). Les patients avec des données manquantes doivent être isolés dans un groupe à part pour investigation. La gestion des valeurs frontières (ex: un cholestérol à exactement 200) doit être stricte.
À propos du Set : dataPreprocess

Nettoyage, imputation et préparation des données.

Découvrir toutes les actions de dataPreprocess
Préparation des Données

Création d'une table de patients avec des taux de cholestérol contenant des valeurs manquantes, des extrêmes et des valeurs frontières.

Copié !
1DATA mycas.patients_cliniques;
2 INPUT id_patient taux_cholesterol;
3 DATALINES;
4101 185
5102 200
6103 239
7104 240
8105 .
9106 350
10107 160
11108 .
12109 199.9
13110 239.1
14;
15RUN;

Étapes de réalisation

1
Application d'un binning par points de coupe manuels (CUTPTS) pour définir les seuils cliniques.
Copié !
1PROC CAS;
2 dataPreprocess.binning /
3 TABLE={name='patients_cliniques', caslib='mycas'},
4 inputs={{name='taux_cholesterol'}},
5 method='CUTPTS',
6 cutPoints={200, 240},
7 binMissing=TRUE,
8 binMapping='RIGHT', /* Utilise [), [), [) -> 200 ira dans la 2e classe */
9 copyAllVars=TRUE,
10 outVarsNameSuffix='_CAT',
11 casOut={name='patients_binned', caslib='mycas', replace=true};
12RUN;

Résultat Attendu


La table `mycas.patients_binned` est créée et contient toutes les colonnes originales. Une nouvelle colonne `taux_cholesterol_CAT` est ajoutée. Les patients 105 et 108 (valeurs manquantes) ont la valeur 0. Le patient 102 (valeur 200) est dans la classe 2 (intervalle [200, 240)). Le patient 104 (valeur 240) est dans la classe 3 (intervalle [240, ...]). Le patient 109 (199.9) est dans la classe 1. Le mapping des frontières est correctement géré selon la règle 'RIGHT'.