dataSciencePilot analyzeMissingPatterns

Gestion des données manquantes systématiques dans une étude clinique

Scénario de test & Cas d'usage

Contexte Métier

Une étude clinique collecte des données sur des patients. Certains examens sont optionnels, et certains patients abandonnent l'étude, résultant en des blocs entiers de données manquantes. L'objectif est de déterminer si l'absence de données pour certains examens est liée à l'apparition d'un effet secondaire (la variable cible `EFFET_SECONDAIRE`).
À propos du Set : dataSciencePilot

Machine Learning automatisé (AutoML) et génération de pipelines.

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

Création d'une table de patients avec des données manquantes complexes : des lignes entièrement vides, des examens optionnels manquants, et une variable cible binaire.

Copié !
1DATA casuser.etude_clinique;
2 LENGTH EFFET_SECONDAIRE $3.;
3 DO ID_PATIENT = 1 to 500;
4 AGE = 30 + int(rand('UNIFORM')*50);
5 POIDS = 60 + rand('NORMAL', 0, 10);
6 EXAMEN_A = rand('NORMAL', 10, 2);
7 EXAMEN_B_OPT = rand('NORMAL', 5, 1);
8 EXAMEN_C_OPT = rand('NORMAL', 100, 20);
9 IF rand('UNIFORM') < 0.2 THEN EFFET_SECONDAIRE = 'Oui';
10 ELSE EFFET_SECONDAIRE = 'Non';
11 /* Patients ayant abandonné l'étude (après l'examen A) */
12 IF 100 <= ID_PATIENT <= 120 THEN call missing(EXAMEN_B_OPT, EXAMEN_C_OPT);
13 /* Patients n'ayant pas fait l'examen C optionnel */
14 IF rand('UNIFORM') < 0.3 THEN call missing(EXAMEN_C_OPT);
15 /* Erreurs de saisie / Lignes vides */
16 IF _n_ in (50, 150, 250) THEN call missing(of _all_);
17 OUTPUT;
18 END;
19RUN;

Étapes de réalisation

1
Chargement de la table de l'étude clinique dans CAS.
Copié !
1 
2PROC CASUTIL;
3load
4DATA=casuser.etude_clinique casout='etude_clinique' replace;
5QUIT;
6 
2
Exécution de l'analyse en spécifiant la variable cible pour voir comment les modèles de valeurs manquantes se rapportent à celle-ci.
Copié !
1PROC CAS;
2 dataSciencePilot.analyzeMissingPatterns
3 TABLE={name='etude_clinique'},
4 target='EFFET_SECONDAIRE',
5 casOut={name='clinique_edge_case_analysis', replace=true};
6RUN;
7QUIT;

Résultat Attendu


La table de résultats `clinique_edge_case_analysis` doit gérer les lignes entièrement vides sans échouer. Elle doit identifier plusieurs modèles : un modèle pour l'absence conjointe de `EXAMEN_B_OPT` et `EXAMEN_C_OPT` (abandon), et un autre pour l'absence de `EXAMEN_C_OPT` seul (examen optionnel). L'analyse par rapport à la cible `EFFET_SECONDAIRE` devrait permettre de voir si, par exemple, les patients pour qui `EXAMEN_B_OPT` est manquant sont plus ou moins susceptibles d'avoir des effets secondaires. Cela teste la robustesse de l'action face à des données très dégradées et l'utilité du paramètre `target`.